Linux中如何檢視服務及監聽埠

2021-04-15 13:58:35 字數 2040 閱讀 3773

問:我該如何發現哪種服務正在某個特定埠上監聽呢?我如何發現哪乙個程式正在乙個特定埠上監聽呢?

答:在*nix系統中,你可以使用下面的任何乙個命令來得到在乙個特定tcp埠上監聽的列表。

lsof:其功能是列示開啟的檔案,包括監聽埠。

netstat :此命令象徵性地展示各種與網路

有關的資料和資訊的內容。

lsof命令示例

你可以輸入下面的命令來檢視ipv4

埠:# lsof -pnl +m -i4

你可以輸入下面的命令來檢視ipv6

協議下的埠列示:

# lsof -pnl +m -i6

此例輸出:

這裡我們不妨解釋一 下。第一欄是command

,它給出了程式名稱的有關資訊。請注意標題的細節。例如,第二行的gweather* 命令從美國 nws伺服器

(140.90.128.70)獲取天氣的報告資訊,包括互動天氣資訊網路和其它的天氣服務。在這裡,我們解釋一下命令各個引數。

1. -p :這個選項約束著網路檔案的埠號到埠名稱的轉換。約束轉換可以使lsof執行得更快一些。在埠名稱的查詢不能奏效時,這是很有用的。

2. -n : 這個選項約束著網路檔案的埠號到主機名稱的轉換。約束轉換可以使lsof的執行更快一些。在主機名稱的查詢不能奏效時,它非常有用。

3. -l :這個選項約束著使用者id號到登入名的轉換。在登入名的查詢不正確或很慢時,這個選項就很有用。

4. +m :此選項支援本地tcp和udp

埠對映程式的註冊報告。

5. -i4 :僅列示ipv4協議下的埠。

6. -i6 : 僅列示ipv6協議下的埠。

netstaty命令舉例

請輸入下面的命令:

# netstat -tulpn

或者是# netstat -npl

請看輸出結果::

proto recv-q send-q local address

foreign address state pid/program

name

tcp 0 0 0.0.0.0:6881 0.0.0.0:* listen 6908/python

tcp 0 0 127.0.0.1:631 0.0.0.0:* listen 5562/cupsd

tcp 0 0 127.0.0.1:3128 0.0.0.0:* listen 6278/(squid)

tcp 0 0 127.0.0.1:25 0.0.0.0:* listen 5854/exim4

udp 0 0 0.0.0.0:32769 0.0.0.0:* 6278/(squid)

udp 0 0 0.0.0.0:3130 0.0.0.0:* 6278/(squid)

udp 0 0 0.0.0.0:68 0.0.0.0:* 4583/dhclient3

udp 0 0 0.0.0.0:6881 0.0.0.0:* 6908/python

請注意,最後一欄給出了關於程式名稱和埠的資訊。在這裡,我們解釋一下各引數的含義:

-t : 指明顯示tcp埠

-u : 指明顯示udp埠

-l : 僅顯示監聽套接字(所謂套接字就是使應用程式能夠讀寫與收發通訊協議(protocol

)與資料的程式)

-p : 顯示程序

識別符號和程式名稱,每乙個套接字/埠都屬於乙個程式。

-n : 不進行dns輪詢(可以加速操作)

關於/etc/services檔案

/etc/services是乙個純ascii檔案,它可以提供網際網路服務的友好文字名稱,還有其預設分配的埠號和協議型別。每乙個網路程式都要進入這個檔案得其服務的埠號(和協議)。你可以借助於cat命令或less命令等來檢視這個檔案:

$ cat /etc/services

$ grep

110 /etc/services

$ less /etc/services

Linux中如何檢視服務及監聽埠

問 我該如何發現哪種服務正在某個特定埠上監聽呢?我如何發現哪乙個程式正在乙個特定埠上監聽呢?答 在 nix系統中,你可以使用下面的任何乙個命令來得到在乙個特定tcp埠上監聽的列表。lsof 其功能是列示開啟的檔案,包括監聽埠。netstat 此命令象徵性地展示各種與網路 有關的資料和資訊的內容。ls...

Linux中如何檢視服務及監聽埠

it專家網獨家 問 我該如何發現哪種服務正在某個特定埠上監聽呢?我如何發現哪乙個程式正在乙個特定埠上監聽呢?答 在 nix系統中,你可以使用下面的任何乙個命令來得到在乙個特定tcp埠上監聽的列表。lsof 其功能是列示開啟的檔案,包括監聽埠。netstat 此命令象徵性地展示各種與網路有關的資料和資...

Linux中如何檢視服務及監聽埠

問 我該如何發現哪種服務正在某個特定埠上監聽呢?我如何發現哪乙個程式正在乙個特定埠上監聽呢?答 在 nix系統中,你可以使用下面的任何乙個命令來得到在乙個特定tcp埠上監聽的列表。lsof 其功能是列示開啟的檔案,包括監聽埠。netstat 此命令象徵性地展示各種與網路 有關的資料和資訊的內容。ls...