在 Linux 使用(yong)過(guo)程中(zhong),如(ru)果(guo)需要了(le)解當前系統開放了(le)哪些端(duan)(duan)口(kou),及這些端(duan)(duan)口(kou)的關聯進程和用(yong)戶(hu),可以通過(guo) netstat 命令(ling)進行查詢。
netstat 命令各參數說明如下:
-t:指明顯(xian)示 TCP 端口 -u:指(zhi)明顯示 UDP 端口(kou) -l:僅(jin)顯示監聽(ting)套(tao)接(jie)字(zi) -p:顯示進程(cheng)(cheng)標識符和(he)程(cheng)(cheng)序名稱,每一個套(tao)接字/端口(kou)都屬于一個程(cheng)(cheng)序。 -n:不進行(xing) DNS 輪詢,顯示(shi) IP (可以加速操(cao)作(zuo))
常用的 netstat 命令(ling)組(zu)合
netstat -na 該命令將(jiang)顯示所有(you)活(huo)動的網(wang)絡連接。 同時,還可以結合(he)使用 grep、wc、sort 等(deng) linux 命令來分析(xi)系統中連接(jie)情況(kuang),查看(kan)連接(jie)數(shu)狀況(kuang),判斷服務(wu)器是否被攻擊。
netstat -an | grep :80 | sort 顯(xian)示所(suo)有 80 端(duan)口(kou)的(de)網絡連接(jie)(jie)并排序。這(zhe)里(li)的(de) 80 端(duan)口(kou)是 http 端(duan)口(kou),所(suo)以可以用來監控(kong) web 服務(wu)。如果看(kan)到(dao)同一個 IP 有大量(liang)(liang)連接(jie)(jie),則(ze)判定該 IP 疑似存在單點流量(liang)(liang)攻擊行為。
netstat -n -p|grep SYN_REC | wc -l 統計當前服務器有多少個活動的 SYNC_REC 連接(jie)數。正常來說這(zhe)個值很小(xiao)(小(xiao)于 5)。 說明:當有 DDos 攻擊或時(shi),該值可能(neng)會非常高。但有些(xie)并(bing)發很高的(de)服務器,該值也確實(shi)很高,因(yin)此該很高并(bing)不能(neng)說明一(yi)定是被攻擊所致。
netstat -n -p | grep SYN_REC | sort -u 列出所(suo)有(you)連接過的 IP 地址。
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}' 列出所有(you)發送 SYN_REC 連接節點(dian)的 IP 地址。
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 計算每個主機連接到本機的連接數。
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 列出所(suo)有(you)連接(jie)到本機的 UDP 或者 TCP 連接(jie)的 IP 數量(liang)。
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr 檢查 ESTABLISHED 連接并(bing)且列出(chu)每個(ge) IP 地址的連接數量。
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1 列出(chu)所(suo)有連(lian)接到本機 80 端(duan)口(kou)的(de) IP 地址(zhi)及其連(lian)接數(shu)。80 端(duan)口(kou)一般是用來處理 HTTP 網頁(ye)請求。
netstat -antp | awk '$4 ~ /:80$/ {print $4" "$5}' | awk '{print $2}'|awk -F : {'print $1'} | uniq -c | sort -nr | head -n 10 顯(xian)示連(lian)接到 80 端口連(lian)接數(shu)排名前(qian) 10 的 IP,并(bing)顯(xian)示每個 IP 的連(lian)接數(shu)。如(ru)果看到同一個 IP 有大量連(lian)接,則判(pan)定該 IP 疑似存在單點(dian)流量攻擊行為。
如何停止端口占用
可以通過如(ru)下(xia)步驟來停止端口占用:
1.查找(zhao)端口占用的進程 使(shi)用如下命(ming)令來查(cha)看(kan)(以查(cha)看(kan)9000端口為例):netstat -antp | grep 9000 示例輸出: 
2.可以看到 PID 為 1070 的(de)進程占(zhan)用(yong)了這(zhe)個端口(kou)。 3.停止相(xiang)應進(jin)程即可(ke)。
|