目錄
- 使用場景
- 解決方案
使用場景
1、內網有一臺服務器的端口需要映射到外網(舉例外網的服務器申請了一個域名,然后給該域名做了一個nignx的配置,然后配置中需要訪問一個內網的http的服務)
2、內網服務器沒有外網訪問權限,全部內網中只有一臺服務器有外網權限,可用于曲線救國版內網穿透
3、虛擬機只有NAT網,且虛擬機只配備了內網localhost轉發到宿主機localhost,此時想外網或者其他內網(非宿主機)想訪問虛擬機端口
4、將代理機作為堡壘機(跳板機),用于防止內部系統被人隨意訪問,此時堡壘機配置端口轉發,通過堡壘機訪問內部系統。
解決方案
nginx配置文件位置參考
- Linux:在/etc/nginx/conf.d/中,修改default.conf文件
- Windows:在 nginx安裝目錄\Nginx\conf中,修改nginx.conf
注意原本的nginx.conf中沒有stream模塊(據說v1.8.x以后的版本才有,我的是v1.5.11就沒有),需要自行添加。且它的層級和http模塊是同級的
# 編譯nginx的時候要添加stream模塊 ./configure –with-stream # 這個模塊實現了網絡層和傳輸層的的轉發、代理、負載均衡等 # stream與http配置同級 stream { server { listen 3306; proxy_pass 192.168.8.168:3306; # 有了這個server配置,你就可以通過代理機ip+3306端口訪問內網的mysql庫了 } server { listen 8080; proxy_pass 192.168.8.168:8080; # 有了這個配置,你就可以直接訪問代理機ip+8080端口,訪問你的內網web服務了 } # 還可以設置指定的客戶端IP訪問(白名單設置) # 自己百度更多功能吧 } #直接復制可能有問題,幾行代碼就自己打吧