netstat

来源:互联网 发布:不思算法 编辑:程序博客网 时间:2024/05/01 08:47
netstat
查閱網路資訊的指令
語法: [root@test root]# netstat [-r] [-i interface]
[root@test root]# netstat [-antulp]
參數說明:
-r :顯示出 route 的意思;
-i  :顯示出 interface 的內容,跟 ifconfig 類似啦!
-a  :顯示出目前所有的網路連線狀態!
-n  :預設情況中,顯示出的 host 會以 host name 來顯現,若為 n 則可以使 port 與 host 都以數字顯示
-t  :僅顯示 tcp 封包的連線行為
-u  :僅顯示 udp 的封包連線狀態
-l  :僅顯示 LISTEN 的內容
-p  :同時顯示此一連線的 PID 喔!(注意:只有 root 才能行使此功能!)
範例:
[root@test root]# netstat -r 
# 嘿嘿!顯示出目前的路由表!與 route 指令的功能相同。
Kernel IP routing table
Destination     Gateway         Genmask         Flags MSS Window irtt Iface
140.116.141.253 *               255.255.255.255 UH     40 0         0 ppp0
192.168.1.0     *               255.255.255.0   U      40 0         0 eth0
192.168.0.0     *               255.255.255.0   U      40 0         0 eth0
127.0.0.0       *               255.0.0.0       U      40 0         0 lo
default         140.116.141.253 0.0.0.0         UG     40 0         0 ppp0
 
[root@test root]# netstat -i eth0 
# 看看底下顯示出的內容,是否跟 ifconfig eth0 類似呀!?
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   077199373      0      0      169616342      0      0      0 BMRU
lo    16436   0 1130485      0      0      0 1130485      0      0      0 LRU
 
[root@test root]# netstat -an<==顯示所有的連線狀態,並且以數字型態顯示
[root@test root]# netstat -tul <==顯示 LISTEN 的及 tcp 與 udp 的連線狀態,如下:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:mysql                 *:*                     LISTEN
tcp        0      0 *:netbios-ssn           *:*                     LISTEN
tcp        0      0 *:pop3                  *:*                     LISTEN
tcp        0      0 *:http                  *:*                     LISTEN
tcp        0      0 *:ftp                   *:*                     LISTEN
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 *:smtp                  *:*                     LISTEN
udp        0      0 *:netbios-ns            *:*
注意:上面的 LISTEN 表示該 port 是已經在 監聽 網路服務啦!而左邊的 tcp 指的是 tcp 封包!
 
[root@test root]# netstat -anp | more <==這個指令很常下達!請記得呦!
說明:
netstat 可是很了不起的指令,一定要學會的!尤其他可以讓我們瞭解目前的您的主機的連線狀態!與開啟的 port 有哪些!所以一定得學會才行呀!如果您分別下達:
 
netstat -a  | more
netstat -an | more
 
一定會發現有點奇怪?怎麼有的 port 會以服務名稱(例如上面例子裡的 pop3 ...)有的會以 port 號碼來顯示呢!?嘿嘿!那就是 /etc/services 以及 -n 這個參數的用途啦!您可以發現的是,如果 netstat -a 時,顯示出來的 port 號碼在 /etc/services 存在對應的服務名稱的時候,那麼預設他就會顯示出該服務名稱啦!但是若在 /etc/services 找不到檔案的話,那麼自然就還是以 port 號碼來顯示的!那麼加上了 -n 參數後,不論如何,他都會以 port 及 IP 來顯示啦!
 
另外,那個 -p 也很有用呦!尤其是在一些莫名其妙的連線出現時,可以用 -p 這個參數查到 PID ,然後再以利用 kill 來殺掉他呦!
 
Proto:指的是封包或者是通訊協定啦! tcp , udp 是常見的呦!
Local Address:本地端的 IP 與 Port 號,如果 /etc/services 存在對應服務名稱,就以服務名稱顯示;
Foreign Address :監聽哪一個地區與 port ;
state:狀態列就很多啦!基本的有:
LISTEN :亦即監聽狀態中的 port !
ESTABLISHED:已建立連線的連線情況
TIME_WAIT:該連線在目前已經是等待的狀態了!隨時有可能會斷線呦!
 
善用 netstat 可以查得相當多的網路資訊!尤其在關閉本機的 port 時!
原创粉丝点击