IT관련/Network

열린 Port(포트) 확인 방법: Windows, Linux, macOS 완벽 정리

파란하늘999 2025. 9. 4. 09:58

서버 관리나 네트워크 문제 해결 시 열린 포트를 확인하는 것은 필수적입니다. 이 글에서는 Windows, Linux, macOS에서 열린 포트를 확인하는 방법을 간단히 정리했습니다. 초보자도 쉽게 따라 할 수 있도록 명령어와 예시를 포함했습니다.

1. Windows에서 열린 포트 확인

Windows에서는 netstat, PowerShell, 또는 GUI 도구를 사용해 열린 포트를 확인할 수 있습니다.

방법 1: netstat 명령어

  1. 명령 프롬프트 실행:
    • Windows 키 + R을 누르고 cmd 입력 후 Enter.
  2. 명령어 입력:
    • -a: 모든 연결과 리스닝 포트 표시.
    • -n: 숫자 형식으로 주소와 포트 표시.
    • -o: 프로세스 ID(PID) 포함.
    • findstr LISTEN: LISTEN 상태의 포트만 필터링.
  3. netstat -ano | findstr LISTEN
  4. 출력 예시:
    • 3307 포트가 열려 있고, PID 1234인 프로세스가 사용 중.
  5. TCP 0.0.0.0:3307 0.0.0.0:0 LISTENING 1234
  6. PID로 프로세스 확인:
    • 해당 PID의 프로세스 이름 확인.
  7. tasklist | findstr 1234

방법 2: PowerShell

  1. PowerShell 실행 후 입력:
  2. Get-NetTCPConnection | Where-Object { $_.State -eq "Listen" }
  3. 열린 포트 목록과 관련 정보를 확인.

방법 3: GUI 도구

  • CurrPorts (NirSoft): 무료 도구로, 열린 포트를 GUI로 확인.
  • TCPView (Microsoft Sysinternals): 실시간 포트 상태 확인 가능.

2. Linux/macOS에서 열린 포트 확인

Linux와 macOS에서는 netstat, ss, lsof 명령어를 주로 사용합니다.

방법 1: netstat 명령어

  1. 터미널에서 입력:
    • -t: TCP 포트.
    • -u: UDP 포트.
    • -l: 리스닝 상태 포트.
    • -n: 숫자 형식으로 표시.
  2. netstat -tuln
  3. 출력 예시:
  4. Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN

방법 2: ss 명령어 (Linux 추천)

  1. 입력:
  2. ss -tuln
  3. netstat과 유사한 결과로 열린 포트 표시.

방법 3: lsof 명령어

  1. 특정 포트 확인:
  2. lsof -i :3307
  3. 출력 예시:
  4. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 1234 mysql 10u IPv4 12345 0t0 TCP *:3307 (LISTEN)

방법 4: 포트 연결 테스트

  • telnet 또는 nc로 포트 확인:또는:
    • 연결 성공 시 포트가 열려 있음.
  • nc -zv localhost 3307
  • telnet localhost 3307

3. 추가 팁

  • 특정 포트 필터링:
    • Windows: netstat -ano | findstr 3307
    • Linux/macOS: netstat -tuln | grep 3307
  • 방화벽 점검:
    • 포트가 열려 있어도 방화벽에서 차단될 수 있음.
    • Linux: sudo iptables -L 또는 ufw status
    • Windows: netsh advfirewall firewall show rule name=all
  • 루트 권한:
    • 일부 포트는 루트 권한 필요. Linux/macOS에서 sudo 사용:
    • sudo netstat -tuln

4. 문제 해결 예시

  • 포트 충돌: 3307 포트가 이미 사용 중인지 확인 후, 다른 포트(예: 3308)로 변경.
  • MySQL 연결 문제: HeidiSQL에서 SSH 터널링 시 plink가 3307 포트를 점유 중이라면, HeidiSQL 설정에서 로컬 포트를 변경하거나 plink 프로세스 종료:
  • taskkill /PID 1234 /F

마무리

이 방법을 사용하면 Windows, Linux, macOS에서 열린 포트를 쉽게 확인할 수 있습니다.

반응형

'IT관련 > Network' 카테고리의 다른 글

외부에서 사이트 접근이 안될때...  (0) 2025.04.10