一、准備
-
外網ip:39.189.8.5
- 訪問https://www.ip138.com 可以查詢外網ip
-
內網主機ip:192.168.1.6
- win+r,cmd->ipconfig 得到內網ip
-
虛擬機ip:192.168.3.11
二、外網訪問主機電腦
- 本例以訪問本機遠程桌面為例
- 遠程桌面端口3389
1、防火牆添加3389端口
- 控制面板->系統和安全->Windows Defender 防火牆->高級設置->入站規則
- 查看是否有開放3389端口,如果沒有,點擊右上角的新建規則進行添加
2、配置遠程桌面
- 計算機->右鍵屬性->遠程設置
3、配置路由器(本例為水星路由器)
- 高級設置->高級用戶->虛擬服務器
- 添加一條內映射到內網主機的地址
4、測試訪問
- 在別的電腦上遠程連接測試下
- 輸入外網ip:39.189.8.5
三、外網訪問VM虛擬機
- 本例在vm虛擬機上安裝了yapi做測試
- 虛擬機ip:192.168.3.11
- 測試訪問虛擬機web:192.168.3.11:3000,可以訪問
- 思路:路由器的虛擬服務器只能添加本網段的ip,所以需要將vm虛擬機的應用映射成192.168.1.6:3000能訪問才行,然后再通過路由器將192.168.1.6的3000端口映射到外網,這樣就可以通過外訪問vm虛擬機了
1、配置虛擬機
- 設置->網絡適配器->NAT模式
- 編輯->虛擬網絡編輯器->VMnet8->NAT設置->添加端口
2、測試本機訪問3000端口
- 本機ip:3000
3、防火牆增加3000端口
4、路由器映射
5、測試訪問
- 外網ip:3000
四、域名配置
-
經過以上配置,已經可以通過外網ip來訪問虛擬機上的web了,但是光貓重啟ip地址就會變,所以我們可以配置一個域名,這樣訪問域名即可
-
我們使用免費的花生殼來做域名訪問,在路由器中配置花生殼帳號,如下圖,(沒有帳號可以去官網注冊,https://hsk.oray.com/)
-
通過域名加端口號即可以代替以上的ip地址訪問了
-
最好不要使用客戶端的花生殼來做穿透,除非你有很多錢,該軟件默認可以映射2個端口地址,而且有流量、帶寬等限制,通過以上路由器的配置,只是將域名解析下,無任何限制,可以設置N個訪問
五、遇到的坑
1、路由器wan地址和外網ip不一致
- 這是遇到最大的坑,困擾了我一天,由於我用的是移動公司的寬帶,通過撥號,移動公司分配給我的是他們內網的ip,
因此我用外網ip訪問始終不行,不管我設置防火牆還是配置路由器,都不行 - 解決方案:打電話給10086,經過3輪溝通終於同意將我的ip改為外網ip
- 驗證問題:打開路由器找到常用設置->上網設置->ip地址,查看該ip是否和外網ip一致
2、注意防火牆
- 開放的端口需要在防火牆入站規則中添加端口