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

Однако эта конфигурация не работает - машина 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 можно снять или проверить; это просто должно присутствовать.

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