Как выполнить DNAT-пересылку всего IP-трафика в Windows 10 с IP1 на IP2?

На моем локальном компьютере я хочу настроить (веб-) сервер, который получает данные, которые отправляются (через http/https) на IP 65.55.44.109 (vortex.data.micorosoft.com).

Для этого мне нужно перенаправить весь IP-трафик на 65.55.44.109 в 127.0.0.1 на МОЕЙ машине, чтобы я мог сделать запись в файле hosts

65.55.44.109  somedomain.com  

а затем откройте браузер на этом компьютере и введите http://somedomain.com/ и получите веб-страницу с веб-сервера по адресу 127.0.0.1.
Теперь, конечно, это будет работать только на машине с записью в файле hosts (на моей машине).

В 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, но все порты будут лучше.
НЕТ loopback или non-loopback-интерфейс с IP 65.55.44.109 может быть создан на хост-машине.
Это должно быть сделано только через DNAT.
Хост-машина не имеет сетевого интерфейса с IP 65.55.44.109, только 192.168.xx
Просто установив файл hosts в

127.0.0.1  somedomain.com  

также недостаточно, потому что тогда любой вызов для dns-address-resolution somedomain.com даст IP 127.0.0.1 вместо 65.55.44.109

1 ответ

Возможно, это старый вопрос, но здесь нет ответов и 2 тыс. просмотров.

Причина по которой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. В списке элементов/протоколов выберите Протокол Интернета версии 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, которую вы цитировали выше, и она будет работать.

Удачного спуфинга.

Другие вопросы по тегам