我正在尝试为我的 Debian 虚拟机设置静态 IP 地址。在我的/etc/networking/interfaces
文件中,我添加了:
iface ens33 inet static
address 192.168.75.XXX
gateway 192.168.0.1
netmask 255.255.255.0
在/etc/resolv.conf
文件中我添加了nameserver 8.8.8.8
。我认为我的问题是,除非我启用了该服务,否则在运行或NetworkManager
时不会显示任何内容。我尝试通过运行以下命令向路由表添加路由:。这将填充路由表,现在该表如下所示:route
ip route show
ip route add 192.168.75.0/24 via 192.168.75.XXX (my static ip) dev ens33
目标网关 Genmask 标志 指标参考使用 Iface 192.168.75.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
当我运行 ping 时,仍然出现相同的错误:“目标主机无法访问”。我该如何修复此问题?
答案1
在 中/etc/networking/interfaces
,在每个部分中,您设置一个网络掩码来定义您的机器所属的子网。这里:255.255.255.0 表示 /24。换句话说,您子网上的地址从 192.168.75.1 到 192.168.75.254。
该gateway
行指定了要访问该子网外的计算机必须使用的路由器地址。显然,路由器必须是位于同一子网的计算机,即 IP 地址在 192.168.75.1 到 192.168.75.254 之间的计算机。
您已指定gateway 192.168.0.1
。这意味着路由器位于子网之外。这就是您无法 ping 子网 192.168.75.0/24 之外的任何机器的原因(“目标主机无法访问”)。
您正在使用虚拟机。您的路由器可能是您的主机的 IP 地址。这取决于您的虚拟机的配置。
最后一件事:
ip route add 192.168.75.0/24 via 192.168.75.XXX (my static ip) dev ens33
是错误的。如果您想手动声明路由器(而不是文件interfaces
),请使用以下命令:
ip route add default via 192.168.75.YYY (the IP of your router) dev ens33
(默认表示“任何没有已知路由的地址”)
答案2
当您的机器发出的 ping 数据包无法找到目标机器时,目标主机不可达是一种常见的 ICMP 错误消息。
看起来您的机器上的某些设置阻止了 ping 数据包发现到目标 IP 的路由。
好吧,我看你通过将网络类型改为桥接模式解决了这个问题。所以我觉得我最好写一个通用答案,因为你的问题已经解决了。
收到 ping 回复“目标主机无法访问”的常见原因是防火墙的保护设置过高。除非您运行的是桥接防火墙,否则简单的配置错误就可能阻碍 ping 数据包正常工作。
您可以通过禁用防火墙并再次 ping 目标 IP 来验证。
第二个常见原因是网络连接松动。来自这个来源。
我们可以解决这个问题,方法是断开调制解调器、路由器和 PC 上的电源线和以太网线。重新连接它们并打开设备电源。这称为电源循环。