從建站 到營銷 全程無憂!
您當前的位置:首頁 > 新聞資訊 > 企業建站常識

把一個端口收到的全部數據轉發到另一臺機器的另一個端口

發表時間:2021-09-09 21:56:46    瀏覽:664 次

把一個端口收到的全部數據轉發到另一臺機器的另一個端口

前言

端口轉發,這個功能在平時的開發中用到的還是比較多的,記錄下 Windows 如何使用自帶的軟件實現端口轉發。

命令介紹

Windows 從 Windows 2000 開始就提供了最基本的端口轉發功能,是基于 Windows 的 IP Helper 服務的,不僅可以提供端口轉發功能,還可以通過將 IPv4 和 IPv6 的不同地址的數據進行轉發,但是只可以轉發 TCP 協議,暫不支持 UDP 協議,使用 netsh interface portproxy 命令即可開啟。

先看下命令幫助:

 PS C:\Windows\system32> netsh interface portproxy
 
 下列指令有效:
 
 此上下文中的命令:
 ?              - 顯示命令列表。
 add            - 在一個表格中添加一個配置項。
 delete         - 從一個表格中刪除一個配置項。
 dump           - 顯示一個配置腳本。
 help           - 顯示命令列表。
 reset          - 重置端口代理配置狀態。
 set            - 設置配置信息。
 show           - 顯示信息。

一個一個介紹,先說 show 命令:

show命令

show 命令可以查看已經存在的端口轉發規則。用法如下:

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

例如我想查看所有的端口轉發規則,則可以使用 netsh interface portproxy show all。

 PS C:\Windows\system32> netsh interface portproxy show all
 
 偵聽 ipv4:                 連接到 ipv4:
 
 地址            端口        地址            端口
 --------------- ----------  --------------- ----------
 127.0.0.1       3389        25.63.54.89     3389

help命令

這個就不說了,打印幫助信息...

add命令

add 命令可以增加一條端口轉發規則,具體用法為:

 add v4tov4     - 添加通過 IPv4 的 IPv4 和代理連接到的偵聽項目。
 add v4tov6     - 添加通過 IPv6 的 IPv4 和代理連接到的偵聽項目。
 add v6tov4     - 添加通過 IPv4 的 IPv6 和代理連接到的偵聽項目。
 add v6tov6     - 添加通過 IPv6 的 IPv6 和代理連接到的偵聽項目。
 
 用法: 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        - 使用的協議?,F在只支持 TCP。

例如我想將本地的 3389 端口轉發到遠程的 3389 端口上,可以使用以下命令實現:

 netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=3389 connectaddress=25.63.54.89 connectport=3389

其中 v4tov4 的作用在于將 IPv4 地址的 3389 端口轉發到 IPv4 地址的 3389端口上,listenaddress 指定本地監聽的地址,listenport 指定本地監聽的端口,connectaddress 指定要將數據轉發到哪個地址去,也就是目的地址,connectport 指定要轉發到的端口,也就是目的端口。

delete命令

delete 命令用來刪除一條端口轉發規則,刪除時只需要指定端口轉發的監聽地址和端口即可,具體用法為:

 delete v4tov4  - 刪除通過 IPv4 的 IPv4 和代理連接到的偵聽項目。
 delete v4tov6  - 刪除通過 IPv6 的 IPv4 和代理連接到的偵聽項目。
 delete v6tov4  - 刪除通過 IPv4 的 IPv6 和代理連接到的偵聽項目。
 delete v6tov6  - 刪除通過 IPv6 的 IPv6 和代理連接到的偵聽項目。
 
 用法: delete v4tov4 [listenport=]<integer>|<servicename>
             [[listenaddress=]<IPv4 address>|<hostname>]
             [[protocol=]tcp]
 
 參數:
 
        標記             值
        listenport     - 要偵聽的 IPv4 端口。
        listenport     - 要偵聽的 IPv4 地址。
        protocol       - 要使用的協議。當前僅支持 TCP。

