如何 DNAT 將 Windows 10 上的所有 IP 流量從 IP1 轉發到 IP2?
在我的本地機器上,我想設置一個(網路)伺服器來接收(通過 http/https)發送到 IP 65.55.44.109(vortex.data.micorosoft.com)的數據。
為此,我需要將所有 IP 流量轉發
65.55.44.109
到127.0.0.1
我的機器上,以便我可以創建 hosts-file-entry65.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。但是您可以添加它,只要您願意所有流量都流向它,而不管埠如何。
- 按 Win+R -> ncpa.cpl。
- 右鍵點擊您的 LAN/WAN 網路適配器並選擇屬性。
- 在項目/協議列表中,選擇*Internet 協議版本 4 (TCP/IPv4)*並點擊屬性。
- 確保 DHCP 已關閉。如果您需要確定要輸入的靜態設置,請從命令提示符執行
ipconfig /all
並記下介面的 IP 地址、子網遮罩、網關和 DNS 伺服器。在對話框中填充這些設置。- 點擊高級按鈕。
- 在 IP 地址列表下,點擊添加按鈕。
- 輸入所需的 IP 地址,例如65.55.44.109。
- 輸入子網遮罩255.255.255.255。
- 點擊確定和應用等。現在您已將 IP 地址綁定到您的介面,並且您的路由表將相應更新,因此到該地址的流量不會直接發送到網關。
完成這些步驟後,您有 2 個選項。您可以將您的應用綁定到所有地址*(0.0.0.0:0),也可以將其綁定到65.55.44.109*。這些選項意味著您不需要使用
netsh portproxy
. 否則,如果您的應用程序綁定嚴格在地址為127.0.0.1:80的環回介面上,那麼只需執行您上面引用的原始 netsh portproxy 命令,它將起作用。快樂的欺騙。