如何将两台虚拟机进行搭桥
虚拟机网络搭桥配置指南
要实现两台虚拟机之间的网络互通("搭桥"),需要根据您的虚拟化平台选择合适的网络模式。以下是主流虚拟化软件的配置方法:
一、VMware 虚拟机互通配置
方案 1:使用桥接模式(推荐)
桥接模式允许虚拟机直接连接到物理网络,两台虚拟机将获得与宿主机同一网段的 IP 地址。
-
配置步骤:
- 打开虚拟机设置 → 网络适配器 → 选择 桥接模式。
- 启动两台虚拟机,通过 DHCP 获取 IP 地址或手动配置同一网段 IP。
- 示例:
- 宿主机 IP:
192.168.1.100
- 虚拟机 1 IP:
192.168.1.101
- 虚拟机 2 IP:
192.168.1.102
- 子网掩码:
255.255.255.0
- 网关:
192.168.1.1
- 宿主机 IP:
-
验证连通性:
bash
# 在虚拟机1上ping虚拟机2 ping 192.168.1.102# 在虚拟机2上ping虚拟机1 ping 192.168.1.101
方案 2:使用仅主机模式(Host-Only)
仅主机模式创建一个独立的网络,只有宿主机和虚拟机可以通信。
-
配置步骤:
- 打开 VMware Network Editor → 添加 VMnet1 (Host-Only) 网络。
- 虚拟机设置 → 网络适配器 → 选择 仅主机模式。
- 确保两台虚拟机使用同一 VMnet(如 VMnet1)。
- 手动配置 IP 地址(例如:
192.168.56.x
)。
-
验证连通性:
bash
# 在虚拟机1上ping虚拟机2 ping 192.168.56.102
二、VirtualBox 虚拟机互通配置
方案 1:使用内部网络
内部网络创建一个隔离的网络,只有同一内部网络的虚拟机可以通信。
-
配置步骤:
- 打开虚拟机设置 → 网络 → 网卡 1 → 连接方式选择 内部网络,名称设为
intnet
。 - 对另一台虚拟机执行相同配置。
- 手动配置 IP 地址(例如:
192.168.10.x
)。
- 打开虚拟机设置 → 网络 → 网卡 1 → 连接方式选择 内部网络,名称设为
-
验证连通性:
bash
# 在虚拟机1上 ip addr add 192.168.10.101/24 dev eth0 ip link set eth0 up# 在虚拟机2上 ip addr add 192.168.10.102/24 dev eth0 ip link set eth0 up# 互相ping测试 ping 192.168.10.102
方案 2:使用桥接模式
与 VMware 类似,桥接模式使虚拟机直接接入物理网络。
- 配置步骤:
- 虚拟机设置 → 网络 → 网卡 1 → 连接方式选择 桥接网卡。
- 选择物理网卡(如以太网 / WiFi)。
- 启动虚拟机,通过 DHCP 获取 IP 或手动配置。
三、高级配置:自定义路由与 NAT
场景:仅主机模式 + 宿主机转发
如果需要在仅主机网络中让虚拟机访问外网,可以配置宿主机作为路由器:
-
启用宿主机 IP 转发:
- Windows:
powershell
# 以管理员身份运行 Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -Name IPEnableRouter -Value 1
- Linux:
bash
echo 1 > /proc/sys/net/ipv4/ip_forward # 永久生效:编辑 /etc/sysctl.conf 并添加 net.ipv4.ip_forward=1
- Windows:
-
配置 NAT 规则:
- Windows:使用
netsh
或第三方工具(如 Connectify)。 - Linux:使用
iptables
:bash
# 假设eth0是外网接口,vmnet1是虚拟机网络接口 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i vmnet1 -o eth0 -j ACCEPT
- Windows:使用
四、验证与故障排除
-
检查 IP 配置:
bash
ip addr show # Linux ipconfig # Windows
-
检查网络连通性:
bash
# 检查本地网络接口 ping 127.0.0.1# 检查虚拟机间连通性 ping 目标IP# 检查路由表 route -n # Linux route print # Windows
-
防火墙设置:
- 临时关闭防火墙测试(不推荐长期关闭):
bash
# Linux (Ubuntu/Debian) sudo ufw disable# Linux (CentOS/RHEL) sudo systemctl stop firewalld# Windows # 控制面板 → 系统和安全 → Windows Defender 防火墙 → 启用或关闭防火墙
- 临时关闭防火墙测试(不推荐长期关闭):
五、常见问题解决
-
无法 ping 通:
- 检查 IP 地址是否在同一网段。
- 检查网络适配器模式是否一致。
- 检查防火墙设置。
-
只有单向通信:
- 检查目标虚拟机的防火墙规则。
- 确认两台虚拟机的网络配置匹配。
-
DHCP 无法获取 IP:
- 尝试手动配置 IP 地址。
- 重启虚拟机和虚拟化软件。
- 检查虚拟网络服务是否正常运行。