Настройка проброса портов (Port Forwarding) на роутере часто теряет работоспособность при активации VPN-клиента, встроенного в прошивку устройства. Основная причина заключается в перенаправлении всего входящего и исходящего трафика через виртуальный интерфейс туннеля, из-за чего пакеты, приходящие на внешний IP-адрес провайдера, игнорируются или не находят обратного маршрута. Для восстановления доступа требуется настройка политик маршрутизации (Policy Based Routing), разделяющая трафик внешнего порта и VPN-туннеля.
Конфликт маршрутизации при работе VPN
Когда VPN-клиент на роутере активен, таблица маршрутизации меняется: маршрут по умолчанию (default gateway) переключается на шлюз VPN-провайдера. Входящий запрос, поступивший на физический WAN-интерфейс, обрабатывается правилами NAT, но при попытке отправить ответ система направляет пакеты в VPN-туннель. Удаленный клиент не получает ответа, так как пакеты уходят с IP-адреса VPN-сервера, а не с публичного IP вашего провайдера, что приводит к разрыву соединения.
Использование Policy Based Routing для разделения трафика
Решение проблемы заключается в создании правил PBR, которые принудительно направляют трафик от конкретного локального устройства или порта обратно через WAN-интерфейс провайдера, минуя VPN. В современных прошивках (например, OpenWrt, AsusWRT-Merlin или Keenetic) это реализуется через создание отдельной таблицы маршрутизации.
Настройка исключений для портов
- Определите номер порта, который необходимо пробросить, и локальный IP-адрес целевого устройства.
- Создайте правило в Firewall, которое маркирует пакеты, приходящие на данный порт.
- В настройках маршрутизации создайте правило для маркированного трафика, указывающее шлюзом физический WAN-интерфейс провайдера (ISP Gateway).
- Убедитесь, что правила NAT (Masquerade) для физического WAN-интерфейса активны для данного трафика.
Использование PBR требует статической настройки IP-адреса на целевом устройстве в локальной сети, чтобы правила маршрутизации не сбрасывались при смене адреса по DHCP.
Проверка доступности внешнего IP-адреса
Прежде чем приступать к отладке правил роутера, убедитесь, что ваш провайдер предоставляет публичный (белый) IP-адрес. Если адрес, отображаемый в статусе WAN-интерфейса, относится к диапазонам 10.x.x.x, 172.16.x.x–172.31.x.x или 192.168.x.x, проброс портов не сработает вне зависимости от настроек VPN. В таких ситуациях необходимо заказывать услугу выделенного публичного IP у провайдера.
Типичные ошибки при настройке правил Firewall
- Отсутствие правила обратного маршрута: Пакеты доходят до сервера, но ответ уходит в туннель. Проверьте логи роутера на наличие отброшенных пакетов (drop) с пометкой VPN-интерфейса.
- Неправильный порядок цепочек (Chain order): Правила проброса портов должны обрабатываться до правил перенаправления трафика в VPN. Убедитесь, что правило DNAT стоит выше правил, отвечающих за VPN-туннель.
- MTU/MSS Clamping: При инкапсуляции трафика в VPN размер пакета может превышать допустимый MTU, что приводит к потере фрагментированных пакетов. Установите значение MSS Clamping на уровне 1360–1400 байт для VPN-интерфейса.
Диагностика через консоль
Для проверки прохождения трафика используйте утилиту tcpdump на роутере. Запустите мониторинг на WAN-интерфейсе: tcpdump -i eth0 port [номер_порта]. Если при попытке подключения извне вы видите входящие пакеты, но не видите ответных, значит проблема кроется в таблице маршрутизации или отсутствии обратного пути через физический шлюз.
