回覆列表
  • 1 # 產品經理老胡

    老胡的做法

    Linux透過埠號看來查詢定位監聽這個埠的程序要使用lsof命令;反之透過程序的PID查詢其佔用的埠號要使用netstat命令。需要注意的是,netstat命令在有些發行版的系統中不是預裝的,如果沒有預裝的話,需要安裝net-tools這個工具包。

    使用lsof快速透過埠定位佔用程序的PID

    lsof本身的功能是檢視開啟某個檔案的程序PID,它有一個選項-i,可以指定一個埠號,根據埠號查詢使用這個埠號的程序PID。例如:

    lsof -i:10808

    這樣就得到了兩個程序在監聽10808這個埠,一個是PID為4053的chrome,一個是PID為19697的v2ray。

    ps -aux | grep 程序號

    這樣就得到了對應PID的程序的具體情況,包括可執行程式的路徑、啟動的引數、執行的時間、啟動程序的使用者等等。

    -i4和-i6兩個命令選項分別指定的是ipv4的埠和ipv6的埠。

    使用netstat檢視程序佔用的埠號

    不知道哪些程序佔用了哪些埠,可以使用netstat命令來進行檢視。

    使用netstat命令時,一般常用l、t、n、p這三個選項的組合。

    l代表結果顯示包含被監聽的埠;

    t表示結果包含TCP協議的連線;

    n代表結果顯示使用ip地址而不是主機名或域名;

    p代表結果顯示程式的程序號PID和程式名。

    所以,檢視所有程序佔用的埠號就是:

    netstat -lntp

    如果只對其中的v2ray程序感興趣,可以加過濾:

    netstat -lntp|grep v2ray

    這樣就把特定程式所監聽的埠號查詢出來了。

  • 中秋節和大豐收的關聯?
  • 三歲小孩的自理能力怎麼提高?放學回家不自己吃飯,還挑食,不會自己穿衣服?