歡迎光臨
每天分享高質量文章

如何檢查 Linux 中的開放端口串列? | Linux 中國

本文幫助你檢查本地系統上的開放端口串列。在 Linux 中很少有用於此目的的實用程式。然而,我提供了四個最重要的 Linux 命令來檢查這一點。

— Magesh Maruthamuthu

 

最近,我們就同一主題寫了兩篇文章。這些文章內容幫助你如何檢查遠程服務器中給定的端口是否打開。

如果你想 檢查遠程 Linux 系統上的端口是否打開[1] 請點擊鏈接瀏覽。如果你想 檢查多個遠程 Linux 系統上的端口是否打開[2] 請點擊鏈接瀏覽。如果你想 檢查多個遠程 Linux 系統上的多個端口狀態[2] 請點擊鏈接瀏覽。

但是本文幫助你檢查本地系統上的開放端口串列。

在 Linux 中很少有用於此目的的實用程式。然而,我提供了四個最重要的 Linux 命令來檢查這一點。

你可以使用以下四個命令來完成這個工作。這些命令是非常出名的並被 Linux 管理員廣泛使用。

◈ netstat:netstat (“network statistics”) 是一個顯示網絡連接(進和出)相關信息命令列工具,例如:路由表, 偽裝連接,多點傳送成員和網絡端口。
◈ nmap:Nmap (“Network Mapper”) 是一個網絡探索與安全審計的開源工具。它旨在快速掃描大型網絡。
◈ ss: ss 被用於轉儲套接字統計信息。它也可以類似 netstat 使用。相比其他工具它可以展示更多的TCP狀態信息。
◈ lsof: lsof 是 List Open File 的縮寫. 它用於輸出被某個行程打開的所有檔案。

如何使用 Linux 命令 netstat 檢查系統中的開放端口串列

netstat 是 Network Statistics 的縮寫,是一個顯示網絡連接(進和出)相關信息命令列工具,例如:路由表、偽裝連接、多播成員和網絡端口。

它可以列出所有的 tcp、udp 連接和所有的 unix 套接字連接。

它用於發現發現網絡問題,確定網絡連接數量。

  1. # netstat -tplugn
  2. Active Internet connections (only servers)
  3. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  4. tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2038/master
  5. tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 1396/snmpd
  6. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1398/httpd
  7. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1388/sshd
  8. tcp6 0 0 :::25 :::* LISTEN 2038/master
  9. tcp6 0 0 :::22 :::* LISTEN 1388/sshd
  10. udp 0 0 0.0.0.0:39136 0.0.0.0:* 1396/snmpd
  11. udp 0 0 0.0.0.0:56130 0.0.0.0:* 1396/snmpd
  12. udp 0 0 0.0.0.0:40105 0.0.0.0:* 1396/snmpd
  13. udp 0 0 0.0.0.0:11584 0.0.0.0:* 1396/snmpd
  14. udp 0 0 0.0.0.0:30105 0.0.0.0:* 1396/snmpd
  15. udp 0 0 0.0.0.0:50656 0.0.0.0:* 1396/snmpd
  16. udp 0 0 0.0.0.0:1632 0.0.0.0:* 1396/snmpd
  17. udp 0 0 0.0.0.0:28265 0.0.0.0:* 1396/snmpd
  18. udp 0 0 0.0.0.0:40764 0.0.0.0:* 1396/snmpd
  19. udp 0 0 10.90.56.21:123 0.0.0.0:* 895/ntpd
  20. udp 0 0 127.0.0.1:123 0.0.0.0:* 895/ntpd
  21. udp 0 0 0.0.0.0:123 0.0.0.0:* 895/ntpd
  22. udp 0 0 0.0.0.0:53390 0.0.0.0:* 1396/snmpd
  23. udp 0 0 0.0.0.0:161 0.0.0.0:* 1396/snmpd
  24. udp6 0 0 :::123 :::* 895/ntpd
  25. IPv6/IPv4 Group Memberships
  26. Interface RefCnt Group
  27. --------------- ------ ---------------------
  28. lo 1 224.0.0.1
  29. eth0 1 224.0.0.1
  30. lo 1 ff02::1
  31. lo 1 ff01::1
  32. eth0 1 ff02::1
  33. eth0 1 ff01::1

