本文只是作為記錄,避免后面遇到此類問題耗費時間。
實際情況:公司有個固定電信寬帶是固定IP的,想把固定IP映射到測試環境ip,實現可以公網通過固定ip訪問,內網通過局域網ip訪問。
測試環境服務是占用的80端口和8080端口。
主要步驟:路由器ip映射----》訪問-----》檢查問題-------》更改監聽端口
第一步:路由器ip映射

第一步就是這么簡單。在你的路由器設置好即可
第二步:訪問
既然我們已經做好了映射,那么我們直接通過公網ip訪問下看看。(特別注意的點:不要讓已經在內網的電腦通過打開公網ip去訪問,這樣是沒有效果的,你可以看到你可以訪問,但是如果你用外網的電腦去訪問該固定ip的話你會發現訪問不了)
這里我們不用直接訪問的方式,我們直接用telnet進行測試。
[root@teleport ~]# telnet 212.13.141.240 80 Trying 212.13.141.240... ^C [root@teleport ~]# telnet 212.13.141.240 22 Trying 212.13.141.240... Connected to 212.13.141.240. Escape character is '^]'. SSH-2.0-OpenSSH_7.4
^] telnet> q Connection closed. [root@teleport ~]# telnet 212.13.141.240 8080 Trying 218.17.141.240... ^C
你會發現,我們一個很奇怪的現象就是,22端口是可以telnet通的。其他端口是是不通的。
第三步:檢查問題
我們檢查發現端口80和8080端口是處於監聽狀態,並且防火牆是對這兩個端口開放的。我們查詢資料發現,電信運營商是將一些常用的80.8080端口直接屏蔽了。
第四步:更改監聽端口
由於我們既要保證內部網絡可以訪問,也要保證外部網絡可以直接訪問。我們用nginx監聽兩個端口。80端口是局域網直接訪問,6666端口用於公網訪問。這樣就可以了
下面貼下nginx配置。
server {
listen 80;
listen 6666;
server_name amz.test.com;
location / {
try_files $uri /index.html;
root /usr/local/amazonHelpFront/source/dist;
}
location ^~ /api/ {
proxy_pass http://127.0.0.1:8081;
proxy_set_header X-Forward-For $remote_addr ;
}
}
