Linux netstat命令介绍
關注Linux的系統狀態,主要從兩個角度出發,一個角度是系統正在運行什么服務(ps命令);另外一個就是有什么連接或服務可用(netstat命令)。netstat還可以顯示ps無法顯示的、從inetd或xinetd中運行的服務,比如telnet等。
1.功能與說明
netstat 用于顯示linux中各種網絡相關信息。如網絡鏈接、路由表、接口狀態鏈接、多播成員等等。
2.參數含義介紹
-a (all)顯示所有選項,默認不顯示LISTEN相關(本選項顯示一個所有的有效連接信息列表,包括已建立的連接(ESTABLISHED),也包括監聽連接請(LISTENING)的那些連接。)
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示建立相關鏈接的程序名
-r 顯示路由信息,路由表(本選項可以顯示關于路由表的信息,類似于后面所講使用route print命令時看到的 信息。除了顯示有效路由外,還顯示當前有效的連接。)
-e 顯示擴展信息,例如uid等(本選項用于顯示關于以太網的統計數據。它列出的項目包括傳送的數據報的總字節數、錯誤數、刪除數、數據報的數量和廣播的數量。這些統計數據既有發送的數據報數量,也有接收的數據報數量。這個選項可以用來統計一些基本的網絡流量)。)
-s 按各個協議進行統計(本選項能夠按照各個協議分別顯示其統計數據。如果我們的應用程序(如Web瀏覽器)運行速度比較慢,或者不能顯示Web頁之類的數據,那么我們就可以用本選項來查看一下所顯示的信息。我們需要仔細查看統計數據的各行,找到出錯的關鍵字,進而確定問題所在。)
-c 每隔一個固定時間,執行該netstat命令。
提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到
3.常用實例
3.1 ?列出所有端口?
netstat -a [root@zhz jiehun]# netstat -a|more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:webcache *:* LISTEN tcp 0 0 *:http *:* LISTEN tcp 0 0 192.168.122.1:domain *:* LISTEN tcp 0 0 localhost.localdomain:d-s-n *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost.loc:simplifymedia *:* LISTEN上述顯示中,
"Proto"是 Protocol 的簡稱,它可以是 TCP 或 UDP。
"Recv-Q"和"Send-Q"指的是接收隊列和發送隊列,這些數字一般都應該是 0,如果不是,則表示軟件包正在隊列中堆積。這種情況只能在非常短的時間內存在,比如在 KMail 中單擊檢查郵件按鈕時,有如下顯示是正常現象:
tcp 0 593 192.168.1.5:34321 venus.euao.com:smtp ESTABLISHED如果接收隊列持續處于阻塞狀態,那么很有可能受到了拒絕式服務的攻擊。如果發送隊列不能被快速清除,則可能是因為有一個應用程序不能將所要發送的東西傳送完。
"Local Address" 指本機的 IP 和端口號。
"Foreign Address"指所要連接的主機名稱和服務。
"State"指現在連接的狀態。
三種常見的 TCP 狀態如下所示:
a) LISTEN 等待接收連接;
b) ESTABLISHED 一個處于活躍狀態的連接;
c) TIME_WAIT 一個剛被終止的連接。它只持續 1 至 2 分鐘,然后就會變成 LISTEN 狀態。
由于 UDP 是無狀態的,所以其 State 欄總是空白。
持續獲取有用信息
使用"netstat -a"命令,顯示結果可能會有數百行。其實,在這些結果中可以忽略所有"Active?Unix domain sockets"以后的內容。因為這些內容是本地內部進程之間的通信,而不是網絡連接。使用以下命令可以避免顯示無用信息:
$ netstat --inet -a?? " netstat --inet -a" 命令的顯示結果將只有網絡連接,包括所有正處在"LISTEN"狀態和"ESTABLISHED"狀態的。需要特別注意的是,對于普通用戶而言,一般不需要使用 telnet 或 SMTP 服務。因此需要將其關閉,以提高系統安全性;并且要重新配置啟動文件,以保證它們不會在下次系統啟動時自動重新啟動。要想持續不斷地查看隨時都在更改的網絡信息,可以使用 netstat 命令的"-c"參數,并且將結果存入文件中:
$ netstat --inet -a -c > netstat.txt這時,查看 netstat.txt 文件即可檢查郵件服務、Web 服務和 telnet 服務等的狀態變化。
?
3.2 ?列出所有tcp端口
[root@zhz jiehun]# netstat -at|more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:webcache *:* LISTEN tcp 0 0 *:http *:* LISTEN tcp 0 0 192.168.122.1:domain *:* LISTEN tcp 0 0 localhost.localdomain:d-s-n *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost.loc:simplifymedia *:* LISTEN3.3 列出所有udp端口?
netstat -au [root@zhz jiehun]# netstat -au|more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:ideafarm-panic *:* udp 0 0 *:47005 *:* udp 0 0 localhost.loca:memcache *:* udp 0 0 *:55276 *:* udp 0 0 192.168.122.1:domain *:* udp 0 0 *:bootps *:* udp 0 0 *:bootpc *:* udp 0 0 *:sunrpc *:* udp 0 0 *:ipp *:* udp 0 0 *:44236 *:* udp 0 0 *:722 *:*3.4 只顯示正在處于監聽狀態的端口?netstat -l
[root@zhz jiehun]# netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:webcache *:* LISTEN tcp 0 0 *:http *:* LISTEN tcp 0 0 192.168.122.1:domain *:* LISTEN tcp 0 0 localhost.localdomain:d-s-n *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost.loc:simplifymedia *:* LISTEN tcp 0 0 localhost.localdomain:ipp *:* LISTEN tcp 0 0 *:44343 *:* LISTEN tcp 0 0 localhost.localdomain:smtp *:* LISTEN3.5 只顯示監聽的tcp端口 netstat -lt
[root@zhz jiehun]# netstat -lt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:webcache *:* LISTEN tcp 0 0 *:http *:* LISTEN tcp 0 0 192.168.122.1:domain *:* LISTEN tcp 0 0 localhost.localdomain:d-s-n *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost.loc:simplifymedia *:* LISTEN tcp 0 0 localhost.localdomain:ipp *:* LISTEN tcp 0 0 *:44343 *:* LISTEN tcp 0 0 localhost.localdomain:smtp *:* LISTEN3.6 只顯示所有監聽udp端口 netstat -lu
[root@zhz jiehun]# netstat -lu Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:ideafarm-panic *:* udp 0 0 *:47005 *:* udp 0 0 *:47551 *:* udp 0 0 localhost.loca:memcache *:* udp 0 0 *:55276 *:* udp 0 0 192.168.122.1:domain *:* udp 0 0 *:bootps *:* udp 0 0 *:bootpc *:* udp 0 0 *:sunrpc *:*3.7 ?只列出所有監聽unix端口 netstat -lx
[root@zhz jiehun]# netstat -lx Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 21941 /tmp/.X11-unix/X0 unix 2 [ ACC ] STREAM LISTENING 34096 /tmp/orbit-haozheng/linc-cd2-0-5b33fa1ecf0c9 unix 2 [ ACC ] STREAM LISTENING 22263 @/tmp/gdm-greeter-cBlQsyRF unix 2 [ ACC ] STREAM LISTENING 32728 /tmp/.ICE-unix/3103 unix 2 [ ACC ] STREAM LISTENING 36866 @/tmp/dbus-AcJrBlWF unix 2 [ ACC ] STREAM LISTENING 20454 /tmp/mysql.sock3.8 ?顯示所有端口的統計信息 netstat -s
[root@zhz jiehun]# netstat -s Ip:1943780 total packets received2 forwarded0 incoming packets discarded1769532 incoming packets delivered1121573 requests sent out132 outgoing packets dropped45867 dropped because of missing route Tcp:64002 active connections openings7632 passive connection openings2309 failed connection attempts498 connection resets received8 connections established1018564 segments received1022700 segments send out16835 segments retransmited2 bad segments received.552 resets sent Udp:133420 packets received7845 packets to unknown port received.0 packet receive errors74841 packets sent0 receive buffer errors0 send buffer errors3.9 顯示所有tcp(netstat -st)或udp(netstat -su)的統計信息
[root@zhz jiehun]# netstat -su IcmpMsg:InType0: 11InType3: 13506OutType3: 13679OutType8: 11 Udp:133462 packets received7869 packets to unknown port received.0 packet receive errors74888 packets sent0 receive buffer errors0 send buffer errors UdpLite: IpExt:InNoRoutes: 991InMcastPkts: 24308OutMcastPkts: 2353InBcastPkts: 630615OutBcastPkts: 1546InOctets: 755319900OutOctets: 296705252InMcastOctets: 2908748OutMcastOctets: 93173InBcastOctets: 99500419OutBcastOctets: 2999803.10 顯示pid/進程名稱 netstat -p ? -p可以與其他參數一起使用 比如 顯示tcp的進程id信息
[root@zhz jiehun]# netstat -pt Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.0.52:44784 123.150.49.20:http FIN_WAIT2 4207/VirtualBox tcp 0 0 192.168.0.52:46715 ie-in-f125.1e100.net:https ESTABLISHED 4207/VirtualBox tcp 0 0 192.168.0.52:43415 geotrust-ocsp-mtv.veri:http FIN_WAIT2 4207/VirtualBox3.11 ?在 netstat 輸出中不顯示主機,端口和用戶名 (host, port or user)當你不想讓主機,端口和用戶名顯示,使用 netstat -n,將會使用數字代替那些名稱,同樣可以加速輸出,因為不用進行DNS輪詢。netstat -ntpl ?顯示tcp的監聽端口 不顯示主機端口用戶名 用數字代替
[root@zhz jiehun]# netstat -ptnl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 971/rpcbind tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1526/nginx: master tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1526/nginx: master tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1248/dnsmasq tcp 0 0 127.0.0.1:8086 0.0.0.0:* LISTEN 1553/python tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1163/sshd tcp 0 0 127.0.0.1:8087 0.0.0.0:* LISTEN 1553/python tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1140/cupsd tcp 0 0 0.0.0.0:44343 0.0.0.0:* LISTEN 1151/rpc.statd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 18573/sendmail: acc tcp 0 0 127.0.0.1:3002 0.0.0.0:* LISTEN 1004/ruby tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 1526/nginx: master3.12 ?一秒鐘輸出一次tcp監聽端口信息 netstat -ntplc
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 971/rpcbind tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1526/nginx: master tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1526/nginx: master tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1248/dnsmasq tcp 0 0 127.0.0.1:8086 0.0.0.0:* LISTEN 1553/python tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1163/sshd3.13 ?顯示路由信息 netstat -r
[root@zhz jiehun]# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default vrouter 0.0.0.0 UG 0 0 0 eth0 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 192.168.122.0 * 255.255.255.0 U 0 0 0 virb3.14?顯示網絡接口列表,檢查網卡 netstat -i
[root@zhz jiehun]# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 4943885 0 0 0 901773 0 0 0 BMRU lo 16436 0 236931 0 0 0 236931 0 0 0 LRU virbr0 1500 0 0 0 0 0 0 0 0 0 BMU在"RX-OK (Received OK)"和"TX-OK (Transmitted OK)"欄應該看到很多數字,而其它地方的數字應該非常小。如果在"RX-ERR"或"TX-ERR"欄看到很多數據,則很有可能是網卡或網線出現了問題。
轉載于:https://www.cnblogs.com/CheeseZH/p/5169498.html
總結
以上是生活随笔為你收集整理的Linux netstat命令介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web移动端常见问题解决方案
- 下一篇: 使用markdown编辑evernote