更准确地说,运行 netstat -r 后,我得到了以下几行:
Destination Gateway Genmask Flags MSS Window irtt Iface
default 199.170.12.1 0.0.0.0 UG 0 0 0 eth0
199.170.12.0 * 255.255.254.0 U 0 0 0 eth0
我运行它的原因是我的以太网连接在 Linux 中无法工作,即使它可以在 Windows 上运行(安装在同一台机器上)。我使用的是动态 IP,上次连接工作正常,我没有做任何更改。我首先检查了 ifconfig,一切正常。我检查了 resolv.conf,它指向名称服务器 127.0.1.1(据我所知,这也是正常的)。
我发现唯一可疑的是网关 IP(它可能是正常的,但说实话我以前没有尝试过这个命令,我不知道 * 是什么意思)。
然后连接就修好了(一切都是自动修复的,我什么都没做)。但我还是想问一下。
答案1
这意味着它不需要网关即可到达该子网。这是一个本地子网,因此它不需要下一跳 IP。使用netstat -r
,似乎具有更好的上下文友好性。 0.0.0.0
目标部分中的 转换为default
,而网关部分中的 转换为*
。
rj@Latitude-E6410:~$ netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0
rj@Latitude-E6410:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
答案2
在Netstat中,-r
交换机显示内核路由表。
默认情况下,netstat 会尝试通过执行反向 DNS 查找将 IP 解析为其名称。要使其正常工作,(假设 BIND 为 DNS 服务器)应该有一个包含 PTR 资源记录的反向区域数据文件,该文件将 IP 地址映射到名称。通常,家庭网络(以及许多生产网络)中不会配置此功能。
当 netstat 没有从 DNS 服务器获得任何响应,并且超出了默认的超时值(您可以通过timeout:n
在/etc/resolv.conf
where n 中指定指令来设置一个,以秒为单位)时,*
会出现在网络关键字任何是合适的,相当于0.0.0.0
。 的解释*
取决于具体情况。 就你的情况而言,就像 Ryan Foley 所说的那样,要访问网络,192.168.1.0/24
不需要网关,因为那是你的本地网络。
您可以通过阅读来了解如何解释 netstat 输出及其用法这个博客。该-n
开关禁用反向 DNS 查找,从而使 netstat 速度更快。
以下是您遇到的情况可能发生的情况:
客户端需要从 DHCP 服务器获取 IP。机器启动时,DHCP 协议启动。此对话包括 DHCP DORA(发现、提供、请求、确认)数据包。其中,DHCP 发现是来自机器的广播。根据网络中节点的数量(同一冲突域),DHCP 服务器需要一段时间才能获取此发现数据包并使用包含 IP 的 DHCP 提供进行回复。
接下来是
arp resolution
。除非建立了 ARP 表,否则拥有 IP 地址并不能使机器能够通信。这具有 IP 到 MAC 地址的映射。MAC 地址是形成数据包并在物理线路上发送数据包的必要条件(ether
)。再次学习本地网络中机器的 MAC 地址涉及 ARP 广播(请求)和单播(回复)。这增加了机器准备好通信的时间。延迟的原因包括过多的数据包冲突、TCP 参数协商(如窗口大小、计时器初始化、队列长度等)、目的地的数据包缓冲区已满、交换延迟等等。