Как выполнить 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.
Но вы можете добавить его, если вы согласны, чтобы весь ваш трафик направлялся на него независимо от порта.
Нажмите Win+R -> ncpa.cpl.
Щелкните правой кнопкой мыши сетевой адаптер LAN/WAN и выберите свойства.
В списке элементов/протоколов выберите Протокол Интернета версии 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, которую вы цитировали выше, и она будет работать.
Удачного спуфинга.