你也可以使用下麵的命令檢查特定的端口。

  1. # # netstat -tplugn | grep :22
  2. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1388/sshd
  3. tcp6 0 0 :::22 :::* LISTEN 1388/sshd

如何使用 Linux 命令 ss 檢查系統中的開放端口串列?

ss 被用於轉儲套接字統計信息。它也可以顯示類似 netstat 的信息。相比其他工具它可以展示更多的 TCP 狀態信息。

  1. # ss -lntu
  2. Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
  3. udp UNCONN 0 0 *:39136 *:*
  4. udp UNCONN 0 0 *:56130 *:*
  5. udp UNCONN 0 0 *:40105 *:*
  6. udp UNCONN 0 0 *:11584 *:*
  7. udp UNCONN 0 0 *:30105 *:*
  8. udp UNCONN 0 0 *:50656 *:*
  9. udp UNCONN 0 0 *:1632 *:*
  10. udp UNCONN 0 0 *:28265 *:*
  11. udp UNCONN 0 0 *:40764 *:*
  12. udp UNCONN 0 0 10.90.56.21:123 *:*
  13. udp UNCONN 0 0 127.0.0.1:123 *:*
  14. udp UNCONN 0 0 *:123 *:*
  15. udp UNCONN 0 0 *:53390 *:*
  16. udp UNCONN 0 0 *:161 *:*
  17. udp UNCONN 0 0 :::123 :::*
  18. tcp LISTEN 0 100 *:25 *:*
  19. tcp LISTEN 0 128 127.0.0.1:199 *:*
  20. tcp LISTEN 0 128 *:80 *:*
  21. tcp LISTEN 0 128 *:22 *:*
  22. tcp LISTEN 0 100 :::25 :::*
  23. tcp LISTEN 0 128 :::22 :::*

你也可以使用下麵的命令檢查特定的端口。

  1. # # ss -lntu | grep ':25'
  2. tcp LISTEN 0 100 *:25 *:*
  3. tcp LISTEN 0 100 :::25 :::*

如何使用 Linux 命令 nmap 檢查系統中的開放端口串列?

Nmap (“Network Mapper”) 是一個網絡探索與安全審計的開源工具。它旨在快速掃描大型網絡,當然它也可以工作在獨立主機上。

Nmap 使用裸 IP 資料包以一種新穎的方式來確定網絡上有哪些主機可用,這些主機提供什麼服務(應用程式名稱和版本),它們運行什麼操作系統(版本),使用什麼型別的資料包過濾器/防火牆,以及許多其他特征。

