port 對應的 process
有時候我們想知道在系統中那些 process 用掉了那一個 port。
這篇就是要如何向系統查詢這樣的資訊。
linux 和 mac 有些差異。所以分開說一下。
linux
1 2 3 4 5 6 7 8
| $ netstat -plunt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.11:44622 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 34/sshd -o PermitRo tcp 0 0 :::2375 :::* LISTEN 18/dockerd tcp 0 0 :::22 :::* LISTEN 34/sshd -o PermitRo udp 0 0 127.0.0.11:51711 0.0.0.0:* -
|
在這個範例中, port 22 是由 sshd 這個 process 使用,
而且 sshd 這個 process 的 pid 是 34。
mac
查詢目前使用中的 port 及 process id
1 2 3 4 5 6 7
| $ lsof -n -i | grep LISTEN LINE 598 oo 12u IPv4 0x6ef39eebaf12837d 0t0 TCP 127.0.0.1:10400 (LISTEN) node 1720 oo 11u IPv4 0x6ef39eebaf102625 0t0 TCP 127.0.0.1:61161 (LISTEN) TaishinBa 2322 oo 3u IPv4 0x6ef39eeb9bd31625 0t0 TCP 127.0.0.1:40557 (LISTEN) AMPDevice 2394 oo 10u IPv4 0x6ef39eebaf114fed 0t0 TCP *:50090 (LISTEN) pycharm 3649 oo 107u IPv4 0x6ef39eeba2643e2d 0t0 TCP 127.0.0.1:6942 (LISTEN) pycharm 3649 oo 292u IPv4 0x6ef39eebc12419b5 0t0 TCP 127.0.0.1:63342 (LISTEN)
|
這個範例中, pycharm 使用了 6942 及 63342 兩個 port,對應的 pid 是 3649。
下次查 process 和 port 及 pid 就可以用這樣的方式來查了。