서버에 로그인한 후 netstat를 사용하여 이 서버의 포트를 확인하고 어떤 포트가 나와 통신하고 있는지 알고 싶었습니다.
내 IP는 143.248.143.198이고 검색 결과는 다음과 같습니다.
[kwagjj@James5 ~]$ netstat | grep 143.248.143.198
tcp 0 52 James5:smakynet 143.248.143.198:49690 ESTABLISHED
[kwagjj@James5 ~]$ netstat | smakynet
smakynet: Command not found.
[kwagjj@James5 ~]$ netstat | grep smakynet
tcp 0 0 James5:smakynet 143.248.143.199:49573 ESTABLISHED
tcp 0 0 James5:smakynet 143.248.143.198:49690 ESTABLISHED
tcp 0 0 James5:smakynet 143.248.143.212:51070 ESTABLISHED
tcp 0 0 James5:smakynet 143.248.143.210:9693 ESTABLISHED
tcp 0 0 James5:smakynet 143.248.143.217:azeti ESTABLISHED
tcp 0 0 James5:smakynet 143.248.143.216:51892 ESTABLISHED
tcp 0 0 James5:smakynet 143.248.143.210:10599 ESTABLISHED
James5:smakynet이 다른 포트로 연결되는지 확인하려고 했지만 포트의 내 쪽이 'James5:smakynet'과만 통신하는 것 같습니다.
혹시 이 'smakynet'이 뭔지 아는 사람 있나요? 이것은 무엇을 합니까? 구글링해봤는데 제대로 된 정보가 없네요.
답변1
이름으로 포트를 인식하지 못할 때마다 grep
이름을 입력하여 /etc/services
해당 이름이 정의되어 있는지 확인할 수 있습니다. 내 Linux 시스템에서 smakynet은 TCP/UDP 122입니다.
grep smakynet /etc/services
man netstat
더 많은 정보를 표시하는 데 사용할 수 있는 스위치에 대해 알아보려면 사용하세요 . 이 경우 프로세스 ID에 대한 추가 정보를 찾는 데 도움이 되는 스위치를 사용하십시오.
netstat -tulpn | grep smakynet
이제 어떤 프로세스가 포트를 사용하는지 확인할 수 있습니다. 다음 예제와 같은 출력을 얻게 됩니다.
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1565/cupsd
위는 cupsd
PID 1565로 열렸습니다. TCP 포트 631을 사용하고 있습니다.
이는 어떤 프로그램이 포트를 사용하고 있는지 식별하는 데 도움이 됩니다. smakynet이 왜 목록에 있는지 모르겠습니다 /etc/services
. 하지만 추측하자면, 그것은 고대의 프로토콜일 수도 있고 아마도 등록되어 있었을 수도 있습니다.IANA그리고 결코 발전하지 않았습니다.
그렇다면 어떤 O/S에서 smakynet 포트를 사용하는 프로그램을 찾았습니까?
답변2
일반적으로 및 스위치를 netstat
사용하여 실행하는 것이 더 유용하므로 어떤 프로세스가 출력에서 특정 포트를 수신 중이거나 사용하고 있는지 확인할 수 있습니다 .-n
-p
netstat
예
$ sudo netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1406/rpcbind
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13203/nginx
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1628/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1506/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1712/master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 13203/nginx
tcp 0 0 0.0.0.0:35171 0.0.0.0:* LISTEN 1424/rpc.statd
tcp 0 0 192.168.1.228:80 209.190.113.82:36019 ESTABLISHED 13307/nginx
tcp 0 0 192.168.1.228:80 192.168.1.1:58845 TIME_WAIT -
tcp 0 0 192.168.1.228:22 192.168.1.7:52418 ESTABLISHED 2382/sshd
tcp 0 0 192.168.1.228:443 209.190.113.82:46600 TIME_WAIT -
tcp 0 0 :::111 :::* LISTEN 1406/rpcbind
tcp 0 0 :::22 :::* LISTEN 1628/sshd
tcp 0 0 ::1:631 :::* LISTEN 1506/cupsd
tcp 0 0 ::1:25 :::* LISTEN 1712/master
tcp 0 0 :::37115 :::* LISTEN 1424/rpc.statd
여기서는 포트 80 및 443이 프로세스, nginx
2개 인터페이스 0.0.0.0
및 에서 사용 중임을 확인할 수 있습니다 192.168.1.228
. 두 번째 IP는 이 시스템의 이더넷 포트와 연결된 IP이고, 이 IP는 0.0.0.0
서버 데몬인 가 nginx
상자에 있는 모든 인터페이스에 바인딩됨을 나타내는 특수 IP입니다.
네트워크 인터페이스
$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 54:52:00:ff:ff:f1 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.228/24 brd 192.168.1.255 scope global eth0
inet6 fe80::5652:ff:feff:fff1/64 scope link
valid_lft forever preferred_lft forever