雖然 Nmap 通常用於安全審計,但許多系統和網絡管理員發現它對於日常工作也非常有用,例如網絡資產清點、管理服務升級計劃以及監控主機或服務正常運行時間。

  1. # nmap -sTU -O localhost
  2. Starting Nmap 6.40 ( http://nmap.org ) at 2019-03-20 09:57 CDT
  3. Nmap scan report for localhost (127.0.0.1)
  4. Host is up (0.00028s latency).
  5. Other addresses for localhost (not scanned): 127.0.0.1
  6. Not shown: 1994 closed ports
  7. PORT STATE SERVICE
  8. 22/tcp open ssh
  9. 25/tcp open smtp
  10. 80/tcp open http
  11. 199/tcp open smux
  12. 123/udp open ntp
  13. 161/udp open snmp
  14. Device type: general purpose
  15. Running: Linux 3.X
  16. OS CPE: cpe:/o:linux:linux_kernel:3
  17. OS details: Linux 3.7 - 3.9
  18. Network Distance: 0 hops
  19. OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
  20. Nmap done: 1 IP address (1 host up) scanned in 1.93 seconds

你也可以使用下麵的命令檢查特定的端口。

  1. # nmap -sTU -O localhost | grep 123
  2. 123/udp open ntp

如何使用 Linux 命令 lsof 檢查系統中的開放端口串列?

它向你顯示系統上打開的檔案串列以及打開它們的行程。還會向你顯示與檔案相關的其他信息。

  1. # lsof -i
  2. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  3. ntpd 895 ntp 16u IPv4 18481 0t0 UDP *:ntp
  4. ntpd 895 ntp 17u IPv6 18482 0t0 UDP *:ntp
  5. ntpd 895 ntp 18u IPv4 18487 0t0 UDP localhost:ntp
  6. ntpd 895 ntp 20u IPv4 23020 0t0 UDP CentOS7.2daygeek.com:ntp
  7. sshd 1388 root 3u IPv4 20065 0t0 TCP *:ssh (LISTEN)
  8. sshd 1388 root 4u IPv6 20067 0t0 TCP *:ssh (LISTEN)
  9. snmpd 1396 root 6u IPv4 22739 0t0 UDP *:snmp
  10. snmpd 1396 root 7u IPv4 22729 0t0 UDP *:40105
  11. snmpd 1396 root 8u IPv4 22730 0t0 UDP *:50656
  12. snmpd 1396 root 9u IPv4 22731 0t0 UDP *:pammratc
  13. snmpd 1396 root 10u IPv4 22732 0t0 UDP *:30105
  14. snmpd 1396 root 11u IPv4 22733 0t0 UDP *:40764
  15. snmpd 1396 root 12u IPv4 22734 0t0 UDP *:53390
  16. snmpd 1396 root 13u IPv4 22735 0t0 UDP *:28265
  17. snmpd 1396 root 14u IPv4 22736 0t0 UDP *:11584
  18. snmpd 1396 root 15u IPv4 22737 0t0 UDP *:39136
  19. snmpd 1396 root 16u IPv4 22738 0t0 UDP *:56130
  20. snmpd 1396 root 17u IPv4 22740 0t0 TCP localhost:smux (LISTEN)
  21. httpd 1398 root 3u IPv4 20337 0t0 TCP *:http (LISTEN)
  22. master 2038 root 13u IPv4 21638 0t0 TCP *:smtp (LISTEN)
  23. master 2038 root 14u IPv6 21639 0t0 TCP *:smtp (LISTEN)
  24. sshd 9052 root 3u IPv4 1419955 0t0 TCP CentOS7.2daygeek.com:ssh->Ubuntu18-04.2daygeek.com:11408 (ESTABLISHED)
  25. httpd 13371 apache 3u IPv4 20337 0t0 TCP *:http (LISTEN)
  26. httpd 13372 apache 3u IPv4 20337 0t0 TCP *:http (LISTEN)
  27. httpd 13373 apache 3u IPv4 20337 0t0 TCP *:http (LISTEN)
  28. httpd 13374 apache 3u IPv4 20337 0t0 TCP *:http (LISTEN)
  29. httpd 13375 apache 3u IPv4 20337 0t0 TCP *:http (LISTEN)

你也可以使用下麵的命令檢查特定的端口。

  1. # lsof -i:80
  2. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  3. httpd 1398 root 3u IPv4 20337 0t0 TCP *:http (LISTEN)
  4. httpd 13371 apache 3u IPv4 20337 0t0 TCP *:http (LISTEN)
  5. httpd 13372 apache 3u IPv4 20337 0t0 TCP *:http (LISTEN)
  6. httpd 13373 apache 3u IPv4 20337 0t0 TCP *:http (LISTEN)
  7. httpd 13374 apache 3u IPv4 20337 0t0 TCP *:http (LISTEN)
  8. httpd 13375 apache 3u IPv4 20337 0t0 TCP *:http (LISTEN)

已同步到看一看
赞(0)

分享創造快樂