netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
netstat: 打印網絡連接,路由表,接口統計信息,多播成員
選項與參數:
netstat [address_family_options] [--tcp|-t] [--udp|-u] [--raw|-w]
[--listening|-l] [--all|-a] [--numeric|-n] [--numeric-hosts]
[--numeric-ports] [--numeric-users] [--symbolic|-N]
[--extend|-e[--extend|-e]] [--timers|-o] [--program|-p] [--ver‐
bose|-v] [--continuous|-c]
netstat {--route|-r} [address_family_options]
[--extend|-e[--extend|-e]] [--verbose|-v] [--numeric|-n]
[--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c]
netstat {--interfaces|-i} [--all|-a] [--extend|-e[--extend|-e]]
[--verbose|-v] [--program|-p] [--numeric|-n] [--numeric-hosts]
[--numeric-ports] [--numeric-users] [--continuous|-c]
netstat {--groups|-g} [--numeric|-n] [--numeric-hosts]
[--numeric-ports] [--numeric-users] [--continuous|-c]
netstat {--masquerade|-M} [--extend|-e] [--numeric|-n]
[--numeric-hosts] [--numeric-ports] [--numeric-users] [--continuous|-c]
netstat {--statistics|-s} [--tcp|-t] [--udp|-u] [--raw|-w]
netstat {--version|-V}
netstat {--help|-h}
address_family_options:
[-4] [-6] [--protocol={inet,unix,ipx,ax25,netrom,ddp}[,...]]
[--unix|-x] [--inet|--ip] [--ax25] [--ipx] [--netrom] [--ddp]
與路由 (route) 有關的參數說明:
-r : 列出路由表(route table),功能如同 route 這個指令[route -e];
-n : 不使用主機名與服務名稱,使用 IP 與 port number ,如同 route -n
與網絡接口有關的參數:
-a : 列出所有的聯機狀態,包括 tcp/udp/unix socket 等;
-t : 僅列出 TCP 協議的連接情況;
-u : 僅列出 UDP 協議的情況;
-l : 僅列出有在 Listen (監聽) 的服務之網絡狀態;
-p : 列出建立相關連接的 PID 與 Program 名;
-c : 可以設定幾秒鐘後自動更新一次,例如 -c 5 每五秒更新一次網絡狀態的顯示;
-i : 顯示所有網絡接口的信息,格式“netstat -i”。
其他選項:
-v : 顯示正在進行的工作。
-b : 顯示在創建每個連接或偵聽端口時涉及的可執行程序。
-e : 顯示以太網統計。此選項可以與 -s 選項結合使用。
-f : 顯示外部地址的完全限定域名(FQDN)。
-o : 顯示與每個連接相關的所屬進程ID。
-s : 顯示每個協議的統計。
-x : 顯示 NetworkDirect 連接、偵聽器和共享端點。
-y : 顯示所有連接的 TCP 連接模板。無法與其他選項結合使用。
輸出:
Proto : 協議
Recv-Q : 非由用戶程序連接所複製而來的總 bytes 數[不大理解]
Send-Q : 來自遠程主機不包含ack標誌的總bytes數.[意指主動聯機 SYN 或其他標誌的封包所佔的 bytes 數]
Local Address : 本地端的地址,可以是 IP (-n 參數存在時), 也可以是完整的主機名。
使用的格是就是『 IP:port 』只是 IP 的格式有 IPv4 及 IPv6 的差異。
Foreign Address : 遠程的主機 IP 與 port number
State : 狀態.
ESTABLISHED : 已建立連接.
SYN_SENT : 發送一個建立連接請求.
SYN_RECV : 從網絡中接收到一個連接請求
FIN_WAIT1 : socket已經關閉(closed),連接正在關閉(shutting down).
FIN_WAIT2: 連接已經關閉(closed),socket 等待來自遠程的關閉[確認包](shutdonw)
TIME_WAIT: 連接已經斷開.但socket還在網絡上等待結束.[主動關閉連接的一方,會在發送最後一個ack後進入TIME_WAIT狀態(在四次握手中)]
CLOSE : socket已經不在使用了.
CLOSE_WAIT : 被動關閉時,遠端已經關閉連接(發送來了FIN),本端socket還未關閉(還沒有發送FIN出去);
[如果出現大量close_wait的現象,主要原因是某種情況下對方關閉了socket鏈接,但是我方忙與讀或者寫,
沒有關閉連接。代碼需要判斷socket,一旦讀到0,如果不是AGAIN,就斷開連接。]
LAST_ACK : 遠端已經關閉(本端接收到遠端的FIN),本端也關閉(發送了FIN),正在等待遠端發來ACK.
LISTEN : 正在監聽新來的連接(incoming connections).通常用在服務的監聽 port !可使用『 -l 』參數查閱
CLOSING : 兩端socket都關閉了,但是數據還沒有全部發送完.
UNKNOWN : socket的狀態是未知的(unknown)
ip路由表相關輸出:
Destination : 目的ip地址
Gateway : 網關
Genmask : 子網掩碼
Flags : 標誌.
■ G 路由將採用網關。
■ U 準備使用的接口處於“活動”狀態。
■ H 通過該路由,只能抵達一臺主機。
■ D 如果路由表的條目是由ICMP重定向消息生成的,就會設置這個標記。
■ M 如果路由表條目已被ICMP重定向消息修改,就會設置這個標記。
MSS : Maximum Segment Size, 最大報文長度
Window : ?
irtt : ?
Iface : 接口名稱
一些netstat命令的使用
鳥哥私房菜中的相關內容
http://vbird.dic.ksu.edu.tw/linux_server/0140networkcommand_2.php#netstat