VMware Ubuntu 虚拟机局域网访问配置指南

📊 当前网络结构图

1
2
3
4
5
6
7
8
9
10
11
12
┌─────────────────────────────────────────────────────────────┐
│ Windows 主机(真实电脑) │
│ IP: 192.168.1.3 │
│ ├─ VMware Network Adapter VMnet8 (NAT模式) │
│ │ IP: 192.168.254.1 │
│ └─ 运行 VMware Workstation │
│ └── Ubuntu 虚拟机 │
│ IP: 192.168.254.6 │
│ 开放端口:8888(宝塔) 9000(Docker等) │
└─────────────────────────────────────────────────────────────┘

另一台电脑(192.168.1.4) → 想访问 Ubuntu 中的服务

🎯 问题分析

当前情况:

  • ✅ 192.168.1.3(宿主机)能访问 192.168.254.6(虚拟机)
  • ❌ 192.168.1.4(局域网其他电脑)无法访问 192.168.254.6

原因:
VMware 的 NAT 模式 (VMnet8) 默认只在宿主机内部连通,不会将虚拟机的网络暴露到整个局域网。

🔧 解决方案对比

方案 局域网可访问 配置难度 IP 变化 推荐度 特点
桥接模式 ✅ 完全可访问 简单 会改变 ⭐⭐⭐⭐⭐ 最推荐,虚拟机完全融入局域网
NAT + 端口转发 ✅ 需配置端口 中等 不变 ⭐⭐⭐⭐ 保持NAT网络,需手动映射端口
Host-only ❌ 仅宿主机 简单 不变 ⭐⭐ 仅测试用,不推荐
混合网络 ✅ 完全可访问 复杂 双IP ⭐⭐⭐ 功能最全,配置复杂

📋 方案一:桥接模式(推荐)

配置步骤

  1. 关闭 Ubuntu 虚拟机

  2. 修改网络适配器设置:

    • 打开 VMware → 选中 Ubuntu 虚拟机
    • 点击”设置 (Settings)“ → “网络适配器 (Network Adapter)
    • 选择:桥接模式 (Bridged)
    • 勾选:复制物理网络连接状态
  3. 启动 Ubuntu 并查看新IP:

    1
    ip a | grep inet

    应该看到类似:inet 192.168.1.10/24

  4. 配置 Ubuntu 防火墙:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 允许常用端口
    sudo ufw allow 8888 # 宝塔面板
    sudo ufw allow 9000 # Docker服务
    sudo ufw allow 80 # HTTP
    sudo ufw allow 443 # HTTPS
    sudo ufw allow 22 # SSH(可选)
    sudo ufw reload

    # 检查防火墙状态
    sudo ufw status verbose

访问方式

  • 宝塔面板: http://192.168.1.10:8888
  • Docker服务: http://192.168.1.10:9000
  • 局域网任何电脑(包括 192.168.1.4) 都可直接访问

📋 方案二:NAT + 端口转发

配置步骤

  1. 打开 VMware 网络编辑器:

    1
    编辑 → 虚拟网络编辑器 (Virtual Network Editor)
  2. 配置端口转发:

    • 选中 VMnet8
    • 点击”NAT 设置 (NAT Settings)
    • 点击”端口转发 (Port Forwarding)
    • 添加以下规则:
    规则名称 协议 主机端口 虚拟机IP 虚拟机端口
    BT8888 TCP 8888 192.168.254.6 8888
    DOCKER9000 TCP 9000 192.168.254.6 9000
    HTTP80 TCP 80 192.168.254.6 80
    HTTPS443 TCP 443 192.168.254.6 443
  3. 保存并重启虚拟机

配置 Windows 防火墙

在宿主机(192.168.1.3)以管理员身份运行 PowerShell:

1
2
3
4
5
6
7
8
9
10
11
12
# 放行宝塔面板端口
netsh advfirewall firewall add rule name="BT_Panel_8888" dir=in action=allow protocol=TCP localport=8888

# 放行Docker服务端口
netsh advfirewall firewall add rule name="Docker_Service_9000" dir=in action=allow protocol=TCP localport=9000

