Перенаправление пакетов в Windows

в настоящее время мы запускаем windows на всех наших машинах из-за ограничения программного обеспечения.

однако в этом случае нам нужно перенаправить определенные пакеты, которые входят в IP и порт, на другой порт (тот же IP). У нас есть программное обеспечение, прослушивающее "Прокси-порт".

это достижимо с IPTables на linux, делая что-то подобное:

iptables -t nat -I PREROUTING -p udp -d <DSTIP> --dport <DSTPORT> -m u32 --u32 '0>>22&0x3C@8=0xFFFFFFFF && 0>>22&0x3C@12=0x54536F75 && 0>>22&0x3C@16=0x72636520 && 0>>22&0x3C@20=0x456E6769 && 0>>22&0x3C@24=0x6E652051 && 0>>22&0x3C@28=0x75657279' -j REDIRECT --to-port <REDIRECT PORT>

это отлично работает в linux и перенаправляет определенные пакеты на наше прокси-программное обеспечение, однако это вообще можно ли сделать что-то подобное на windows без необходимости получать выделенную машину перед нашими машинами windows?

Я думал написать что-то с pcap.net но я предполагаю, что это будет прямое чтение из NIC, а не windows?

2 ответов


С MSDN:

команды netsh - это утилита сценариев командной строки, которая позволяет вам локально или удаленно отображать или изменять сетевую конфигурацию компьютер, который в настоящее время работает.

вы можете перенаправить соединения, поступающие на любой порт, на другой локальный (или удаленный) порт с помощью команды:

netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport

также, как указано в это так пост, команды netsh - это хорошая замена для iptabes на Windows.


команда

netsh interface portproxy ...

проксирование портов, но не пересылка пакетов. Главное отличие -

  • performace намного хуже, чем iptables (f.e. см.https://plus.google.com / +OlafMonien/посты/fsjUjropYeR)
  • исходный IP-адрес изменяется на localhost (127.0.0.1 или ::1 зависит от версии IP), вы теряете исходный IP-адрес источника запроса.

мы использовали этот метод для переадресации портов, но после этого выводы нам пришлось использовать дополнительные правила сетевого брандмауэра, чтобы избежать использование команды netsh.