这是我当前的路由表:
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 enp0s3
10.0.2.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
我可以 ping 主机 192.168.0.2:
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=63 time=7.26 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=63 time=2.33 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=63 time=1.02 ms
但是,如果我为该主机添加特定路由,它就会变得无法访问:
sudo ip route add 192.168.0.2/32 dev enp0s3`
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 enp0s3
10.0.2.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 enp0s3
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
From 10.0.2.15 icmp_seq=1 Destination Host Unreachable
From 10.0.2.15 icmp_seq=2 Destination Host Unreachable
From 10.0.2.15 icmp_seq=3 Destination Host Unreachable
我不明白为什么。我正在 VirtualBox 上运行 Linux Ubuntu 17.10,网络配置为 NAT。主机运行 Windows 10。
答案1
唯一合理的方法是你的网络配置如下:
[Physical Device (192.168.0.2]----[HUB]-----[Physical Host(192.168.0.1)]-----[Virtual Machine (10.0.2.x)]
您的默认路线...
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 enp0s3
...告诉计算机所有不发往直连(10.0.2.x)网络的流量都应发送到主机名为“gateway”的网关设备。
这很有效。
当您添加...时它将停止工作。
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 enp0s3
...因为您刚刚告诉计算机将所有发往 IP 地址 192.168.0.2 的流量发送到具有0.0.0.0
无效 IP 地址的网关设备。
网关gateway
不是0.0.0.0
。