# 放行Web端口
netsh advfirewall firewall add rule name="HTTP_80" dir=in action=allow protocol=TCP localport=80
netsh advfirewall firewall add rule name="HTTPS_443" dir=in action=allow protocol=TCP localport=443

# 查看已添加的规则
netsh advfirewall firewall show rule name=all

访问方式

  • 宝塔面板: http://192.168.1.3:8888
  • Docker服务: http://192.168.1.3:9000
  • 局域网其他电脑通过宿主机IP访问

📋 方案三:混合网络方案(高级)

如果希望:

  • ✅ Ubuntu 保持 NAT 上网(方便科学上网等)
  • ✅ 又能被局域网访问
  • ✅ IP地址稳定不变化

配置步骤

  1. 添加第二块网卡:

    • 关闭 Ubuntu 虚拟机
    • 点击”设置“ → “添加“ → “网络适配器
    • 第一块网卡:NAT 模式(保持现有 192.168.254.6)
    • 第二块网卡:桥接模式(获取 192.168.1.x)
  2. 启动 Ubuntu 并配置双网卡:

    1
    2
    3
    4
    5
    6
    # 查看网络接口
    ip a

    # 通常 eth0 是 NAT 网卡,eth1 是桥接网卡
    # 查看路由
    ip route
  3. 配置静态IP(可选,推荐):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # 编辑网络配置文件
    sudo nano /etc/netplan/00-installer-config.yaml

    # 添加桥接网卡配置(示例):
    network:
    version: 2
    ethernets:
    eth0: # NAT网卡
    dhcp4: true
    eth1: # 桥接网卡
    dhcp4: false
    addresses: [192.168.1.10/24]
    gateway4: 192.168.1.1
    nameservers:
    addresses: [8.8.8.8, 8.8.4.4]

    # 应用配置
    sudo netplan apply
  4. 配置防火墙:

    1
    2
    3
    # 允许桥接网卡上的服务
    sudo ufw allow in on eth1 to any port 8888
    sudo ufw allow in on eth1 to any port 9000

混合方案优势

  • NAT网卡 (eth0): 用于访问外网,IP稳定
  • 桥接网卡 (eth1): 用于局域网访问,固定IP
  • 互不干扰: 网络策略分离,更安全

🔍 测试验证

无论选择哪种方案,都需要测试:

1
2
3
4
5
6
7
8
9
10
# 在 Ubuntu 中测试端口监听
sudo netstat -tulpn | grep -E '8888|9000|80|443'

# 在宿主机测试
telnet 192.168.1.10 8888 # 桥接模式
telnet 192.168.1.3 8888 # NAT+端口转发模式

# 在局域网其他电脑(192.168.1.4)测试
ping 192.168.1.10 # 桥接模式
curl http://192.168.1.10:8888 # 测试访问

📝 推荐建议

场景一:开发测试环境

推荐:桥接模式

  • 简单直接
  • 完全融入局域网
  • 便于多设备访问测试

场景二:生产或复杂网络环境

推荐:混合网络方案

  • 内外网分离,更安全
  • NAT上网稳定
  • 局域网访问方便

场景三:临时共享访问

推荐:NAT + 端口转发

  • 不改动现有网络
  • 快速配置
  • 通过宿主机IP访问

⚠️ 注意事项

  1. IP冲突问题: 桥接模式可能出现IP冲突,建议在路由器设置DHCP保留
  2. 网络安全: 暴露到局域网的服务要做好安全设置
  3. 宝塔面板安全: 修改默认8888端口,设置强密码,限制访问IP
  4. 虚拟机备份: 修改网络配置前建议快照备份

🚀 快速开始

最简单的步骤:

  1. 关闭虚拟机
  2. 修改网络为桥接模式
  3. 启动虚拟机
  4. 执行 ip a 获取新IP
  5. 配置防火墙 sudo ufw allow 8888
  6. 局域网电脑访问 http://新IP:8888

需要进一步帮助,请告诉我你的具体需求和网络环境!