리눅스에서 port 확인 방법 입니다.
netstat 과 ss 명령에 대해 기술했습니다.
netstat -tulnp
- -t : TCP 포트 확인
- -u : UDP 포트 확인
- -l : LISTEN 중인 포트 확인
- -n : 포트를 숫자로 표시
- -p : 프로세스 정보 표시
컬럼명 의미
- Proto 프로토콜 (tcp/tcp6: TCP, udp/udp6: UDP)
- Recv-Q 수신 큐(대기 중인 수신 데이터, 일반적으로 0)
받은 데이터 중 아직 애플리케이션에서 읽지 않은 데이터 크기 (일반적으로 0)
- Send-Q 송신 큐(보내지 않은 데이터, 일반적으로 0)
보내려는 데이터 중 아직 네트워크로 전송되지 않은 데이터 크기 (일반적으로 0)
- Local Address 로컬 IP 주소 및 포트 (서버가 바인딩된 주소)
예시 : 127.0.0.1:53 127.0.0.1 → 로컬 루프백 주소 (이 서버에서만 접근 가능) 53 → 포트 번호 (일반적으로 DNS 서비스) |
- Foreign Address 원격 IP 주소 및 포트 (0.0.0.0:* 또는 :::*은 모든 주소 허용)
예시 : 0.0.0.0:* 모든 클라이언트에서 접속 가능 |
- State 현재 소켓 상태 (LISTEN, ESTABLISHED 등) -> TCP 만 해당
- LISTEN → 포트를 열고 클라이언트 연결 대기 중
- ESTABLISHED → 현재 활성화된 연결
- CLOSE_WAIT → 클라이언트가 연결을 종료 요청했으나 서버에서 아직 닫지 않음
- TIME_WAIT → 연결 종료 후 일정 시간 동안 남아 있음
- CLOSED → 연결이 닫힌 상태
- PID/Program name 해당 포트를 사용하는 프로세스의 PID 및 프로그램 이름
ss -tulnp
- -t : TCP 포트 확인
- -u : UDP 포트 확인
- -l : LISTEN 중인 포트 확인
- -n : 포트를 숫자로 표시
- -p : 프로세스 정보 표시
Proto 프로토콜Netid 프로토콜 (tcp/tcp6: TCP, udp/udp6: UDP)- Recv-Q 수신 큐(대기 중인 수신 데이터, 일반적으로 0)
받은 데이터 중 아직 애플리케이션에서 읽지 않은 데이터 크기 (일반적으로 0)
- Send-Q 송신 큐(보내지 않은 데이터, 일반적으로 0)
보내려는 데이터 중 아직 네트워크로 전송되지 않은 데이터 크기 (일반적으로 0)
- Local Address 로컬 IP 주소 및 포트 (서버가 바인딩된 주소)
예시 : 127.0.0.1:53 127.0.0.1 → 로컬 루프백 주소 (이 서버에서만 접근 가능) 53 → 포트 번호 (일반적으로 DNS 서비스) |
Foreign Address 원격 IP 주소 및 포트Peer Address:Port(0.0.0.0:* 또는 :::*은 모든 주소 허용)
예시 : 0.0.0.0:* 모든 클라이언트에서 접속 가능 |
- State 현재 소켓 상태 (LISTEN, ESTABLISHED 등) -> TCP 만 해당
- LISTEN → 포트를 열고 클라이언트 연결 대기 중
- ESTABLISHED → 현재 활성화된 연결
- CLOSE_WAIT → 클라이언트가 연결을 종료 요청했으나 서버에서 아직 닫지 않음
- TIME_WAIT → 연결 종료 후 일정 시간 동안 남아 있음
- CLOSED → 연결이 닫힌 상태
PID/Program name 해당 포트를 사용하는 프로세스의 PID 및 프로그램 이름Process(users: ("name",pid=...))
최신 시스템에서는 ss 명령 사용을 권장하지만, netstat 명령이 익숙하거나 오래된 시스템에서는 netstat 을 사용해도 됩니다.
중요한 것은 port 관리를 잘 하는 것이 더 중요합니다.
감사합니다.
'CS & Security > 네트워크' 카테고리의 다른 글
VXLAN 통신과 IPIP 통신 (0) | 2025.05.23 |
---|---|
iptables (0) | 2025.05.12 |
방화벽과 라우팅 (0) | 2025.05.12 |
방화벽 (0) | 2025.03.21 |
static ip 설정 (0) | 2025.03.20 |