有時候咱們須要知道電腦中有哪些 進程/應用 正在使用哪一個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」 的結果
例如:mysql
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,只要:sql
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。app