我有一部手机,并且热点已打开。我通过 Linux 笔记本电脑连接到该热点。
现在在我的 Linux 电脑上运行命令
$ netstat -r -n
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.43.1 0.0.0.0 UG 0 0 0 wlp3s0
192.168.43.0 0.0.0.0 255.255.255.0 U 0 0 0 wlp3s0
我的 IP 是 192.168.43.193
$ ipconfig -a
wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.43.193 netmask 255.255.255.0 broadcast 192.168.43.255
inet6 2409:4070:2201:c42b:1a38:21df:c868:7fde prefixlen 64 scopeid 0x0<global>
inet6 fe80::25ac:4aff:2683:9be8 prefixlen 64 scopeid 0x20<link>
ether ac:d1:b8:47:a4:47 txqueuelen 1000 (Ethernet)
RX packets 408640 bytes 476371745 (454.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 287073 bytes 40393931 (38.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
现在如何理解 netstat 输出。
据我理解:
Any ip with `192.168.43.0/255` does not have a gateway or gateway of `0.0.0.0`
Any ip will have a gateway of `192.168.43.1`
Any ip the gateway is 192.168.43.1
我们一次又一次地说这毫无意义Any ip with 192.168.43.0/255 does not have a gateway or gateway of 0.0.0.0
答案1
任何 IP 地址
192.168.43.0/255
“斜线”语法表示网络位数(基于网络掩码),不是起始和结束范围。如果将网络掩码 255.255.255.0 转换为二进制,则会看到它有 24 个“开”位,因此网络应写为。192.168.43.0/24
(也就是说,192.168.43.0/255.255.255.0
大多数人也能理解完整的网络掩码。)
没有网关或网关
0.0.0.0
是的 - 这是一条没有网关的路由,这意味着地址是“on-link”的:在 MAC 层可直接访问。换句话说,这是您的本地子网路由。
尽管缺少G
标志很重要;但旧工具在网关列中仍然显示 0.0.0.0(它们可能什么都不显示)并不重要。
任何 IP 都会有一个网关
192.168.43.1
对,但是除非该IP首先与192.168.43.0/24路由不匹配。
它没有任何意义
确实如此,因为路线是按照特定顺序检查的,并且最具体路由总是获胜。(“最具体”基于网络掩码位,例如 /24 路由胜过 /16 路由,并且所有路由都胜过 0.0.0.0/0 路由。这就是为什么后者被称为“默认路由”——当没有其他路由适合时,它会最后被检查。)
因此,当看到 0.0.0.0/0 时,你可以在脑海中加上“任何 IP与任何其他路线均不匹配有网关 192.168.43.1”。