在windows上用netsh動態配置端口轉發


使用多個虛擬機,將開發環境和工作溝通環境分開(即時通,辦公系統都只能在windows下使用…),將開發環境的服務提供給外部訪問時,需要在主機上通過代理配置數據轉發。

在windows上用netsh動態配置端口轉發 - 傲風 - 0與1構築世界,程序員創造時代

 
VirtualBox提供了端口轉發的功能,可以將主機中的端口轉發至指定IP的虛擬機中的端口,支持TCP協議和UDP協議。但有一個缺點:需要重啟虛擬主機才生效。

在windows上用netsh動態配置端口轉發 - 傲風 - 0與1構築世界,程序員創造時代

 
其實在Windows中,如果想做端口轉發,可以使用Windows自身攜帶的服務:netsh,使用netsh interface portproxy指令,新增和修改配置信息后,即時生效,並且重啟系統后配置信息仍然存在,非常方便。適用於WindowsXP、Windows7,其他的版本還沒有試過,支持IPv4和IPv6,但是只支持TCP協議。

新增端口轉發

1、命令

netsh interface portproxy add v4tov4 - 添加通過 IPv4 的 IPv4 和代理連接到的偵聽項目。
netsh interface portproxy add v4tov6 - 添加通過 IPv6 的 IPv4 和代理連接到的偵聽項目。
netsh interface portproxy add v6tov4 - 添加通過 IPv4 的 IPv6 和代理連接到的偵聽項目。
netsh interface portproxy add v6tov6 - 添加通過 IPv6 的 IPv6 和代理連接到的偵聽項目。

2、命令語法

netsh interface portproxy add v4tov4為例,其語法格式如下:

netsh interface portproxy add v4tov4 [listenport=]<integer>|<servicename>
            [connectaddress=]<IPv4 address>|<hostname>
            [[connectport=]<integer>|<servicename>]
            [[listenaddress=]<IPv4 address>|<hostname>]
            [[protocol=]tcp]

參數:
        標記            值
        listenport      - IPv4 偵聽端口。
        connectaddress  - IPv4 連接地址。
        connectport     - IPv4 連接端口。
        listenaddress   - IPv4 偵聽地址。
        protocol        - 使用的協議。現在只支持 TCP。
說明: 添加通過 IPv4 的 IPv4 和代理連接到的偵聽項目。

3、使用示例

netsh interface portproxy add v4tov4 listenport=8080 connectaddress=192.168.56.101 connectport=8080

將本地的8080端口的數據轉發至192.168.56.101上的8080端口。

netsh interface portproxy add v4tov4 listenport=9090 connectaddress=192.168.56.101 connectport=9090

將本地的9090端口的數據轉發至192.168.56.101上的9090端口。

顯示所有的端口轉發配置信息

1、命令

netsh interface portproxy show all - 顯示所有端口代理參數。
netsh interface portproxy show v4tov4 - 顯示 IPv4 代理連接到另一個 IPv4 端口的參數。
netsh interface portproxy show v4tov6 - 顯示 IPv4 代理連接到 IPv6 的參數。
netsh interface portproxy show v6tov4 - 顯示 IPv6 代理連接到 IPv4 的參數。
netsh interface portproxy show v6tov6 - 顯示 IPv6 代理連接到另一個 IPv6 端口的參數。

2、使用示例

netsh interface portproxy show all

控制台顯示如下信息:
偵聽 ipv4:                 連接到 ipv4:
地址            端口        地址            端口
--------------- ----------  --------------- ----------
*               8080        192.168.56.101  8080
*               9090        192.168.56.101  9080

修改端口轉發配置

1、命令

netsh interface portproxy set v4tov4     - 更新通過 IPv4 的 IPv4 和代理連接到的偵聽項目。
netsh interface portproxy set v4tov6     - 更新通過 IPv6 的 IPv4 和代理連接到的偵聽項目。
netsh interface portproxy set v6tov4     - 更新通過 IPv4 的 IPv6 和代理連接到的偵聽項目。
netsh interface portproxy set v6tov6     - 更新通過 IPv6 的 IPv6 和代理連接到的偵聽項目。

2、命令語法

netsh interface portproxy set v4tov4為例,其語法格式如下:

netsh interface portproxy set v4tov4 [listenport=]<integer>|<servicename>
            [connectaddress=]<IPv4 address>|<hostname>
            [[connectport=]<integer>|<servicename>]
            [[listenaddress=]<IPv4 address>|<hostname>]
            [[protocol=]tcp]

參數:
        標記            值
        listenport      - IPv4 偵聽端口。
        connectaddress  - IPv4 連接地址。
        connectport     - IPv4 連接端口。
        listenaddress   - IPv4 偵聽地址。
        protocol        - 使用的協議。現在只支持 TCP。
說明: 更新通過 IPv4 的 IPv4 和代理連接到的偵聽項目。

3、使用示例

netsh interface portproxy set v4tov4 listenport=9090 connectaddress=192.168.56.101 connectport=9080

將本地9090端口改成轉發至192.168.56.101的9080端口中。

刪除端口轉發配置

1、命令

netsh interface portproxy delete v4tov4  - 刪除通過 IPv4 的 IPv4 和代理連接到的偵聽項目。
netsh interface portproxy delete v4tov6  - 刪除通過 IPv6 的 IPv4 和代理連接到的偵聽項目。
netsh interface portproxy delete v6tov4  - 刪除通過 IPv4 的 IPv6 和代理連接到的偵聽項目。
netsh interface portproxy delete v6tov6  - 刪除通過 IPv6 的 IPv6 和代理連接到的偵聽項目。

2、命令語法

netsh interface portproxy delete v4tov4為例,其語法格式如下:

netsh interface portproxy delete v4tov4 [listenport=]<integer>|<servicename>
            [[listenaddress=]<IPv4 address>|<hostname>]
            [[protocol=]tcp]

參數:
       標記             值
       listenport     - 要偵聽的 IPv4 端口。
       listenport     - 要偵聽的 IPv4 地址。
       protocol       - 要使用的協議。當前僅支持 TCP。
注釋: 刪除要偵聽的 IPv4 的項並通過 Ipv4 代理連接。

3、使用示例

netsh interface portproxy delete v4tov4 listenport=9090

刪除本地端口9090的端口轉發配置。

 

轉!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM