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

看板ask作者 (eutatosp)時間7年前 (2018/04/06 07:43), 7年前編輯推噓0(0023)
留言23則, 3人參與, 7年前最新討論串1/1
在 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 欄位均為空白. 為什麼? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.102.149 ※ 文章網址: https://www.ptt.cc/bbs/ask/M.1522971827.A.850.htmldrkh:轉錄至看板 Network 04/06 07:45 ※ 編輯: drkh (36.227.102.149), 04/06/2018 07:49:47

04/06 08:17, 7年前 , 1F
0.0.0.0/遮罩 代表本網段的所有節點
04/06 08:17, 1F

04/06 09:48, 7年前 , 2F
你知道 IPv6 嗎?第一和第三例是 IPv6
04/06 09:48, 2F

04/06 09:51, 7年前 , 3F
:: 代表 0:0:0:0:0:0:0:0 而 port 0 代表任意 port
04/06 09:51, 3F

04/06 09:52, 7年前 , 4F
::1 代表 0:0:0:0:0:0:0:1 也就是 localhost
04/06 09:52, 4F

04/06 11:33, 7年前 , 5F
明白了一件事, :: 表示 1~9 這些數字之前所有的 0.
04/06 11:33, 5F

04/06 11:34, 7年前 , 6F
而在 :: 前後加上中括號, 成為 [::] 是 netstat 為了將 ::
04/06 11:34, 6F

04/06 11:35, 7年前 , 7F
與 port 前面的 : 區隔開.
04/06 11:35, 7F

04/06 11:35, 7年前 , 8F

04/06 11:36, 7年前 , 9F
這邊有關於 IPv6 的詳細說明
04/06 11:36, 9F
※ 編輯: drkh (36.227.102.149), 04/06/2018 11:39:01

04/06 11:39, 7年前 , 10F
多謝!
04/06 11:39, 10F

04/06 11:40, 7年前 , 11F
第四例的問題能否也指教一下?
04/06 11:40, 11F

04/06 11:49, 7年前 , 12F
04/06 11:49, 12F

04/06 11:50, 7年前 , 13F
關於第四例, 在 Network 板有網友回覆, 原來 UDP 是
04/06 11:50, 13F

04/06 11:51, 7年前 , 14F
connectionless, 所以不可能有任何 state. 該欄位也就留空了
04/06 11:51, 14F

04/06 12:18, 7年前 , 15F
UDP 其實還是可以有 connection,只不過意義和 TCP 的
04/06 12:18, 15F

04/06 12:19, 7年前 , 16F
connection 不一樣,只是預填目的地 IP 和 port 的性質
04/06 12:19, 16F

04/06 12:20, 7年前 , 17F
所以你偶而還是會看見 state 寫 ESTABLISHED
04/06 12:20, 17F

04/06 12:20, 7年前 , 18F
比如我現在就有 UDP state 寫 ESTABLISHED 連到 DNS
04/06 12:20, 18F

04/06 12:21, 7年前 , 19F
但 netstat 中大部份的 UDP 在 state 那欄還是留白的
04/06 12:21, 19F

04/06 12:22, 7年前 , 20F
原因就如你所說,UDP 沒有什麼特別的 state 可以講
04/06 12:22, 20F

04/06 12:23, 7年前 , 21F
即使寫 ESTABLISHED 它也只是預填資料,不是真的 state
04/06 12:23, 21F

04/06 12:24, 7年前 , 22F
你如果知道什麼是 socket 介面,UDP 可以呼叫 connect()
04/06 12:24, 22F

04/06 12:24, 7年前 , 23F
這是沒什麼用的秘技,很多書上根本不會講
04/06 12:24, 23F
文章代碼(AID): #1QnhIpXG (ask)