서버에 로그인한 후 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
. 그러나 추측해 보면 고대 프로토콜일 수도 있고,인터넷 할당 번호 기관그리고 그것은 결코 발전하지 않았습니다.
그렇다면 어떤 운영 체제에서 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
nginx
여기서 우리는 포트 80과 443이 2개 인터페이스의 프로세스에 의해 사용된다는 것을 알 수 있으며, 0.0.0.0
두 192.168.1.228
번째 IP는 이 시스템의 이더넷 포트와 연결된 IP입니다. 이 IP는 0.0.0.0
특별하며 서버 데몬이 nginx
모든 포트에 바인딩된다는 것을 의미합니다. 이 장치에 존재하는 인터페이스입니다.
네트워크 인터페이스
$ 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