[请问] 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