局域网内 PC2 访问 PC1 虚拟机(NAT 模式)项目

局域网内 PC2 访问 PC1 虚拟机(NAT 模式)项目

说明

以 wms.bershe.test 为例

在日常开发或测试场景中,经常会遇到 “PC2 需访问 PC1 虚拟机内项目” 的需求。本文针对 PC1(Windows 11)+ VMware 虚拟机(NAT 模式)+ PC2(Windows 11) 的环境,详细拆解从配置到验证的全流程,最终实现 PC2 通过域名 http://wms.bershe.test:8080 访问 PC1 虚拟机内的 Web 项目。

一、环境说明与核心原理

1. 基础环境
  • PC1:Windows 11 系统,安装 VMware 虚拟机(NAT 网络模式),虚拟机 IP 为 192.168.17.101,项目域名 wms.bershe.test(已在虚拟机内配置 hosts 映射),项目端口为 80(HTTP 默认端口)。
  • PC2:Windows 11 系统,与 PC1 连接同一路由器(同一局域网)。
  • 虚拟机网络模式:NAT(默认隔离在独立子网,PC2 无法直接访问虚拟机 IP)。
2. 核心通信原理

NAT 模式下,虚拟机 IP 仅能被 PC1 物理机访问,PC2 需通过 “PC1 物理机端口转发” 间接访问虚拟机:

  1. PC2 发起域名请求 → 解析到 PC1 物理机 IP;
  2. PC1 物理机通过端口转发规则,将请求转发到虚拟机对应端口;
  3. 虚拟机处理请求后,通过原路径返回响应给 PC2。

完整链路:PC2 → http://wms.bershe.test:8080 → PC1物理机(192.168.1.179:8080)→ 虚拟机(192.168.17.101:80)→ 项目服务

二、前置准备:确认关键信息

开始配置前,需先获取 PC1 的核心网络信息,避免配置错误:

1. 查看 PC1 物理机局域网 IP

  1. 在 PC1 上按 Win + R,输入 cmd 打开命令提示符;

  2. 执行命令

    ipconfig
    

    ,找到 “以太网适配器 以太网”(或当前联网的网卡),记录其 IPv4 地址。

    示例结果:

    192.168.1.179
    

    (此为 PC1 物理机的局域网 IP,PC2 将通过该 IP 访问)。

2. 确认虚拟机项目状态

  1. 登录 PC1 的虚拟机,打开浏览器访问 http://192.168.17.101:80http://wms.bershe.test
  2. 若能正常加载页面,说明项目已启动且端口 80 可用;若无法访问,需先在虚拟机内修复项目(如启动 Web 服务、确认端口未被占用)。

三、Step 1:配置 PC1 虚拟机 NAT 端口转发(核心步骤)

需在 VMware 中配置端口转发规则,让 PC1 物理机的 8080 端口映射到虚拟机的 80 端口:

1. 打开 VMware 网络配置

  1. 关闭虚拟机(配置需重启生效),打开 VMware 工作站;
  2. 点击顶部菜单栏「编辑」→「虚拟网络编辑器」,选择「VMnet8(NAT 模式)」,点击左下角「更改设置」(需管理员权限)。

2. 配置 NAT 端口转发规则

  1. 在虚拟网络编辑器中,点击「NAT 设置」,弹出 NAT 配置窗口;
  2. 点击「添加」按钮,新增端口转发规则,按以下信息填写:
    • 描述:自定义名称(如 wms-project-forward);
    • 协议:选择「TCP」(HTTP/HTTPS 项目仅支持 TCP);
    • 主机端口:填写 PC1 物理机的空闲端口(如 8080,避免与其他程序冲突);
    • 主机 IP:填写 PC1 物理机的局域网 IP(192.168.1.179,必须准确,否则转发失效);
    • 虚拟机端口:填写虚拟机项目的实际端口(80);
    • 虚拟机 IP:填写虚拟机 IP(192.168.17.101);
  3. 点击「确定」保存规则,关闭虚拟网络编辑器,重启虚拟机使配置生效。

3. 验证转发规则有效性

  1. 在 PC1 物理机上打开浏览器,访问 http://192.168.1.179:8080
  2. 若能正常加载虚拟机内的项目页面,说明端口转发规则配置成功;
  3. 若无法访问,排查以下问题:
    • 虚拟机是否已重启(配置需重启生效);
    • PC1 物理机的 8080 端口是否被占用(执行 netstat -ano | findstr 8080 检查,若占用则更换主机端口如 8081);
    • 转发规则中的 IP、端口是否填写错误(重点核对主机 IP 是否为 192.168.1.179)。

四、Step 2:配置 PC1 物理机防火墙(避免请求被拦截)

PC1 物理机的 Windows 防火墙默认会拦截外部访问 8080 端口,需手动添加入站规则:

1. 打开 Windows 防火墙高级设置

  1. 在 PC1 上按 Win + S,搜索「Windows Defender 防火墙」,点击「高级设置」;
  2. 在左侧导航栏选择「入站规则」,点击右侧「新建规则」。

