news 2026/4/24 12:18:40

保姆级教程:用VMware Workstation Pro的NAT模式,5分钟搞定虚拟机网站端口映射(含防火墙设置)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级教程:用VMware Workstation Pro的NAT模式,5分钟搞定虚拟机网站端口映射(含防火墙设置)

5分钟掌握VMware NAT模式端口映射:从零搭建可访问的虚拟机Web服务

刚接触虚拟化技术的开发者常遇到一个经典问题:在本地虚拟机搭建了Web服务,却不知如何从宿主机直接访问。本文将手把手带你用VMware Workstation Pro的NAT模式,快速实现端口映射,避开常见配置陷阱。

1. 理解NAT模式的核心优势

NAT(Network Address Translation)模式是VMware三种网络连接中最平衡的方案。与需要独立IP的桥接模式不同,NAT允许虚拟机共享宿主机的IP地址上网,同时通过端口映射实现外部访问。这特别适合:

  • 个人开发测试:无需申请额外IP资源
  • 多虚拟机并行:避免IP地址冲突
  • 安全隔离需求:虚拟机不直接暴露在局域网中

关键区别:桥接模式中虚拟机如同独立设备存在于局域网,而NAT模式更像家中的手机连接Wi-Fi——所有设备共享路由器的一个公网IP。

2. 准备工作:环境检查清单

开始配置前,请确保:

  1. 软件版本

    • VMware Workstation 17 Pro(16/15版本操作类似)
    • 虚拟机系统已安装Web服务(如Nginx/Apache)
  2. 网络信息

    • 宿主机主IP:192.168.1.100(示例)
    • 虚拟机IP:192.168.110.128(自动获取)
    • 网关地址:192.168.110.2
  3. 服务验证

    # 在虚拟机内执行: curl http://localhost

    确认Web服务正常运行

3. 分步配置指南

3.1 配置虚拟网络编辑器

  1. 在VMware菜单选择编辑 > 虚拟网络编辑器

  2. 选择VMnet8(NAT模式),点击"NAT设置"

  3. 记录默认网关IP(如192.168.110.2

  4. 点击"端口转发"添加新规则:

    主机端口虚拟机IP地址虚拟机端口描述
    8080192.168.110.12880Web服务映射

3.2 设置虚拟机静态IP(Ubuntu示例)

# 编辑网络配置 sudo nano /etc/netplan/00-installer-config.yaml # 添加以下内容(根据实际网关修改) network: ethernets: ens33: addresses: [192.168.110.128/24] gateway4: 192.168.110.2 nameservers: addresses: [8.8.8.8, 1.1.1.1] version: 2 # 应用配置 sudo netplan apply

3.3 宿主机防火墙放行

Windows系统

  1. 打开"高级安全Windows Defender防火墙"
  2. 新建入站规则:
    • 端口类型:TCP
    • 特定本地端口:8080
    • 允许连接

Mac系统

# 检查防火墙状态 sudo pfctl -sr # 添加规则(需编辑/etc/pf.conf) pass in proto tcp from any to any port 8080

4. 验证与故障排查

完成配置后,在宿主机浏览器访问:

http://localhost:8080

常见问题解决方案:

  • 连接超时

    • 检查虚拟机防火墙:sudo ufw status
    • 验证服务监听:netstat -tulnp | grep 80
  • 404错误

    • 确认Web服务根目录有index文件
    • 检查Nginx/Apache配置的监听地址
  • IP冲突

    • 重启VMnet8适配器:ipconfig /release && ipconfig /renew
    • 重置虚拟网络:在VMware选择"还原默认设置"

5. 高阶应用场景

掌握基础映射后,可以扩展:

  1. 多服务映射

    • 将SSH(22端口)映射到宿主机不同端口
    • 数据库服务(3306/5432)的本地调试
  2. 开发环境集成

    # 使用VS Code远程开发 code --remote ssh-remote+user@192.168.110.128
  3. CI/CD测试

    • 将Jenkins端口映射到宿主机
    • 实现本地浏览器访问虚拟机内的构建界面

实际项目中,我习惯将常用映射写成脚本自动配置。例如这个Bash脚本可快速添加规则:

#!/bin/bash VM_IP="192.168.110.128" HOST_PORT=8080 VM_PORT=80 vmrun -T ws listRegisteredVM | while read -r vm; do vmrun -T ws start "$vm" sleep 10 vmrun -T ws guestProgram "$vm" /usr/bin/sudo /usr/sbin/iptables -I INPUT -p tcp --dport $VM_PORT -j ACCEPT done

遇到特别复杂的网络环境时,建议先用tcpdump抓包分析:

sudo tcpdump -i ens33 port 80 -vv
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 12:18:13

游戏服务端 AOI(视野同步)性能优化:九宫格 vs 灯塔算法| 从原理到踩坑全解析

游戏服务端 AOI(视野同步)性能优化:九宫格 vs 灯塔算法 本文适合:有 MMO/大地图游戏服务端开发经验,想搞清楚 AOI 怎么选型的开发者 一、场景前置:AOI 是什么,为什么需要它? 先从一个生活场景说起: 你在上海陆家嘴广场,手机收到推送——“有人在哈尔滨冰雪大世界摔…

作者头像 李华
网站建设 2026/4/24 12:16:53

终极指南:免费开源压缩包密码恢复工具,5分钟找回遗忘密码

终极指南:免费开源压缩包密码恢复工具,5分钟找回遗忘密码 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool ArchivePa…

作者头像 李华
网站建设 2026/4/24 12:15:34

R3nzSkin终极指南:如何安全使用英雄联盟内存换肤工具

R3nzSkin终极指南:如何安全使用英雄联盟内存换肤工具 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3n/R3nzSkin R3nzSkin是一款创新的英雄联盟内存换肤工具,通过安全的内存修…

作者头像 李华
网站建设 2026/4/24 12:15:34

C++26合约编程从零到上线(工业级契约驱动开发全链路拆解)

第一章:C26合约编程的演进脉络与工业价值定位C26 将首次将合约(Contracts)以标准化、可移植、编译期可控的方式纳入语言核心特性,标志着 C 在可靠性工程与形式化验证方向迈出关键一步。这一演进并非凭空而来,而是历经 …

作者头像 李华
网站建设 2026/4/24 12:15:09

Python数据可视化:matplotlib、Seaborn与Bokeh对比实战

1. Python数据可视化实战:matplotlib、Seaborn与Bokeh深度对比在机器学习和数据分析领域,数据可视化是理解数据分布、发现潜在规律的关键手段。作为一名长期使用Python进行数据科学工作的开发者,我经常需要在项目中使用不同的可视化工具来呈现…

作者头像 李华
网站建设 2026/4/24 12:14:08

算法训练营第十一天|80.删除有序数组中的重复项‖

1.视频讲解:(https://www.bilibili.com/video/BV18G5UzzE8c/) 2.题目链接: (https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii/) 3.思路:双指针法 定义两个指针,慢指针slow用来记录处理好的数组,快指针fast遍历数组用来寻找有效…

作者头像 李华