新聞中心
Linux如何查詢哪些端口被占用
前言
成都創(chuàng)新互聯(lián)為客戶提供專業(yè)的網(wǎng)站制作、做網(wǎng)站、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項目涵蓋了網(wǎng)頁設(shè)計、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、手機(jī)網(wǎng)站制作等網(wǎng)站方面業(yè)務(wù)。
如何確定端口是否在Linux或類unix系統(tǒng)下占用?怎么檢查哪些端口正在Linux服務(wù)器上被占用?Linux系統(tǒng)如何使用命令行檢查端口是否已經(jīng)在占用?
查詢哪些端口正在服務(wù)器的網(wǎng)絡(luò)接口上被占用是非常重要的工作。您需要查詢打開端口以檢測入侵。除了入侵之外,出于故障排除的目的,可能有必要檢查服務(wù)器上的其他應(yīng)用程序是否已經(jīng)使用了某個端口。例如,您可以在同一系統(tǒng)上安裝Apache和Nginx服務(wù)器。因此,有必要了解Apache或Nginx是否使用TCP端口80或443。本教程提供了使用netstat、nmap和lsof命令查詢正在使用的端口并查看正在使用該端口的應(yīng)用程序的步驟。
如何查詢端口是否在使用中:
檢查Linux上被占用的端口和應(yīng)用程序:
Step1: 打開終端
Step2: 執(zhí)行以下任意一條命令查看被占用的端口
查看端口22是否被占用:
較新版本的Linux使用以下查詢命令:
方法1: 使用lsof命令查詢占用端口
先安裝lsof命令
RHEL/CentOS系統(tǒng):
Debian/Ubuntu系統(tǒng)安裝lsof命令
使用語法如下
OpenBSD
看到類似這樣的輸出結(jié)果:
sshd是進(jìn)程名字
TCP 22表示sshd進(jìn)程占用了TCP 22端口,正在監(jiān)聽中(LISTEN)
1243表示sshd進(jìn)程號
方法二:使用netstat查詢被占用的端口號
較新的Linux發(fā)行版已經(jīng)不再默認(rèn)集成netstat命令,而是使用新命令ss取代了。
如果要使用netstat命令,需要手動安裝net-tools套件:
RHEL/CentOS系統(tǒng)安裝net-tools套件,執(zhí)行以下命令:
Debian/Ubuntu系統(tǒng)執(zhí)行以下命令:
您可以使用netstat查詢被占用的端口和應(yīng)用程序,如下所示。
執(zhí)行以下命令查詢:
在Linux上,netstat命令已經(jīng)廢棄了一段時間。因此,你需要使用ss命令如下:
或者:
其中ss命令選項如下:
-t : 只顯示Linux上的TCP套接字
-u : 在Linux上只顯示UDP套接字
-l : 監(jiān)聽套接字。例如,TCP端口22由SSHD服務(wù)器打開。
-p : 列出打開套接字的進(jìn)程名
-n : 不要解析服務(wù)名稱,即不要使用DNS
FreeBSD/MacOS X netstat 語法
FreeBSD/MacOS X查詢被占用的端口
或者
OpenBSD netstat 語法
OpenBSD查詢被占用的端口
或者
方法三:使用`nmap`命令查詢Linux被占用的端口
默認(rèn)情況下,Linux發(fā)行版并沒有默認(rèn)安裝nmap命令,
CentOS系統(tǒng)安裝nmap
Ubuntu系統(tǒng)安裝nmap
使用nmap查詢本機(jī)被占用的端口
查詢Linux系統(tǒng)被占用的UDP端口
查詢Linux系統(tǒng)被占用的TCP端口
你可以同時查詢被占用的TCP和UDP端口
結(jié)論:
本教程解釋了如何在Linux系統(tǒng)上使用命令行查詢TCP或者UDP端口是否被占用。有關(guān)更多信息,請參見nmap命令和lsof命令頁面
linux的netstat -t命令 顯示的這樣的結(jié)果 是什么意思
1、netstat命令的-t參數(shù)指的是 tcp的簡寫,意思是僅顯示tcp相關(guān)選項
2、示例:列出所有 tcp 端口 netstat -at
# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:30037 *:* LISTEN
tcp 0 0 localhost:ipp *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
tcp6 0 0 localhost:ipp [::]:* LISTEN
說明:
Proto:指的是協(xié)議,因為使用-t參數(shù),所以只顯示tcp協(xié)議的連接
Recv-Q: 非由用戶進(jìn)程連接到此socket的復(fù)制的總字節(jié)數(shù)
Send-Q:非由遠(yuǎn)程主機(jī)傳送過來的acknowledged總字節(jié)數(shù)
Local Address:本地IP地址
Foreign Address:目標(biāo)IP地址
State:狀態(tài),連接狀態(tài)有好多種,分類如下:
LISTEN:偵聽來自遠(yuǎn)方的TCP端口的連接請求
SYN-SENT:再發(fā)送連接請求后等待匹配的連接請求(如果有大量這樣的狀態(tài)包,檢查是否中招了)
SYN-RECEIVED:再收到和發(fā)送一個連接請求后等待對方對連接請求的確認(rèn)(如有大量此狀態(tài),估計被flood攻擊了)
ESTABLISHED:代表一個打開的連接
FIN-WAIT-1:等待遠(yuǎn)程TCP連接中斷請求,或先前的連接中斷請求的確認(rèn)
FIN-WAIT-2:從遠(yuǎn)程TCP等待連接中斷請求
CLOSE-WAIT:等待從本地用戶發(fā)來的連接中斷請求
CLOSING:等待遠(yuǎn)程TCP對連接中斷的確認(rèn)
LAST-ACK:等待原來的發(fā)向遠(yuǎn)程TCP的連接中斷請求的確認(rèn)(不是什么好東西,此項出現(xiàn),檢查是否被攻擊)
TIME-WAIT:等待足夠的時間以確保遠(yuǎn)程TCP接收到連接中斷請求的確認(rèn)
CLOSED:沒有任何連接狀態(tài)
linux下 !t 是什么命令?
1、!t執(zhí)行的是歷史命令中最后執(zhí)行的命令中t開頭的命令
2、比如你執(zhí)行過df
-h,!df
就會重復(fù)執(zhí)行
3、!!執(zhí)行上一條命令
4、!45會執(zhí)行history編號為45的命令
5、!$
重復(fù)前一個命令最后的參數(shù)。
6、fc命令
fc
-l(同history):查看歷史列表
fc
-s
編號(同!編號):執(zhí)行此編號的命令
fc
-s(或!!):執(zhí)行上一條命令
7、查看歷史命令vi
~/.bash_history
linux中查看所有文件的命令
使用 ls -al 即可查看當(dāng)前子目錄下面的所有文件命令。若想在當(dāng)前子目錄下面查看其它的子目錄命令的話,只要在前面加上絕對路徑名即可。例如:當(dāng)前子目錄是 mysubdir,若想顯示 /usr/lib 子目錄下面的所有文件,則使用 ls -al /usr/lib 即可。
分享文章:linux中-t命令的簡單介紹
文章路徑:http://www.dlmjj.cn/article/dsssgjj.html