2. 新建端口放行规则

  1. 规则类型选择「端口」,点击「下一步」;
  2. 协议选择「TCP」,勾选「特定本地端口」,输入 8080(与转发规则的主机端口一致),点击「下一步」;
  3. 操作选择「允许连接」,点击「下一步」;
  4. 勾选「专用」「公用」(确保局域网内所有设备可访问),点击「下一步」;
  5. 规则名称填写「允许 8080 端口访问」,点击「完成」。

3. 测试防火墙规则

在 PC1 物理机再次访问 http://192.168.1.179:8080,若能正常访问,说明防火墙规则已生效。

五、Step 3:配置 PC2 域名解析(实现通过 wms.bershe.test 访问)

PC2 需通过 hosts 文件绑定 wms.bershe.test 到 PC1 物理机 IP,才能通过域名访问:

1. 编辑 PC2 的 hosts 文件

  1. 在 PC2 上按 Win + R,输入 notepad C:\Windows\System32\drivers\etc\hosts,按提示「以管理员身份运行」(否则无权限保存);

  2. 在 hosts 文件末尾添加一行(IP 为 PC1 物理机局域网 IP,域名与虚拟机项目一致):

    192.168.1.179    wms.bershe.test
    
  3. 点击「文件」→「保存」,关闭记事本。

2. 刷新 PC2 的 DNS 缓存

  1. 打开 PC2 的命令提示符(Win + Rcmd);
  2. 执行命令 ipconfig /flushdns,清空 DNS 缓存(确保 hosts 配置立即生效)。

3. 验证域名解析

在 PC2 的命令提示符中执行 ping wms.bershe.test,若返回 192.168.1.179,说明域名解析配置成功。

六、Step 4:PC2 访问测试与问题排查

1. 正常访问流程

  1. 在 PC2 上打开浏览器(或 Postman、curl 等工具);
  2. 输入访问地址 http://wms.bershe.test:8080,按下回车;
  3. 若能加载出虚拟机内的项目页面,说明全流程配置成功。

2. 常见问题排查(按优先级)

若访问失败,对照以下场景逐一排查:

问题现象 可能原因 解决办法
浏览器提示 “无法解析域名” PC2 hosts 文件未配置或配置错误 重新编辑 hosts 文件,确保 IP 和域名格式正确(无多余空格、无 #注释),执行 ipconfig /flushdns
访问超时、ping 不通 192.168.1.179 PC1 与 PC2 不在同一局域网,或 PC1 防火墙未放行 8080 端口 1. 确认两台电脑连接同一路由器;2. 临时关闭 PC1 防火墙测试(测试后重新开启);3. 检查 PC1 的入站规则是否正确
提示 “拒绝访问”“连接被重置” PC1 物理机 8080 端口被占用,或转发规则配置错误 1. 在 PC1 执行 `netstat -ano findstr 8080`,关闭占用端口的程序;2. 重新检查 VMware 转发规则(主机 IP、端口、协议是否正确);3. 重启虚拟机
PC1 能访问,PC2 不能访问 PC2 防火墙拦截请求,或路由器开启 AP 隔离 1. 临时关闭 PC2 防火墙测试;2. 登录路由器管理后台,关闭 “AP 隔离” 功能(部分路由器默认开启)
访问显示 “404 页面不存在” 虚拟机项目端口或路径错误 1. 确认虚拟机项目端口为 80;2. 检查项目访问路径是否正确(如是否需要添加上下文路径 /wms

七、进阶优化:避免端口冲突与动态 IP 问题

1. 避免端口冲突

  • 选择主机端口时,优先使用 8080、8081、8090 等非常用端口;
  • 若端口被占用,在 VMware 中修改转发规则的 “主机端口”,同步更新 PC1 防火墙规则和 PC2 的访问地址。

2. 解决 PC1 物理机动态 IP 问题

若 PC1 的 IP 是动态获取(重启路由器后可能变化),会导致 PC2 访问失效:

  1. 登录路由器管理后台(通常为 192.168.1.1);
  2. 找到「DHCP 服务器」→「地址保留」,添加 PC1 物理机的 MAC 地址和固定 IP(192.168.1.179);
  3. 保存后,PC1 将始终获取固定 IP,无需频繁修改 PC2 的 hosts 文件。

八、总结

本文通过 “确认网络信息 → 配置 NAT 端口转发 → 放行防火墙端口 → 绑定域名解析” 四步,实现了 PC2 在局域网内访问 PC1 NAT 模式虚拟机的项目。核心关键点在于:

  1. 转发规则中准确填写 PC1 物理机的局域网 IP;
  2. 确保 TCP 协议和端口映射的一致性;
  3. 正确配置两台电脑的防火墙和域名解析。

按照本文步骤操作,即可稳定实现 http://wms.bershe.test:8080 的访问,适用于开发测试、局域网内项目演示等场景。若遇到特殊网络环境(如企业路由器限制),可联系网络管理员开放相关端口权限。

posted @ 2025-11-19 09:51  pine007  阅读(28)  评论(0)    收藏  举报