例如我想刪除剛才添加的端口轉發規則,先查看下目前存在的端口轉發規則:

 PS C:\Windows\system32> netsh interface portproxy show all
 
 偵聽 ipv4:                 連接到 ipv4:
 
 地址            端口        地址            端口
 --------------- ----------  --------------- ----------
 127.0.0.1       3389        25.63.54.89     3389

執行刪除命令 PS C:\Windows\system32> netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=3389 即可。

 PS C:\Windows\system32> netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=3389
 
 PS C:\Windows\system32> netsh interface portproxy show all
 
 偵聽 ipv4:                 連接到 ipv4:
 
 地址            端口        地址            端口
 --------------- ----------  --------------- ---------- 

dump命令

dump 命令可以將已存在的端口轉發規則進行輸出,保存到一個文件中或者輸出到控制臺的標準輸出中,方便發送給其他人或者進行備份,以備下次還原。

執行 netsh interface portproxy dump 將配置信息輸出到控制臺的標準輸出,或者執行 netsh interface portproxy dump > 1.txt 命令將配置信息重定向到文件中。

PS D:\360download> netsh interface portproxy dump

#========================
# 端口代理配置
#========================
pushd interface portproxy

reset
add v4tov4 listenport=3389 connectaddress=25.63.54.89 connectport=3389


popd

# 端口代理配置結束

PS D:\360download> netsh interface portproxy dump >1.txt

set命令

set 命令可以修改現有的端口轉發配置,也可以新加端口轉發配置。

例如將剛才的遠程地址和端口改為 123.124.125.126:3390,使用以下命令來修改。

PS C:\Windows\system32> netsh interface portproxy show all

偵聽 ipv4:                 連接到 ipv4:

地址            端口        地址            端口
--------------- ----------  --------------- ----------
127.0.0.1       3389        25.63.54.89     3389

D:\360download>netsh interface portproxy set v4tov4 listenaddress=127.0.0.1 listenport=3389 connectaddress=123.124.125.126 connectport=3390


D:\360download>netsh interface portproxy show all

偵聽 ipv4:                 連接到 ipv4:

地址            端口        地址            端口
--------------- ----------  --------------- ----------
127.0.0.1       3389        123.124.125.126 3390

本來以為可以將剛才 dump 命令導出的配置重新導入的,但是我沒成功....可能人家就沒設計這個功能吧, 有點尷尬的...如果有知道的小伙伴可以告訴我。

reset命令

reset 命令可以重置所有的端口轉發規則,如果沒有備份的小伙伴慎用。

D:\360download>netsh interface portproxy show all

偵聽 ipv4:                 連接到 ipv4:

地址            端口        地址            端口
--------------- ----------  --------------- ----------
127.0.0.1       3389        123.124.125.126 3390


D:\360download>netsh interface portproxy reset


D:\360download>netsh interface portproxy show all


D:\360download>

注意事項

如果有添加了規則但是規則不生效的小伙伴,可以檢查下 Windows 的 IP Helper 服務是否開啟,因為端口轉發功能是由這個服務支持的,一定要保證它是正常運行的才可以。還有,在監聽本地地址上的端口時,最好先確定本地的端口沒有被占用,防止端口沖突影響其他程序的正常運行。

總結

以上就是端口轉發功能的使用教程,在平時的開發中臨時需要和虛擬機通信或者其他場景中還是比較常用的,雖然只支持 TCP 協議,不過 UDP 在平時使用的并不多,TCP 也足夠了,所以還是可以滿足日常開發需求的。

 

上一篇:windows下單文件綠色版不用安裝超小的FTP服務器軟件

 
百度搜索推廣 |公司簡介 |人才招聘 |付款方式 |聯系方式
恩施市百捷在線網絡科技有限公司 Copyright ? 2012-2021 網址:www.danny88.com
電話:0718-8262386 傳真:0718-8262386 聯系人:鄒經理
地址:恩施市火車站萬福國際寫字樓613 Email:zou@esbaidu.com 備案號:鄂ICP備16001060號-8
公安備案信息 鄂公網安備 42280102000263號 網絡經濟主體信息
日本精品久久久久9999