有时候我们需要知道电脑中有哪些 进程/应用 正在使用哪个port,这时候就用到一个非常方便的指令:lsof
指令 lsof 是 list open files 的意思。在unix系统中,一切皆为文件,包括tcp/udp的连接。
例子: lsof -n -P -i TCP | grep LISTEN
flag:-n
指用number代替字母显示-P
特指 port 用数字而不用字母显示-i
指 internet 相关的协议,此处我们指定 TCP
| grep LISTEN
在当前指令lsof -n -P -i TCP
给出的所有结果中,搜索有 “LISTEN” 的结果
例如:
caoda1@CaoDas-MBP:~/Documents$ lsof -n -P -i TCP | grep LISTEN
pycharm 407 caoda1 143u IPv4 0x15532e64ce8c66af 0t0 TCP 127.0.0.1:6942 (LISTEN)
pycharm 407 caoda1 222u IPv4 0x15532e64d4531a8f 0t0 TCP 127.0.0.1:63342 (LISTEN)
rapportd 449 caoda1 3u IPv4 0x15532e64ce3bd6af 0t0 TCP *:56197 (LISTEN)
rapportd 449 caoda1 4u IPv6 0x15532e64ce3e5007 0t0 TCP *:56197 (LISTEN)
com.apple 631 caoda1 45u IPv4 0x15532e64d9f7a6af 0t0 TCP *:60496 (LISTEN)
com.apple 631 caoda1 48u IPv6 0x15532e64ce3e6147 0t0 TCP *:60497 (LISTEN)
mongod 673 caoda1 6u IPv4 0x15532e64d1a763ef 0t0 TCP 127.0.0.1:27017 (LISTEN)
BlueJeans 695 caoda1 3u IPv4 0x15532e64ce3bba8f 0t0 TCP 127.0.0.1:18171 (LISTEN)
Adobe\x20 831 caoda1 10u IPv4 0x15532e64d453112f 0t0 TCP 127.0.0.1:15292 (LISTEN)
Avast\x20 849 caoda1 4u IPv6 0x15532e64ce3e4a47 0t0 TCP *:27275 (LISTEN)
mysqld 39165 caoda1 28u IPv4 0x15532e64fa16c6af 0t0 TCP 127.0.0.1:3306 (LISTEN)
我们可以看到:应用名称,进程id, ip地址和port number, 以及他们正在 LISTEN的状态
如果我只想知道 mysql 正在使用哪个port,只要:
caoda1@CaoDas-MBP:~/Documents$ lsof -n -P -i TCP | grep mysql
mysqld 887 caoda1 29u IPv4 0x21154199f4055439 0t0 TCP 127.0.0.1:3306 (LISTEN)
我们可以清楚的看到mysql正在使用 3306 这个 port。