[請問] netstat -an 結果顯示的格式問題

作者: drkh (eutatosp)   2018-04-06 07:43:43
在 netstat -an 的結果顯示裡, 以下面幾種格式呈現的"address:port"是何意義?
(先不去管 State 的各種狀態)
第一例:
Proto Local Address Foreign Address State
TCP [::]:135 [::]:0
關於此例有兩個問題.
(1) 中括號內有兩個冒號 [::], 是何意義?
(2) [::]: 後面的 port 0, 是何意義?
第二例:
TCP 192.168.0.1:139 0.0.0.0:0
請問 0.0.0.0:0 的 port 0 是何意義?
第三例:
TCP [::1]:1306 [::1]:2869
請問 [::1] 是何意義?
第四例
UDP 0.0.0.0:500 *:*
關於此例有兩個問題.
(1) *:* 是何意義?
(2) 凡是在 Foreign Address 那一欄位出現 *:* 時,
其右側 State 欄位均為空白. 為什麼?
作者: yzfr6 (扮關二哥!)   2018-04-06 08:17:00
0.0.0.0/遮罩 代表本網段的所有節點
作者: Schottky (順風相送)   2018-04-06 09:48:00
你知道 IPv6 嗎?第一和第三例是 IPv6:: 代表 0:0:0:0:0:0:0:0 而 port 0 代表任意 port::1 代表 0:0:0:0:0:0:0:1 也就是 localhost
作者: drkh (eutatosp)   2018-04-06 11:33:00
明白了一件事, :: 表示 1~9 這些數字之前所有的 0.而在 :: 前後加上中括號, 成為 [::] 是 netstat 為了將 ::與 port 前面的 : 區隔開.
作者: Schottky (順風相送)   2018-04-06 11:35:00
https://zh.wikipedia.org/zh-tw/IPv6這邊有關於 IPv6 的詳細說明
作者: drkh (eutatosp)   2018-04-06 11:39:00
多謝!第四例的問題能否也指教一下?關於第四例, 在 Network 板有網友回覆, 原來 UDP 是connectionless, 所以不可能有任何 state. 該欄位也就留空了
作者: Schottky (順風相送)   2018-04-06 12:18:00
UDP 其實還是可以有 connection,只不過意義和 TCP 的connection 不一樣,只是預填目的地 IP 和 port 的性質所以你偶而還是會看見 state 寫 ESTABLISHED比如我現在就有 UDP state 寫 ESTABLISHED 連到 DNS但 netstat 中大部份的 UDP 在 state 那欄還是留白的原因就如你所說,UDP 沒有什麼特別的 state 可以講即使寫 ESTABLISHED 它也只是預填資料,不是真的 state你如果知道什麼是 socket 介面,UDP 可以呼叫 connect()這是沒什麼用的秘技,很多書上根本不會講

Links booklink

Contact Us: admin [ a t ] ucptt.com