我们如何更改 netstat -rn 输出中的网关

我们如何更改 netstat -rn 输出中的网关
root@prateek-desktop:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1

我的网络中的无线路由器的静态 IP 地址为 192.168.0.80,子网掩码为 255.255.255.0,默认网关为 192.168.0.81。我的电脑的 IP 地址为 192.168.0.81(与路由器的网关相同)。我几乎没有其他设备,例如通过 DHCP 连接连接到无线路由器的智能手机和笔记本电脑。现在,当我尝试从 PC ping 路由器静态 IP 地址 (192.168.0.80) 时,它没有任何响应。没有显示任何消息,但对于其他地址,它表示目标主机无法访问。

原因是什么以及如何排除故障?请帮助我此时陷入了我的硕士论文。

答案1

由于我们在这里苦苦挣扎,我认为熟悉一些更直接的技巧会让您受益匪浅。

ip route命令可以临时编辑路由。 ip route显示现有路线,它是更新的等价物netstat -rnip route add default via $ROUTER_IP将添加使用 $ROUTER_IP 的默认路由。 (即将其替换为您显然知道路由器拥有的 IP,无论是什么)。要再次删除它,请使用ip route del default via $ROUTER_IP.请注意,这default与写作相同0.0.0.0/0


请注意,您需要断开网络并重新连接到网络,然后网络设置窗口中的“网关”或任何其他设置才会生效。

我尝试断开连接并重新连接。 netstat -rn 与上面相同。

谢谢。我不明白这是如何发生的 - 即它向我暗示要么是一个非常烦人的错误,要么你正在做一些稍微不同的事情,比如编辑一个实际上绑定到eth0而不是eth1.这可以通过详尽的屏幕截图来显示。 (仅供记录,您已经提供了一些不太正确或矛盾的信息)。

我可以建议查看nmcli connectionnmcli connection show id NAME。 NAME 取自第一个命令的 NAME 列。最后一个命令的输出将相当长。

我还要确保您已勾选“可供其他用户使用”,然后我就可以查看由 NetworkManager 编写的文本配置文件。这不像 一样长nmcli connection show,因为它不包含不必要的默认值。在 Ubuntu 上,配置文件可能位于/etc/network/interfaces/etc/network/interfaces.d/etc/NetworkManager/system-connections.

当我尝试从 PC ping 路由器静态 IP 地址 (192.168.0.80) 时,它没有任何响应。没有显示任何消息,但对于其他地址,它表示目标主机无法访问。

这既不好也不坏。某些设备会阻止 ICMP ping。事实确实如此不是说“目标主机无法访问”,或者任何其他消息,实际上意味着该IP地址是可访问的!正如我在我的文章中提到的之前的回答,你可以这样确认:

$ ip -4 neigh
172.16.8.1 dev wlp2s0 lladdr 74:44:01:86:42:d6 REACHABLE

还会有一些条目显示 INCOMPLETE 或其他内容,来自您尝试 ping 的任何不存在的 IP 地址。


我已将我的 PC 网关指定为 192.168.0.80

是的,有些东西不起作用。事实上,你正在展示根本就是“默认网关”。您只有本地网络的自动路由192.168.0.*。 (这就是 192.168.0.0 与面具255.255.255.0 表示)。您将希望保留本地网络的这条路由,并为您的“默认网关”添加第二条路由。

我很遗憾地告诉您,您在 NetworkManager 图形界面中单击的“应用”按钮具有误导性。 (或者您用来关闭 NetworkManager 设置窗口的按钮上显示的任何内容)。与 GNOME 中的大多数其他“应用”按钮不同,该按钮不会立即生效。它仅保存设置以供将来使用。

相关内容