局域網內 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 物理機端口轉發” 間接訪問虛擬機:
- PC2 發起域名請求 → 解析到 PC1 物理機 IP;
- PC1 物理機通過端口轉發規則,將請求轉發到虛擬機對應端口;
- 虛擬機處理請求後,通過原路徑返回響應給 PC2。
完整鏈路:PC2 → http://wms.bershe.test:8080 → PC1物理機(192.168.1.179:8080)→ 虛擬機(192.168.17.101:80)→ 項目服務。
二、前置準備:確認關鍵信息
開始配置前,需先獲取 PC1 的核心網絡信息,避免配置錯誤:
1. 查看 PC1 物理機局域網 IP
- 在 PC1 上按
Win + R,輸入cmd打開命令提示符; - 執行命令
ipconfig
,找到 “以太網適配器 以太網”(或當前聯網的網卡),記錄其 IPv4 地址。
示例結果:
192.168.1.179
(此為 PC1 物理機的局域網 IP,PC2 將通過該 IP 訪問)。
2. 確認虛擬機項目狀態
- 登錄 PC1 的虛擬機,打開瀏覽器訪問
http://192.168.17.101:80或http://wms.bershe.test; - 若能正常加載頁面,説明項目已啓動且端口 80 可用;若無法訪問,需先在虛擬機內修復項目(如啓動 Web 服務、確認端口未被佔用)。
三、Step 1:配置 PC1 虛擬機 NAT 端口轉發(核心步驟)
需在 VMware 中配置端口轉發規則,讓 PC1 物理機的 8080 端口映射到虛擬機的 80 端口:
1. 打開 VMware 網絡配置
- 關閉虛擬機(配置需重啓生效),打開 VMware 工作站;
- 點擊頂部菜單欄「編輯」→「虛擬網絡編輯器」,選擇「VMnet8(NAT 模式)」,點擊左下角「更改設置」(需管理員權限)。
2. 配置 NAT 端口轉發規則
- 在虛擬網絡編輯器中,點擊「NAT 設置」,彈出 NAT 配置窗口;
- 點擊「添加」按鈕,新增端口轉發規則,按以下信息填寫:
- 描述:自定義名稱(如
wms-project-forward); - 協議:選擇「TCP」(HTTP/HTTPS 項目僅支持 TCP);
- 主機端口:填寫 PC1 物理機的空閒端口(如
8080,避免與其他程序衝突); - 主機 IP:填寫 PC1 物理機的局域網 IP(
192.168.1.179,必須準確,否則轉發失效); - 虛擬機端口:填寫虛擬機項目的實際端口(
80); - 虛擬機 IP:填寫虛擬機 IP(
192.168.17.101);
- 點擊「確定」保存規則,關閉虛擬網絡編輯器,重啓虛擬機使配置生效。
3. 驗證轉發規則有效性
- 在 PC1 物理機上打開瀏覽器,訪問
http://192.168.1.179:8080; - 若能正常加載虛擬機內的項目頁面,説明端口轉發規則配置成功;
- 若無法訪問,排查以下問題:
- 虛擬機是否已重啓(配置需重啓生效);
- PC1 物理機的 8080 端口是否被佔用(執行
netstat -ano | findstr 8080檢查,若佔用則更換主機端口如 8081); - 轉發規則中的 IP、端口是否填寫錯誤(重點核對主機 IP 是否為
192.168.1.179)。
四、Step 2:配置 PC1 物理機防火牆(避免請求被攔截)
PC1 物理機的 Windows 防火牆默認會攔截外部訪問 8080 端口,需手動添加入站規則:
1. 打開 Windows 防火牆高級設置
- 在 PC1 上按
Win + S,搜索「Windows Defender 防火牆」,點擊「高級設置」; - 在左側導航欄選擇「入站規則」,點擊右側「新建規則」。
2. 新建端口放行規則
- 規則類型選擇「端口」,點擊「下一步」;
- 協議選擇「TCP」,勾選「特定本地端口」,輸入
8080(與轉發規則的主機端口一致),點擊「下一步」; - 操作選擇「允許連接」,點擊「下一步」;
- 勾選「專用」「公用」(確保局域網內所有設備可訪問),點擊「下一步」;
- 規則名稱填寫「允許 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 文件
- 在 PC2 上按
Win + R,輸入notepad C:\Windows\System32\drivers\etc\hosts,按提示「以管理員身份運行」(否則無權限保存); - 在 hosts 文件末尾添加一行(IP 為 PC1 物理機局域網 IP,域名與虛擬機項目一致):
192.168.1.179 wms.bershe.test
- 點擊「文件」→「保存」,關閉記事本。
2. 刷新 PC2 的 DNS 緩存
- 打開 PC2 的命令提示符(
Win + R→cmd); - 執行命令
ipconfig /flushdns,清空 DNS 緩存(確保 hosts 配置立即生效)。
3. 驗證域名解析
在 PC2 的命令提示符中執行 ping wms.bershe.test,若返回 192.168.1.179,説明域名解析配置成功。
六、Step 4:PC2 訪問測試與問題排查
1. 正常訪問流程
- 在 PC2 上打開瀏覽器(或 Postman、curl 等工具);
- 輸入訪問地址
http://wms.bershe.test:8080,按下回車; - 若能加載出虛擬機內的項目頁面,説明全流程配置成功。
2. 常見問題排查(按優先級)
若訪問失敗,對照以下場景逐一排查:
|
問題現象
|
可能原因
|
解決辦法
|
|
|
瀏覽器提示 “無法解析域名”
|
PC2 hosts 文件未配置或配置錯誤
|
重新編輯 hosts 文件,確保 IP 和域名格式正確(無多餘空格、無 #註釋),執行 |
|
|
訪問超時、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. 檢查項目訪問路徑是否正確(如是否需要添加上下文路徑 |
七、進階優化:避免端口衝突與動態 IP 問題
1. 避免端口衝突
- 選擇主機端口時,優先使用 8080、8081、8090 等非常用端口;
- 若端口被佔用,在 VMware 中修改轉發規則的 “主機端口”,同步更新 PC1 防火牆規則和 PC2 的訪問地址。
2. 解決 PC1 物理機動態 IP 問題
若 PC1 的 IP 是動態獲取(重啓路由器後可能變化),會導致 PC2 訪問失效:
- 登錄路由器管理後台(通常為
192.168.1.1); - 找到「DHCP 服務器」→「地址保留」,添加 PC1 物理機的 MAC 地址和固定 IP(
192.168.1.179); - 保存後,PC1 將始終獲取固定 IP,無需頻繁修改 PC2 的 hosts 文件。
八、總結
本文通過 “確認網絡信息 → 配置 NAT 端口轉發 → 放行防火牆端口 → 綁定域名解析” 四步,實現了 PC2 在局域網內訪問 PC1 NAT 模式虛擬機的項目。核心關鍵點在於:
- 轉發規則中準確填寫 PC1 物理機的局域網 IP;
- 確保 TCP 協議和端口映射的一致性;
- 正確配置兩台電腦的防火牆和域名解析。
按照本文步驟操作,即可穩定實現 http://wms.bershe.test:8080 的訪問,適用於開發測試、局域網內項目演示等場景。若遇到特殊網絡環境(如企業路由器限制),可聯繫網絡管理員開放相關端口權限。