Windows RRAS для переадресации портов
У меня есть несколько машин Windows во внутренней сети.
Один из них (по адресу 192.168.164.14/24) имеет HTTP/HTTPS-сервер, прослушивающий обычные порты, 80 и 443 соответственно.
Из-за странного ограничения мне нужно, чтобы некоторые другие машины подключались к этому серверу через другой сервер (по адресу 192.168.160.25/24). Я хочу, чтобы это было полностью прозрачно; эта машина должна просто пересылать запросы на веб-сервер и ответы от веб-сервера обратно клиенту.
Похоже, что в Windows Server 2003 R2 есть способ сделать это встроенным - служба маршрутизации и удаленного доступа.
Я настроил RRAS с помощью мастера: Пользовательская конфигурация> NAT и Basic Firewall, маршрутизация по локальной сети.
Под "NAT / Basic Firewall" в инструменте RRAS я настроил (на NIC с 192.168.160.25/24):
- Публичный интерфейс подключен к Интернету
- Включить NAT на этом интерфейсе
- Услуги и порты
- Безопасный веб-сервер (HTTPS)
- Публичный адрес: на этом интерфейсе
- Протокол: TCP
- Входящий порт: 443
- Частный адрес: 192.168.164.14
- Исходящий порт: 443
- Веб-сервер (HTTP)
- Публичный адрес: на этом интерфейсе
- Протокол: TCP
- Входящий порт: 80
- Частный адрес: 192.168.164.14
- Исходящий порт: 80
- Безопасный веб-сервер (HTTPS)
Однако эта конфигурация не работает - машина 192.168.160.25 не будет принимать подключения через порты 80 или 443.
Альтернативная тактика с использованием netsh portproxy также не работает:
C:\>netsh interface portproxy show v4tov4
Listen on IPv4: Connect to IPv4:
Address Port Address Port
--------------- ---------- --------------- ----------
192.168.160.25 80 192.168.164.14 80
192.168.160.25 443 192.168.164.14 443
C:\>netstat /na | find "80"
C:\>netstat /na | find "443"
Что мне не хватает? Я не должен IPV6 установлен; Поиск в Google показывает, что это частая причина неудач. Любая помощь приветствуется.
1 ответ
Я смог решить эту проблему. Это в конечном итоге связано с IPv6.
Документ Microsoft, NETSH INTERFACE PORTPROXY, не работает при перенаправлении портов между адресами IPv4 и IPv4, описывает, как может произойти сбой проксирования портов, если IPV6MON.DLL не отображается в netsh interface portproxy show helper
вывод команды.
Однако в статье Microsoft не упоминается, что все равно может произойти сбой, если протокол IPv6 не установлен на используемых сетевых адаптерах.
Теперь я проверил на нескольких серверах Win2K3, что эти шаги решают проблему:
- Пуск> Выполнить> контроль ncpa.cpl
- Щелкните правой кнопкой мыши адаптер и выберите "Свойства".
- Нажмите кнопку "Установить", выберите "Протокол" и найдите элемент Microsoft TCP/IPv6.
- Закройте окно свойств адаптера
Элемент TCP/IPv6 можно снять или проверить; это просто должно присутствовать.