把一個(gè)端口收到的全部數(shù)據(jù)轉(zhuǎn)發(fā)到另一臺(tái)機(jī)器的另一個(gè)端口
發(fā)表時(shí)間:2021-09-09 21:56:46 瀏覽:5675 次
把一個(gè)端口收到的全部數(shù)據(jù)轉(zhuǎn)發(fā)到另一臺(tái)機(jī)器的另一個(gè)端口
前言
端口轉(zhuǎn)發(fā),這個(gè)功能在平時(shí)的開發(fā)中用到的還是比較多的,記錄下 Windows 如何使用自帶的軟件實(shí)現(xiàn)端口轉(zhuǎn)發(fā)。
Windows 從 Windows 2000 開始就提供了最基本的端口轉(zhuǎn)發(fā)功能,是基于 Windows 的 IP Helper
服務(wù)的,不僅可以提供端口轉(zhuǎn)發(fā)功能,還可以通過(guò)將 IPv4 和 IPv6 的不同地址的數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā),但是只可以轉(zhuǎn)發(fā) TCP 協(xié)議,暫不支持 UDP 協(xié)議,使用 netsh interface portproxy
命令即可開啟。
先看下命令幫助:
PS C:\Windows\system32> netsh interface portproxy
下列指令有效:
此上下文中的命令:
? - 顯示命令列表。
add - 在一個(gè)表格中添加一個(gè)配置項(xiàng)。
delete - 從一個(gè)表格中刪除一個(gè)配置項(xiàng)。
dump - 顯示一個(gè)配置腳本。
help - 顯示命令列表。
reset - 重置端口代理配置狀態(tài)。
set - 設(shè)置配置信息。
show - 顯示信息。
一個(gè)一個(gè)介紹,先說(shuō) show 命令:
show 命令可以查看已經(jīng)存在的端口轉(zhuǎn)發(fā)規(guī)則。用法如下:
show all - 顯示所有端口代理參數(shù)。
show v4tov4 - 顯示 IPv4 代理連接到另一個(gè) IPv4 端口的參數(shù)。
show v4tov6 - 顯示 IPv4 代理連接到 IPv6 的參數(shù)。
show v6tov4 - 顯示 IPv6 代理連接到 IPv4 的參數(shù)。
show v6tov6 - 顯示 IPv6 代理連接到另一個(gè) IPv6 端口的參數(shù)。
例如我想查看所有的端口轉(zhuǎn)發(fā)規(guī)則,則可以使用 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
這個(gè)就不說(shuō)了,打印幫助信息...
add 命令可以增加一條端口轉(zhuǎn)發(fā)規(guī)則,具體用法為:
add v4tov4 - 添加通過(guò) IPv4 的 IPv4 和代理連接到的偵聽項(xiàng)目。
add v4tov6 - 添加通過(guò) IPv6 的 IPv4 和代理連接到的偵聽項(xiàng)目。
add v6tov4 - 添加通過(guò) IPv4 的 IPv6 和代理連接到的偵聽項(xiàng)目。
add v6tov6 - 添加通過(guò) IPv6 的 IPv6 和代理連接到的偵聽項(xiàng)目。
用法: add v4tov4 [listenport=]<integer>|<servicename>
[connectaddress=]<IPv4 address>|<hostname>
[[connectport=]<integer>|<servicename>]
[[listenaddress=]<IPv4 address>|<hostname>]
[[protocol=]tcp]
參數(shù):
標(biāo)記 值
listenport - IPv4 偵聽端口。
connectaddress - IPv4 連接地址。
connectport - IPv4 連接端口。
listenaddress - IPv4 偵聽地址。
protocol - 使用的協(xié)議?,F(xiàn)在只支持 TCP。
例如我想將本地的 3389 端口轉(zhuǎn)發(fā)到遠(yuǎn)程的 3389 端口上,可以使用以下命令實(shí)現(xiàn):
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=3389 connectaddress=25.63.54.89 connectport=3389
其中 v4tov4 的作用在于將 IPv4 地址的 3389 端口轉(zhuǎn)發(fā)到 IPv4 地址的 3389端口上,listenaddress 指定本地監(jiān)聽的地址,listenport 指定本地監(jiān)聽的端口,connectaddress 指定要將數(shù)據(jù)轉(zhuǎn)發(fā)到哪個(gè)地址去,也就是目的地址,connectport 指定要轉(zhuǎn)發(fā)到的端口,也就是目的端口。
delete 命令用來(lái)刪除一條端口轉(zhuǎn)發(fā)規(guī)則,刪除時(shí)只需要指定端口轉(zhuǎn)發(fā)的監(jiān)聽地址和端口即可,具體用法為:
delete v4tov4 - 刪除通過(guò) IPv4 的 IPv4 和代理連接到的偵聽項(xiàng)目。
delete v4tov6 - 刪除通過(guò) IPv6 的 IPv4 和代理連接到的偵聽項(xiàng)目。
delete v6tov4 - 刪除通過(guò) IPv4 的 IPv6 和代理連接到的偵聽項(xiàng)目。
delete v6tov6 - 刪除通過(guò) IPv6 的 IPv6 和代理連接到的偵聽項(xiàng)目。
用法: delete v4tov4 [listenport=]<integer>|<servicename>
[[listenaddress=]<IPv4 address>|<hostname>]
[[protocol=]tcp]
參數(shù):
標(biāo)記 值
listenport - 要偵聽的 IPv4 端口。
listenport - 要偵聽的 IPv4 地址。
protocol - 要使用的協(xié)議。當(dāng)前僅支持 TCP。
例如我想刪除剛才添加的端口轉(zhuǎn)發(fā)規(guī)則,先查看下目前存在的端口轉(zhuǎn)發(fā)規(guī)則:
PS C:\Windows\system32> netsh interface portproxy show all
偵聽 ipv4: 連接到 ipv4:
地址 端口 地址 端口
--------------- ---------- --------------- ----------
127.0.0.1 3389 25.63.54.89 3389
執(zhí)行刪除命令 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 命令可以將已存在的端口轉(zhuǎn)發(fā)規(guī)則進(jìn)行輸出,保存到一個(gè)文件中或者輸出到控制臺(tái)的標(biāo)準(zhǔn)輸出中,方便發(fā)送給其他人或者進(jìn)行備份,以備下次還原。
執(zhí)行 netsh interface portproxy dump
將配置信息輸出到控制臺(tái)的標(biāo)準(zhǔn)輸出,或者執(zhí)行 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
# 端口代理配置結(jié)束
PS D:\360download> netsh interface portproxy dump >1.txt
set 命令可以修改現(xiàn)有的端口轉(zhuǎn)發(fā)配置,也可以新加端口轉(zhuǎn)發(fā)配置。
例如將剛才的遠(yuǎn)程地址和端口改為 123.124.125.126:3390
,使用以下命令來(lái)修改。
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
本來(lái)以為可以將剛才 dump 命令導(dǎo)出的配置重新導(dǎo)入的,但是我沒(méi)成功....可能人家就沒(méi)設(shè)計(jì)這個(gè)功能吧, 有點(diǎn)尷尬的...如果有知道的小伙伴可以告訴我。
reset 命令可以重置所有的端口轉(zhuǎn)發(fā)規(guī)則,如果沒(méi)有備份的小伙伴慎用。
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>
如果有添加了規(guī)則但是規(guī)則不生效的小伙伴,可以檢查下 Windows 的 IP Helper
服務(wù)是否開啟,因?yàn)槎丝谵D(zhuǎn)發(fā)功能是由這個(gè)服務(wù)支持的,一定要保證它是正常運(yùn)行的才可以。還有,在監(jiān)聽本地地址上的端口時(shí),最好先確定本地的端口沒(méi)有被占用,防止端口沖突影響其他程序的正常運(yùn)行。
以上就是端口轉(zhuǎn)發(fā)功能的使用教程,在平時(shí)的開發(fā)中臨時(shí)需要和虛擬機(jī)通信或者其他場(chǎng)景中還是比較常用的,雖然只支持 TCP 協(xié)議,不過(guò) UDP 在平時(shí)使用的并不多,TCP 也足夠了,所以還是可以滿足日常開發(fā)需求的。
百度搜索推廣 |公司簡(jiǎn)介 |人才招聘 |付款方式 |聯(lián)系方式 | ||
恩施網(wǎng)絡(luò)公司-恩施市百捷在線網(wǎng)絡(luò)科技有限公司 Copyright ? 2012-2021 網(wǎng)址:www.inpursuitofexpression.com | ||
電話:15587589530 傳真:15587589530 聯(lián)系人:鄒經(jīng)理 | ||
地址:恩施市火車站萬(wàn)福國(guó)際寫字樓613 Email:zou@esbaidu.com 備案號(hào):鄂ICP備16001060號(hào)-8 | ||
|