目标:理解 NAT 模式下,虚拟机如何通过宿主机连接到外部网络。
1. NAT 下虚拟机网络配置
在 VMware Fusion 中,虚拟机的网络接口配置为 NAT(Network Address Translation)。此时,虚拟机并不直接访问外部网络,而是通过宿主机共享网络连接。
2. 路由表查看
在虚拟机内,我们首先查看虚拟机的路由表,确保网络请求通过正确的网关进行转发。虚拟机路由表可以通过以下命令查看:
bash
ip route
输出示例:
bash
default via 192.168.1.1 dev eth0
此时,我们看到默认路由 default via 192.168.1.1,意味着虚拟机将网络请求发送到 192.168.1.1,这正是宿主机的 IP 地址。
3. NAT 转换与 SNAT(源地址转换)
通过宿主机的 SNAT(Source Network Address Translation)功能,虚拟机的私有 IP 地址(例如 192.168.1.100)会被转换为宿主机的公共 IP 地址,进而向外界发送请求。
- 宿主机配置:宿主机启用了 SNAT,所有来自虚拟机的网络流量被重写成宿主机的 IP 地址,外部网络只能看到宿主机的 IP 地址。
4. 查看宿主机的 iptables 配置
bash
sudo iptables -t nat -L -n -v
输出示例:
bash
Chain POSTROUTING (policy ACCEPT 123 packets, 4567 bytes)
SNAT all -- 192.168.1.0/24 anywhere to:192.168.1.1
这说明宿主机通过 SNAT 将虚拟机的 IP 地址转换为宿主机的 IP 地址,从而使虚拟机可以访问外部网络。