답변:
netstat -lnp
각 청취 포트 옆에 pid 및 프로세스 이름이 나열됩니다. 이것은 Linux에서는 작동하지만 AIX와 같은 다른 모든 시스템에서는 작동하지 않습니다. -t
TCP 만 원하는 경우 추가하십시오 .
# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:24800 0.0.0.0:* LISTEN 27899/synergys
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 3361/python
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2264/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 22964/apache2
tcp 0 0 192.168.99.1:53 0.0.0.0:* LISTEN 3389/named
tcp 0 0 192.168.88.1:53 0.0.0.0:* LISTEN 3389/named
기타
netstat -p
위는 내 투표입니다. 또한보십시오 lsof
.
AIX에서 netstat & rmsock을 사용하여 프로세스 바인딩을 판별 할 수 있습니다.
[root@aix] netstat -Ana|grep LISTEN|grep 80
f100070000280bb0 tcp4 0 0 *.37 *.* LISTEN
f1000700025de3b0 tcp 0 0 *.80 *.* LISTEN
f1000700002803b0 tcp4 0 0 *.111 *.* LISTEN
f1000700021b33b0 tcp4 0 0 127.0.0.1.32780 *.* LISTEN
# Port 80 maps to f1000700025de3b0 above, so we type:
[root@aix] rmsock f1000700025de3b0 tcpcb
The socket 0x25de008 is being held by process 499790 (java).
Linux에서 사용 가능한 다른 도구는 ss 입니다. Fedora 의 ss 매뉴얼 페이지에서 :
NAME
ss - another utility to investigate sockets
SYNOPSIS
ss [options] [ FILTER ]
DESCRIPTION
ss is used to dump socket statistics. It allows showing information
similar to netstat. It can display more TCP and state informations
than other tools.
아래 출력 예-마지막 열에는 프로세스 바인딩이 표시됩니다.
[root@box] ss -ap
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::http :::* users:(("httpd",20891,4),("httpd",20894,4),("httpd",20895,4),("httpd",20896,4)
LISTEN 0 128 127.0.0.1:munin *:* users:(("munin-node",1278,5))
LISTEN 0 128 :::ssh :::* users:(("sshd",1175,4))
LISTEN 0 128 *:ssh *:* users:(("sshd",1175,3))
LISTEN 0 10 127.0.0.1:smtp *:* users:(("sendmail",1199,4))
LISTEN 0 128 127.0.0.1:x11-ssh-offset *:* users:(("sshd",25734,8))
LISTEN 0 128 ::1:x11-ssh-offset :::* users:(("sshd",25734,7))
한때 특정 포트 뒤에 어떤 프로세스가 있는지 결정하려고 시도했습니다 (이번에는 8000이었습니다). 나는 다양한 lsof와 netstat를 시도했지만 기회를 얻었고 브라우저를 통해 포트를 쳤습니다 (예 : http : // hostname : 8000 / ). Lo와 보라, 스플래시 화면이 나를 맞이했고 프로세스가 무엇인지 분명해졌습니다 (레코드는 Splunk 였습니다 ).
"ps -e -o pid, args"(YMMV)가 인수 목록에 포트 번호를 표시 할 수도 있습니다. 그렙은 당신의 친구입니다!
telnet hostname 8000
에서 서버가 배너를 인쇄하는지 확인할 수 있습니다. 그러나 셸 액세스 권한이없는 시스템에서 서버를 실행하고 프로세스 ID를 찾는 것이 관련이없는 경우에 유용합니다.