Windows

如何 DNAT 將 Windows 10 上的所有 IP 流量從 IP1 轉發到 IP2?

  • July 10, 2021

在我的本地機器上,我想設置一個(網路)伺服器來接收(通過 http/https)發送到 IP 65.55.44.109(vortex.data.micorosoft.com)的數據。

為此,我需要將所有 IP 流量轉發65.55.44.109127.0.0.1我的機器上,以便我可以創建 hosts-file-entry

65.55.44.109  somedomain.com  

然後在該機器上打開瀏覽器並輸入http://somedomain.com 並從位於 127.0.0.1 的網路伺服器獲取網頁。

當然,這僅適用於具有主機文件條目的機器(我的機器)。

在 Linux 上,我可以這樣做

iptables -t nat -A OUTPUT -d 65.55.44.109 -j DNAT --to-destination 127.0.0.1

(需要在重啟時重新添加)

在 Windows 上,我無法弄清楚如何做到這一點。我遇到的最接近的事情是

netsh interface portproxy add v4tov4 listenaddress=65.55.44.109 listenport=80 connectaddress=127.0.0.1 connectport=80

但這不起作用,我不知道為什麼。

有什麼我做錯了嗎?或者還有什麼我可以做的嗎?

我也讀過這個:

http
://www.itprotoday.com/virtualization/nat-forwarding-switch-windows-10-and-windows-server-2016 所以我認為以下可能有效

Add-NetNatStaticMapping -NatName NATnetwork -Protocol TCP -ExternalIPAddress 65.55.44.109 -InternalIPAddress 127.0.0.1 -InternalPort 80 -ExternalPort 80

但我只收到一個錯誤(無效的類名),無法通過Google找到更多資訊。

這可以在 Windows (Windows 10) 上以某種方式完成嗎?

注意:只轉發 80 埠就足夠了,但所有埠都會更好。不能在主機上創建 IP 65.55.44.109

環回或非環回介面。

它必須絕對通過DNAT-only完成。

主機沒有 IP 65.55.44.109 的網路介面,只有 192.168.xx

只是將主機文件設置為

127.0.0.1  somedomain.com  

也是不夠的,因為任何對 somedomain.com 的 dns-address-resolution 的呼叫都會產生 IP 127.0.0.1 而不是 65.55.44.109

這可能是一個舊的,但沒有答案和 2k 視圖。

netsh interface portproxy add v4tov4 listenaddress=65.55.44.109 listenport=80 connectaddress=127.0.0.1 connectport=80不起作用的原因是因為您實際上沒有介面65.55.44.109

但是您可以添加它,只要您願意所有流量都流向它,而不管埠如何。

  1. 按 Win+R -> ncpa.cpl。
  2. 右鍵點擊您的 LAN/WAN 網路適配器並選擇屬性。
  3. 在項目/協議列表中,選擇*Internet 協議版本 4 (TCP/IPv4)*並點擊屬性。
  4. 確保 DHCP 已關閉。如果您需要確定要輸入的靜態設置,請從命令提示符執行ipconfig /all並記下介面的 IP 地址、子網遮罩、網關和 DNS 伺服器。在對話框中填充這些設置。
  5. 點擊高級按鈕。
  6. 在 IP 地址列表下,點擊添加按鈕。
  7. 輸入所需的 IP 地址,例如65.55.44.109
  8. 輸入子網遮罩255.255.255.255
  9. 點擊確定和應用等。現在您已將 IP 地址綁定到您的介面,並且您的路由表將相應更新,因此到該地址的流量不會直接發送到網關。

完成這些步驟後,您有 2 個選項。您可以將您的應用綁定到所有地址*(0.0.0.0:0),也可以將其綁定到65.55.44.109*。這些選項意味著您不需要使用netsh portproxy. 否則,如果您的應用程序綁定嚴格在地址為127.0.0.1:80的環回介面上,那麼只需執行您上面引用的原始 netsh portproxy 命令,它將起作用。

快樂的欺騙。

引用自:https://serverfault.com/questions/914482