在 Linux 使用過程中,如果需要了解當(dāng)前系統(tǒng)開放了哪些端口,及這些端口的關(guān)聯(lián)進(jìn)程和用戶,可以通過 netstat 命令進(jìn)行查詢。
netstat 命令各參數(shù)說明如下:
-t:指明顯示 TCP 端口 -u:指明顯示 UDP 端口 -l:僅顯示監(jiān)聽套接字 -p:顯示進(jìn)程標(biāo)識(shí)符和程序名稱,每一個(gè)套接字/端口都屬于一個(gè)程序。 -n:不進(jìn)行 DNS 輪詢,顯示 IP (可以加速操作)
常用的 netstat 命令組合
netstat -na 該命令將顯示所有活動(dòng)的網(wǎng)絡(luò)連接。 同時(shí),還可以結(jié)合使用 grep、wc、sort 等 linux 命令來分析系統(tǒng)中連接情況,查看連接數(shù)狀況,判斷服務(wù)器是否被攻擊。
netstat -an | grep :80 | sort 顯示所有 80 端口的網(wǎng)絡(luò)連接并排序。這里的 80 端口是 http 端口,所以可以用來監(jiān)控 web 服務(wù)。如果看到同一個(gè) IP 有大量連接,則判定該 IP 疑似存在單點(diǎn)流量攻擊行為。
netstat -n -p|grep SYN_REC | wc -l 統(tǒng)計(jì)當(dāng)前服務(wù)器有多少個(gè)活動(dòng)的 SYNC_REC 連接數(shù)。正常來說這個(gè)值很。ㄐ∮ 5)。 說明:當(dāng)有 DDos 攻擊或時(shí),該值可能會(huì)非常高。但有些并發(fā)很高的服務(wù)器,該值也確實(shí)很高,因此該很高并不能說明一定是被攻擊所致。
netstat -n -p | grep SYN_REC | sort -u 列出所有連接過的 IP 地址。
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}' 列出所有發(fā)送 SYN_REC 連接節(jié)點(diǎn)的 IP 地址。
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 計(jì)算每個(gè)主機(jī)連接到本機(jī)的連接數(shù)。
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 列出所有連接到本機(jī)的 UDP 或者 TCP 連接的 IP 數(shù)量。
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr 檢查 ESTABLISHED 連接并且列出每個(gè) IP 地址的連接數(shù)量。
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1 列出所有連接到本機(jī) 80 端口的 IP 地址及其連接數(shù)。80 端口一般是用來處理 HTTP 網(wǎng)頁請求。
netstat -antp | awk '$4 ~ /:80$/ {print $4" "$5}' | awk '{print $2}'|awk -F : {'print $1'} | uniq -c | sort -nr | head -n 10 顯示連接到 80 端口連接數(shù)排名前 10 的 IP,并顯示每個(gè) IP 的連接數(shù)。如果看到同一個(gè) IP 有大量連接,則判定該 IP 疑似存在單點(diǎn)流量攻擊行為。
如何停止端口占用
可以通過如下步驟來停止端口占用:
1.查找端口占用的進(jìn)程 使用如下命令來查看(以查看9000端口為例):netstat -antp | grep 9000 示例輸出: 
2.可以看到 PID 為 1070 的進(jìn)程占用了這個(gè)端口。 3.停止相應(yīng)進(jìn)程即可。
|