Windows:將一個IP和連接埠的網路流量對應到本機電腦上的另一個IP和連接埠

Windows:將一個IP和連接埠的網路流量對應到本機電腦上的另一個IP和連接埠

在Windows上,我需要將一個IP位址(例如10.255.255.255)的所有流量對應到另一個IP位址(例如127.0.0.1)。

我遇到了netsh介面portproxy並且我已經嘗試過。

netsh interface portproxy add v4tov4 listenaddress=10.255.255.255 listenport=7073 connectaddress=127.0.0.1 connectport=7071

目標是,如果用戶發送任何資料包,10.255.255.255:7073就像她將資料包發送到127.0.0.1:7071

netsh interface portproxy show all

Listen on ipv4:             Connect to ipv4:

Address         Port        Address         Port
--------------- ----------  --------------- ----------
10.255.255.255  7073        127.0.0.1         7071

我還新增了 7073 連接埠的防火牆規則。

netsh advfirewall firewall add rule name="7073 port" protocol=TCP dir=in localport=7073 action=allow

這是在 Windows 11 上。

netstat -na|find "7073" 結果為空,7071同樣結果如下

netstat -na|find "7071"
  TCP    0.0.0.0:7071           0.0.0.0:0              LISTENING

在我的應用程式中,我首先嘗試從郵遞員將請求發送到 10.255.255.255:7073,但超時。同樣的請求可以成功傳送到127.0.0.1:7071。

如果我遠端登入 7073,它無法連接到它。

telnet 10.255.255.255 7073
Connecting To 10.255.255.255...Could not open connection to the host, on port 7073: Connect failed

我檢查過IP Helper服務也在運作。

我的意圖是,如果用戶已經可以向 發送請求127.0.0.1:7071,那麼在連接埠轉發之後,他們可以向 發送請求10.255.255.255:7073並看到相同的行為。我的應用程式實際上會發送 HTTP 請求。

請注意,沒有服務實際上正在偵聽7073傳入流量。但這就是重點,我希望任何向此連接埠發送任何內容的人(即使沒有人在監聽它),流量都會流向7071(有人正在監聽它)。

關於將 IP:連接埠映射到另一個以將所有網路流量從來源 IP 來回轉發到目標 IP,我的方法是否正確?

如果是,這裡可能出了什麼問題?

謝謝

答案1

該命令的問題在於指定和netsh的參數時,這些參數用於 listenaddressconnectaddress一個特定的 IP 位址,而不是一系列位址

因此,您使用的語法10.255.255.255指定了這個確切的 IP 位址,而不是整個10.* 位址範圍。

的文檔 Netsh 介面 portproxy 指令 - 新增 v4tov4 說:

連接位址

指定IPv4位址要連接到的。可接受的值為 IP 位址、電腦 NetBIOS 名稱或電腦 DNS 名稱。如果未指定位址,則預設為本機。

監聽地址

指定IPv4位址聽什麼。可接受的值為 IP 位址、電腦 NetBIOS 名稱或電腦 DNS 名稱。如果未指定位址,則預設為本機。

如果您想重新建立連接埠代理,您需要先刪除您使用建立的連接埠代理 刪除 v4tov4

相關內容