這裏記錄一下Ubuntu環境及Windows環境下端口轉發的實現。主要適用業務爲,將內網服務通過有公網IP的服務器對外提供相應端口的服務,或兩個網段通過中間服務器相互提供對應端口的服務。
Ubuntu
安裝:apt-get install rinetd
設置配置:vi /etc/rinetd.conf
0.0.0.0 33061 192.168.x.x 3306
將所有發往本地的33061端口的請求轉發到192.168.x.x 上的3306端口,實現對192.168.x.x上3306端口的對外暴露。0.0.0.0 改爲IP地址時表示只講改IP發往本地的33061端口的請求進行轉發。
加載配置:service rinetd reload
Windows
安裝:windows下自帶了netsh,無需另行安裝
設置配置:
netsh interface portproxy add v4tov4 [listenaddress=172.19.x.x] listenport=33061 connectaddress=192.168.x.x connectport=3306
不設置listenaddress時:將所有發往本地的33061端口的請求轉發到192.168.x.x 上的3306端口,實現對192.168.x.x上3306端口的對外暴露。設置listenaddress=172.19.x.x時:將172.19.x.x發往本地的33061端口的請求進行轉發。
netsh interface portproxy show all 查看目前轉發的所有端口列表
netsh interface portproxy delete v4tov4 [listenaddress=172.19.x.x] listenport=33061 解除對33061接口的監聽(及轉發),設置listenaddress時表示解除指定服務器發來的請求