netstat命令的作用
netstat命令的功能是顯示網絡連接、路由表和網絡接口信息,可以讓用戶得知有哪些網絡連接正在運作。使用時如果不帶參數,netstat顯示活動的 TCP 連接。
該命令的一般格式為 :
netstat [-a][-e][-n][-o][-p Protocol][-r][-s][Interval][1]
列標題:
Name接口的名字
Mtu 接口的最大傳輸單位
Net/Dest 接口所在的網絡
Address 接口的IP地址
Ipkts 接收到的數據包數目
Ierrs 接收到時已損壞的數據包數目
Opkts 發送的數據包數目
Oeers 發送時已損壞的數據包數目
Collisions 由這個接口所記錄的網絡沖突數目
擴展資料
Netstat是控制臺命令,是一個監控TCP/IP網絡的非常有用的工具,它可以顯示路由表、實際的網絡連接以及每一個網絡接口設備的狀態信息。
Netstat用于顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用于檢驗本機各端口的網絡連接情況。
參考資料來源:百度百科-Netstat
netstat命令的作用
netstat命令的作用是顯示各種網絡相關信息。
netstat命令的功能是顯示網絡連接、路由表和網絡接口信息,可以讓用戶得知有哪些網絡連接正在運作。使用時如果不帶參數,netstat顯示活動的 TCP 連接。
netstat命令的工作原理
從整體上看,netstat的輸出結果可以分為兩個部分:一個是Active Internet connections,稱為有源TCP連接,其中"Recv-Q"和"Send-Q"指%0A的是接收隊列和發送隊列。這些數字一般都應該是0。如果不是則表示軟件包正在隊列中堆積。這種情況只能在非常少的情況見到。
另一個是Active UNIX domain sockets,稱為有源Unix域套接口(和網絡套接字一樣,但是只能用于本機通信,性能可以提高一倍)。
如何使用netstat
netstat命令是一個監控TCP/IP網絡的非常有用的工具,它可以顯示路由表、實際的網絡連接以及每一個網絡接口設備的狀態信息,在計算機上執行netstat后,其輸出結果為:
Active Internet connections (w/o rvers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED
tcp 296 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED
tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED
tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED
tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE
Active UNIX domain sockets (w/o rvers)
Proto RefCnt Flags Type State I-Node Path
unix 1 [ ] STREAM CONNECTED 16178 @000000dd
unix 1 [ ] STREAM CONNECTED 16176 @000000dc
unix 9 [ ] DGRAM 5292 /dev/log
unix 1 [ ] STREAM CONNECTED 16182 @000000df
從整體上看,netstat的輸出結果可以分為兩個部分,一個是Active Internet connections,稱為有源TCP連接,另一個是Active UNIX domain sockets,稱為有源Unix域套接口。在上面的輸出結果中,第一部分有5個輸出結果,顯示有源TCP連接的情況,而第二部分的輸出結果顯示的是Unix域套接口的連接情況。Proto顯示連接使用的協議;RefCnt表示連接到本套接口上的進程號;Types顯示套接口的類型;State顯示套接口當前的狀態;Path表示連接到套接口的其它進程使用的路徑名。
事實上,netstat是若干個工具的匯總。
◆ 顯示路由表
在隨- r標記一起調用n e t s t a t時,將顯示內核路由表,就像我們利用r o u t e命令一樣。產生的輸出如下:
[root@machine1 /]$ netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
210.34.6.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 210.34.6.2 0.0.0.0 UG 0 0 0 eth0
- n 選項令netstat以點分四段式的形式輸出IP地址,而不是象征性的主機名和網絡名。如果想避免通過網絡查找地址(比如避開DNS或NIS服務器),這一點是特別有用的。
netstat輸出結果中,第二列展示的是路由條目所指的網關,如果沒有使用網關,就會出現一個星號(*)或者0.0.0.0;第三列展示路由的概述,在為具體的I P地址找出最恰當的路由時,內核將查看路由表內的所有條目,在對找到的路由與目標路由比較之前,將對I P地址和genmask進行按位“與”計算;第四列顯示了不同的標記,這些標記的說明如下:
■ G 路由將采用網關。
■ U 準備使用的接口處于“活動”狀態。
■ H 通過該路由,只能抵達一臺主機。
■ D 如果路由表的條目是由ICMP重定向消息生成的,就會設置這個標記。
■ M 如果路由表條目已被ICMP重定向消息修改,就會設置這個標記。
netstat輸出結果的Iface顯示該連接所用的物理網卡,如eth0表示用第一張,eth1表示用第二張。
◆ 顯示接口特性
在隨- i標記一起調用時, netstat將顯示網絡接口的當前配置特性。除此以外,如果調用時還帶上-a選項,它還將輸出內核中所有接口,并不只是當前配置的接口。netstat-i的輸出結果是這樣的:
[root@machine1 /]$ 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 787165 0 0 1 51655 0 0 0 BRU
eth1 1500 0 520811 0 0 0 1986 0 0 0 BRU
lo 3924 0 1943 0 0 0 43 0 0 0 LRU
MTU和Met字段表示的是接口的MTU和度量值值;RX和TX這兩列表示的是已經準確無誤地收發了多少數據包( RX - OK / TX - OK)、產生了多少錯誤( RX-ERR/TX-ERR)、丟棄了多少包(RX-DRP/TX-DRP),由于誤差而遺失了多少包(RX-OVR/TX-OVR);最后一列展示的是為這個接口設置的標記,在利用ifconfig顯示接口配置時,這些標記都采用一個字母。它們的說明如下:
■ B 已經設置了一個廣播地址。
■ L 該接口是一個回送設備。
■ M 接收所有數據包(混亂模式)。
■ N 避免跟蹤。
■ O 在該接口上,禁用A R P。
■ P 這是一個點到點鏈接。
■ R 接口正在運行。
■ U 接口處于“活動”狀態。
◆ 顯示鏈接
netstat支持用于顯示活動或被動套接字的選項集。選項- t、- u、- w和- x分別表示TCP、UDP、RAW和UNIX套接字連接。如果你另外還提供了一個- a標記,還會顯示出等待連接(也就是說處于監聽模式)的套接字。這樣就可以得到一份服務器清單,當前所有運行于系統中的所有服務器都會列入其中。
調用netstat -ta時,輸出結果如下:
[root@machine1 /]$ netstat -ta
Active Internet connections (rvers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED
tcp 0 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED
tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED
tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED
tcp 0 0 *:9001 *:* LISTEN
tcp 0 0 *:6000 *:* LISTEN
tcp 0 0 *:socks *:* LISTEN
tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE
上面的輸出表明部分服務器處于等待接入連接狀態。利用- a選項的話,netstat還會顯示出所有的套接字。注意根據端口號,可以判斷出一條連接是否是外出連接。對呼叫方主機來說,列出的端口號應該一直是一個整數,而對眾所周知服務(well known rvice)端口正在使用中的被呼叫方來說,netstat采用的則是取自/etc/rvices文件的象征性服務名。
netstat命令詳解 netstat命令怎樣使用 如何關閉time
Linux netstat命令:用于顯示網絡狀態。
利用netstat指令得知整個Linux系統的網絡情況。
語法:
netstat [-acCeFghilMnNoprstuvVwx][-A<網絡類型>][--ip]
參數說明:
-a或--all:顯示所有連線中的Socket。
-A<網絡類型>或--<網絡類型>:列出該網絡類型連線中的相關地址。
-c或--continuous:持續列出網絡狀態。
-C或--cache:顯示路由器配置的快取信息。
-e或--extend:顯示網絡其他相關信息。
-F或--fib:顯示FIB。
-g或--groups:顯示多重廣播功能群組組員名單。
-h或--help:在線幫助。
實例:
顯示詳細的網絡狀況:
# netstat -a
顯示當前戶籍UDP連接狀況:
# netstat -nu
顯示UDP端口號的使用情況:
# netstat -apu
顯示網卡列表:
# netstat -i
解決系統存在大量TIME_WAIT狀態的連接:
vim /etc/sysctl.conf
編輯文件,加入以下內容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reu = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
然后執行 /sbin/sysctl -p 讓參數生效。
擴展資料:
net.ipv4.tcp_syncookies = 1:
表示開啟SYN cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防范少量SYN攻擊,默認為0,表示關閉。
net.ipv4.tcp_tw_reu = 1:
表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認為0,表示關閉。
net.ipv4.tcp_tw_recycle = 1:
表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉。
net.ipv4.tcp_fin_timeout:
修改系統默認的 TIMEOUT 時間。
TIME_WAIT狀態的意義:
客戶端與服務器端建立TCP/IP連接后關閉SOCKET后,服務器端連接的端口狀態為TIME_WAIT。
netstat網絡命令的使用方法
netstat命令的功能是顯示網絡連接、路由表和網絡接口信息,可以讓用戶得知目前都有哪些網絡連接正在運作。
該命令的一般格式為:
netstat
[選項]
命令中各選項的含義如下:
-a
顯示所有socket,包括正在監聽的。
-c
每隔1秒就重新顯示一遍,直到用戶中斷它。
-i
顯示所有網絡接口的信息,格式同“ifconfig
-e”。
-n
以網絡IP地址代替名稱,顯示出網絡連接情形。
-r
顯示核心路由表,格式同“route
-e”。
-t
顯示TCP協議的連接情況。
-u
顯示UDP協議的連接情況。
-v
顯示正在進行的工作。
[例]在本地機上使用netstat命令。
$
netstat
Active
Internet
connections
(w/o
rvers)
Proto
Recv-Q
Send-Q
Local
Address
Foreign
Address
State
Active
UNIX
domain
sockets
(w/o
rvers)
Proto
RefCnt
Flags
Type
State
I-Node
Path
unix
1
[
]
STREAM
CONNECTED
270
@00000008
unix
1
[
]
STREAM
CONNECTED
150
@00000002
unix
1
[
]
STREAM
CONNECTED
104
@00000001
unix
1
[
]
STREAM
CONNECTED
222
@00000004
unix
1
[
]
STREAM
CONNECTED
171
@00000003
unix
1
[
]
STREAM
CONNECTED
271
/dev/log
unix
1
[
]
STREAM
CONNECTED
225
/dev/log
unix
1
[
]
STREAM
CONNECTED
223
/dev/log
unix
1
[
]
STREAM
CONNECTED
203
/dev/log
unix
1
[
]
STREAM
CONNECTED
105
/dev/log
netstat的用法
netstat命令是一個觀察網絡連接狀態的實用工具。 它能檢驗IP的當前連接狀態,在斷定你的基本級通信正在進行后,就要驗證系統上的服務。這個服務包括檢查正在收聽輸入的通信量和/或驗證你正在創建一個與遠程站點的會話,它可以很輕松地做到這一點。網上也可以看到很多如X-netstat之類的工具,是WIN界面的,更加直觀而已,并沒有多什么功能如果要了解某城市信息網絡中心節點的出口地址、網關地址、主機地址信息,可使用netstat命令來查詢。首先“開始”——"運行"——輸入“netstat”, 可看到用戶主機采用的協議類型、當前主機與遠端相連主機的IP地址及其連接狀態鍵入netstat/?查看netatat命令的用法及參數。
—R顯示本機路由內容
——S每個協議的使用狀態
——N以數字表格形式顯示地址和端口
這個命令的具體用法如下:
NETSTAT 〔-a〕 〔-e〕 〔-n〕 〔-s〕 〔-p proto〕 〔-r〕 〔interval〕
-A 顯示任何關聯的協議控制塊的地址。主要用于調試
-a 顯示所有套接字的狀態。在一般情況下不顯示與服務器進程相關聯的套接字
-i 顯示自動配置接口的狀態。那些在系統初始引導后配置的接口狀態不在輸出之列
-m 打印網絡存儲器的使用情況
-n 打印實際地址,而不是對地址的解釋或者顯示主機,網絡名之類的符號
-r 打印路由選擇表
-f address -family對于給出名字的地址簇打印統計數字和控制塊信息。到目前為止,唯一支持的地址簇是inet
-I interface 只打印給出名字的接口狀態
-p protocol-name 只打印給出名字的協議的統計數字和協議控制塊信息
-s 打印每個協議的統計數字
-t 在輸出顯示中用時間信息代替隊列長度信息。