前言
如何確定埠是否在Linux或類unix系統下占用?怎麼檢查哪些埠正在Linux伺服器上被占用?Linux系統如何使用命令行檢查埠是否已經在占用?
Linux埠占用查詢
查詢哪些埠正在伺服器的網絡接口上被占用是非常重要的工作。您需要查詢打開埠以檢測入侵。除了入侵之外,出於故障排除的目的,可能有必要檢查伺服器上的其他應用程式是否已經使用了某個埠。例如,您可以在同一系統上安裝Apache和Nginx伺服器。因此,有必要了解Apache或Nginx是否使用TCP埠80或443。本教程提供了使用netstat、nmap和lsof命令查詢正在使用的埠並查看正在使用該埠的應用程式的步驟。
如何查詢埠是否在使用中:
檢查Linux上被占用的埠和應用程式:
Step1: 打開終端
Step2: 執行以下任意一條命令查看被占用的埠
查看埠22是否被占用:
較新版本的Linux使用以下查詢命令:
方法1: 使用lsof命令查詢占用埠
先安裝lsof命令
RHEL/CentOS系統:
使用lsof命令查詢占用埠
Debian/Ubuntu系統安裝lsof命令
使用語法如下
OpenBSD
通過lsof查詢埠被占用的情況
看到類似這樣的輸出結果:
sshd是進程名字
TCP 22表示sshd進程占用了TCP 22埠,正在監聽中(LISTEN)
1243表示sshd進程號
方法二:使用netstat查詢被占用的埠號
較新的Linux發行版已經不再默認集成netstat命令,而是使用新命令ss取代了。
如果要使用netstat命令,需要手動安裝net-tools套件:
RHEL/CentOS系統安裝net-tools套件,執行以下命令:
Debian/Ubuntu系統執行以下命令:
Linux安裝netstat命令用於查詢被占用的埠號
您可以使用netstat查詢被占用的埠和應用程式,如下所示。
執行以下命令查詢:
使用netstat查詢被占用的埠和應用程式
在Linux上,netstat命令已經廢棄了一段時間。因此,你需要使用ss命令如下:
或者:
使用ss命令查詢被占用的埠號
其中ss命令選項如下:
-t : 只顯示Linux上的TCP套接字
-u : 在Linux上只顯示UDP套接字
-l : 監聽套接字。例如,TCP埠22由SSHD伺服器打開。
-p : 列出打開套接字的進程名
-n : 不要解析服務名稱,即不要使用DNS
FreeBSD/MacOS X netstat 語法
FreeBSD/MacOS X查詢被占用的埠
或者
OpenBSD netstat 語法
OpenBSD查詢被占用的埠
或者
方法三:使用`nmap`命令查詢Linux被占用的埠
默認情況下,Linux發行版並沒有默認安裝nmap命令,
CentOS系統安裝nmap
Ubuntu系統安裝nmap
使用nmap查詢本機被占用的埠
查詢Linux系統被占用的UDP埠
查詢Linux系統被占用的TCP埠
使用nmap命令查詢Linux被占用的埠
你可以同時查詢被占用的TCP和UDP埠
結論:
本教程解釋了如何在Linux系統上使用命令行查詢TCP或者UDP埠是否被占用。有關更多信息,請參見nmap命令和lsof命令頁面
本文已同步至博客站,尊重原創,轉載時請在正文中附帶以下連結:
https://www.linuxrumen.com/rmxx/1316.html
點擊了解更多,快速查看更多的技術文章列表。