![Linux - 2 个虚拟机 - 一个互联网访问](https://linux22.com/image/1553128/Linux%20-%202%20%E4%B8%AA%E8%99%9A%E6%8B%9F%E6%9C%BA%20-%20%E4%B8%80%E4%B8%AA%E4%BA%92%E8%81%94%E7%BD%91%E8%AE%BF%E9%97%AE.png)
我目前正在学习 Linux 路由。我正在运行 CentOS 7。
我想从具有内部网络适配器的 VM 访问互联网,并使用具有内部网络适配器和 NAT 适配器的第二个 VM 作为网关。
在这种情况下我应该如何设置路线?
VM1
虚拟机
enp0s3 - inet 10.0.2.15 netmask 255.255.255.0 - NAT enp0s8 - inet 198.162.0.1 netmask 255.255.255.0 - internal network
路线
default via 10.0.2.2 dev enp0s3 proto static metric 100 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 100 198.162.0.0/24 dev enp0s8 proto kernel scope link src 198.162.0.1 metric 100
VM2
VM 仅限内部网络
inet 198.162.0.2 netmask 255.255.255.0 - internal network
- 路线:目的地 198.162.0.0 网关。0.0.0.0;
从 VM1 ping 到 VM2 正常;从 VM1 ping 到 8.8.8.8(外部世界)也正常;
我无法通过 198.162.0.1 添加默认网关,它总是显示错误(错误:“to”重复,或“gw”是垃圾)
我也想过是否可以这样做,因为它只是内部网络
答案1
到目前为止看起来不错,但 2. VM(仅内部网络)还需要一个192.168.0.0/24
路由(通常在添加 IP 地址时会自动添加)和一个default via 192.168.0.1/24
到 1. VM 的默认路由(几乎总是会自动添加)。否则 2. VM 将不知道将发往“互联网”的数据包发送到哪里。
故障排除:
用于ping
查看虚拟机是否可以相互通信,虚拟机 1 是否可以与互联网通信(例如,ping 8.8.8.8
与 Google DNS 服务器通信),以及最后虚拟机 2 是否可以与互联网通信(通过虚拟机 1)。
用于ip route get <ip_addr>
验证您的想法的路由解析方式是否与路由表相符。