VMware网络配置详解:让CentOS和Ubuntu虚拟机既能上网又能被宿主机SSH连接(NAT与桥接模式实战)
VMware网络配置实战:CentOS与Ubuntu双模式网络全打通
刚装好的Linux虚拟机连不上网?宿主机SSH死活连接失败?这可能是每个开发者入门虚拟化技术时最常遇到的"新手墙"。不同于物理机插网线即用的简单逻辑,VMware虚拟网络就像乐高积木——选对连接模式才能拼出理想的网络拓扑。本文将用NAT模式解决上网问题,用桥接模式打通SSH连接,两种方案各司其职又互为补充。
1. 虚拟网络基础:理解两大核心模式
1.1 NAT模式:虚拟机的"共享上网卡"
想象虚拟机使用宿主机的网络身份上网,就像合租公寓共用同一个门牌号。VMware会创建一个虚拟NAT设备(通常显示为VMnet8),为虚拟机分配私有IP(如192.168.152.0/24网段)。此时:
- 虚拟机→外网:流量经过NAT转换,显示为宿主机IP
- 外网→虚拟机:默认禁止(需手动配置端口转发)
- 宿主机↔虚拟机:直接互通
# 查看NAT模式分配的IP(CentOS/Ubuntu通用) ip addr show | grep "inet.*dynamic"1.2 桥接模式:虚拟机的"独立网卡"
相当于给虚拟机直连物理网络,就像在路由器上新增一台独立设备。虚拟机会获得与宿主机同网段的IP(如192.168.1.100),此时:
- 所有设备互通:虚拟机、宿主机、局域网其他设备处于平等地位
- 需要空闲IP:可能受限于局域网DHCP地址池
- 依赖物理网卡:无线网卡可能兼容性不佳
| 对比项 | NAT模式 | 桥接模式 |
|---|---|---|
| IP类型 | 私有IP | 公网/局域网IP |
| 外网访问 | 自动连通 | 依赖物理网络 |
| 入站连接 | 需端口转发 | 直接可达 |
| 适用场景 | 单虚拟机上网 | 多虚拟机/设备互通 |
网络选择黄金法则:需要上网选NAT,需要被连选桥接。实验室环境可同时配置两块虚拟网卡兼得二者优势。
2. NAT模式实战:让虚拟机畅游互联网
2.1 配置VMware虚拟网络编辑器
- 关闭所有虚拟机
- 打开VMware菜单栏 → 编辑 → 虚拟网络编辑器
- 选择"VMnet8(NAT模式)" → 确保勾选"NAT设置"中的DHCP选项
- 记录子网IP(如192.168.152.0)和网关IP(如192.168.152.2)
2.2 虚拟机网络适配器设置
- 右键虚拟机 → 设置 → 网络适配器
- 选择"NAT模式"(非"NAT服务")
- 勾选"启动时连接"
2.3 系统内网络配置(CentOS 7示例)
# 查看网卡名称(通常为ens33或eth0) nmcli device status # 修改网络配置(适配器名需替换) sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33关键参数修改:
BOOTPROTO=dhcp ONBOOT=yes2.4 防火墙放行(关键步骤!)
# CentOS 7 sudo systemctl stop firewalld sudo systemctl disable firewalld # Ubuntu sudo ufw disable3. 桥接模式深度配置:实现SSH直连
3.1 宿主机侧准备
- 确认物理网络信息:
- Windows:
ipconfig查看默认网关和子网掩码 - Mac:
netstat -rn查看路由表
- Windows:
- 在VMware虚拟网络编辑器中选择"桥接模式",并指定桥接到正确的物理网卡
3.2 虚拟机静态IP配置(Ubuntu 20.04示例)
sudo vi /etc/netplan/00-installer-config.yaml配置示例:
network: ethernets: ens33: dhcp4: no addresses: [192.168.1.150/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114] version: 2应用配置:
sudo netplan apply3.3 SSH服务部署与验证
# CentOS安装SSH sudo yum install -y openssh-server sudo systemctl start sshd # Ubuntu安装SSH sudo apt install -y openssh-server sudo systemctl start ssh # 修改SSH配置允许密码登录 sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config sudo systemctl restart sshd4. 高阶技巧:双网卡混合部署方案
4.1 添加第二块虚拟网卡
- 虚拟机设置 → 添加 → 网络适配器
- 第一适配器设为NAT模式,第二适配器设为桥接模式
- 启动后使用
ip addr查看新增网卡(通常为ens37或eth1)
4.2 配置策略路由(CentOS 8示例)
# 创建路由表 echo "100 custom" >> /etc/iproute2/rt_tables # 添加路由规则 ip route add default via 192.168.1.1 dev ens37 table custom ip rule add from 192.168.1.150 lookup custom # 持久化配置(NetworkManager方式) nmcli connection modify ens37 ipv4.route-table 1004.3 网络连通性测试工具箱
# 基础测试三连 ping -c 4 8.8.8.8 # 测试外网连通性 telnet 192.168.1.150 22 # 测试SSH端口开放 traceroute www.baidu.com # 检查路由路径 # 高级诊断命令 ss -tulnp # 查看所有监听端口 journalctl -u NetworkManager --no-pager -n 50 # 查看网络服务日志5. 避坑指南:常见故障排查
现象一:能ping通IP但无法解析域名
# 检查DNS配置 cat /etc/resolv.conf # 临时添加DNS echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf现象二:桥接模式获取不到IP
- 确认物理网络是否允许新设备接入(企业网络可能有MAC过滤)
- 尝试更换桥接到其他物理适配器(特别是有线/无线切换时)
- 检查VMware Bridge Protocol是否安装(Windows宿主)
现象三:SSH连接超时
# 检查防火墙规则(CentOS 7示例) sudo firewall-cmd --list-all # 临时开放22端口 sudo firewall-cmd --add-port=22/tcp --permanent sudo firewall-cmd --reload现象四:NAT模式突然失效
- 重启VMware NAT服务(Windows服务管理器)
- 重置虚拟网络设置:
# Windows宿主管理员权限执行 "C:\Program Files (x86)\VMware\VMware Workstation\vmnetcfg.exe"
经过多个项目的实践验证,最稳定的方案其实是NAT+端口转发:既保持虚拟机上网简单,又通过转发宿主机特定端口(如2222→22)实现安全连接。特别是在咖啡厅等公共网络环境,桥接模式常因网络限制失效,而NAT模式始终可靠。
