古詩詞大全網 - 團隊口號 - Linux如何查詢哪些端口被占用

Linux如何查詢哪些端口被占用

前言

如何確定端口是否在Linux或類unix系統下占用?怎麽檢查哪些端口正在Linux服務器上被占用?Linux系統如何使用命令行檢查端口是否已經在占用?

查詢哪些端口正在服務器的網絡接口上被占用是非常重要的工作。您需要查詢打開端口以檢測入侵。除了入侵之外,出於故障排除的目的,可能有必要檢查服務器上的其他應用程序是否已經使用了某個端口。例如,您可以在同壹系統上安裝Apache和Nginx服務器。因此,有必要了解Apache或Nginx是否使用TCP端口80或443。本教程提供了使用netstat、nmap和lsof命令查詢正在使用的端口並查看正在使用該端口的應用程序的步驟。

如何查詢端口是否在使用中:

檢查Linux上被占用的端口和應用程序:

Step1: 打開終端

Step2: 執行以下任意壹條命令查看被占用的端口

查看端口22是否被占用:

較新版本的Linux使用以下查詢命令:

方法1: 使用lsof命令查詢占用端口

先安裝lsof命令

RHEL/CentOS系統:

Debian/Ubuntu系統安裝lsof命令

使用語法如下

OpenBSD

看到類似這樣的輸出結果:

sshd是進程名字

TCP 22表示sshd進程占用了TCP 22端口,正在監聽中(LISTEN)

1243表示sshd進程號

方法二:使用netstat查詢被占用的端口號

較新的Linux發行版已經不再默認集成netstat命令,而是使用新命令ss取代了。

如果要使用netstat命令,需要手動安裝net-tools套件:

RHEL/CentOS系統安裝net-tools套件,執行以下命令:

Debian/Ubuntu系統執行以下命令:

您可以使用netstat查詢被占用的端口和應用程序,如下所示。

執行以下命令查詢:

在Linux上,netstat命令已經廢棄了壹段時間。因此,妳需要使用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端口

妳可以同時查詢被占用的TCP和UDP端口

結論:

本教程解釋了如何在Linux系統上使用命令行查詢TCP或者UDP端口是否被占用。有關更多信息,請參見nmap命令和lsof命令頁面