Проброс портов в pfSense - настройка Port Forward NAT
Проброс портов (port forwarding) - основной механизм предоставления доступа из внешней сети к сервисам на внутренних хостах. При получении пакета на WAN-интерфейс pfSense проверяет таблицу правил проброса и при совпадении заменяет адрес назначения на IP-адрес внутреннего сервера. Это разновидность DNAT (Destination NAT) - трансляции адреса назначения.
Проброс портов применяется для публикации веб-серверов, почтовых серверов, игровых серверов, систем видеонаблюдения и любых других сервисов, требующих входящих подключений из интернета. Каждое правило проброса определяет, какой входящий трафик перенаправлять и на какой внутренний хост.
Предварительные требования
Перед настройкой проброса портов необходимо убедиться в выполнении следующих условий:
- Статический или предсказуемый WAN-адрес. Проброс работает по адресу назначения на WAN-интерфейсе. При динамическом WAN-адресе (DHCP от провайдера) проброс функционирует, но при смене адреса внешние клиенты теряют доступ. В таких случаях следует настроить Dynamic DNS (DynDNS) для автоматического обновления DNS-записи.
- Статический IP-адрес целевого сервера. Внутренний сервер, на который перенаправляется трафик, должен иметь фиксированный IP-адрес. Допускается использование DHCP-резервации (static mapping) вместо ручной настройки IP на сервере.
- Сервис запущен и слушает порт. Целевой сервис должен быть запущен и привязан к ожидаемому порту. Локальный файрвол сервера (iptables, Windows Firewall) не должен блокировать входящие соединения.
- Порт не заблокирован провайдером. Некоторые провайдеры блокируют входящие соединения на стандартные порты (80, 443, 25). Следует уточнить у провайдера наличие ограничений или использовать нестандартные порты.
Создание проброса порта
Правила проброса портов настраиваются в разделе Firewall > NAT > Port Forward. Для создания нового правила следует нажать кнопку Add (стрелка вверх - добавление в начало списка, стрелка вниз - в конец).

Рис. 1. Список правил проброса портов (Firewall > NAT > Port Forward)
Параметры правила проброса
Форма создания правила проброса содержит следующие поля:

Рис. 2. Форма редактирования правила проброса порта
Interface - интерфейс, на котором перехватывается входящий трафик. В большинстве случаев указывается WAN. При наличии нескольких WAN-интерфейсов необходимо создавать отдельное правило для каждого. Для проброса между внутренними сетями (например, DMZ -> LAN) указывается соответствующий внутренний интерфейс.
Protocol - протокол транспортного уровня. Доступные варианты:
| Протокол | Применение |
|---|---|
| TCP | Веб-серверы, SSH, почта, большинство сервисов |
| UDP | DNS, VoIP (SIP/RTP), игровые серверы |
| TCP/UDP | Сервисы, использующие оба протокола (DNS, некоторые игры) |
| SCTP | Специализированные протоколы сигнализации (SS7, Diameter) |
| GRE | Туннели GRE (PPTP passthrough) |
| ESP | IPsec (при необходимости проброса ESP без использования встроенного IPsec) |
Destination - адрес назначения во входящем пакете, по которому выполняется сопоставление. Типичные значения:
- WAN address - основной адрес WAN-интерфейса. Используется в подавляющем большинстве случаев.
- Virtual IP (VIP) - виртуальный IP-адрес, настроенный на WAN-интерфейсе. Используется при наличии нескольких публичных адресов.
- Any - любой адрес назначения. Применяется в редких сценариях (например, перехват DNS-запросов).
Destination port range - порт или диапазон портов назначения. Можно указать один порт, именованный порт (HTTP, HTTPS, SSH) или диапазон (From/To). При пробросе диапазона портов размер диапазона на стороне назначения и перенаправления должен совпадать.
Redirect target IP - IP-адрес внутреннего сервера, на который перенаправляется трафик. Поддерживается указание одного адреса или алиаса. При использовании алиаса pfSense выполняет балансировку нагрузки между адресами алиаса (round-robin).
Redirect target port - порт на внутреннем сервере. Может отличаться от порта назначения. Например, входящий трафик на WAN:8080 можно перенаправить на внутренний сервер 192.168.1.10:80. При пробросе диапазона портов указывается начальный порт целевого диапазона.
Description - текстовое описание правила. Рекомендуется указывать назначение проброса и имя целевого сервера (например, “Web server - HTTP/HTTPS to srv-web-01”).
No XMLRPC Sync - отключение синхронизации правила между нодами в кластере высокой доступности (CARP). Применяется, когда правило специфично для одной ноды.
NAT Reflection - режим отражения NAT для данного правила. Подробнее рассмотрено в разделе NAT Reflection .
Filter Rule Association - связь с правилом файрвола. Подробнее рассмотрено в разделе Связь с правилами файрвола .
Пример: проброс HTTPS на веб-сервер
Задача: обеспечить доступ из интернета к веб-серверу 192.168.1.10 по HTTPS (порт 443).
| Параметр | Значение |
|---|---|
| Interface | WAN |
| Protocol | TCP |
| Destination | WAN address |
| Destination port range | HTTPS (443) |
| Redirect target IP | 192.168.1.10 |
| Redirect target port | 443 |
| Description | HTTPS to srv-web-01 |
| Filter Rule Association | Add associated filter rule |
После сохранения правила необходимо нажать Apply Changes для применения конфигурации.
Связь с правилами файрвола
Проброс порта выполняет только трансляцию адреса назначения. Для фактического пропуска трафика необходимо правило файрвола, разрешающее соединение. pfSense предлагает четыре варианта связи с правилом файрвола:
Add associated filter rule
pfSense автоматически создаёт связанное правило файрвола на интерфейсе, указанном в правиле проброса. При изменении параметров проброса (порт, протокол, адрес назначения) связанное правило обновляется автоматически. Это рекомендуемый вариант для большинства случаев.
Связанное правило отображается на вкладке правил соответствующего интерфейса с пометкой (NAT) и иконкой якоря. Редактирование порта и адреса назначения в связанном правиле заблокировано - эти параметры управляются правилом проброса.
Add unassociated filter rule
pfSense создаёт отдельное правило файрвола, не привязанное к правилу проброса. Изменения в правиле проброса не отражаются на правиле файрвола - его необходимо обновлять вручную. Используется, когда требуется полный контроль над параметрами правила файрвола (например, ограничение по источнику).
Pass
Трафик пропускается без создания отдельного правила файрвола. pfSense использует ключевое слово pass в правиле pf, совмещая трансляцию и фильтрацию в одной записи. Этот режим работает только при наличии одного шлюза - при нескольких WAN-интерфейсах с policy routing результат непредсказуем.
Внимание:
Режим Pass не позволяет ограничить доступ по IP-адресу источника. Весь трафик, совпавший с правилом проброса, будет пропущен. Для ограничения доступа следует использовать Add associated filter rule или Add unassociated filter rule.
None
Правило файрвола не создаётся. Администратор должен вручную создать правило на соответствующей вкладке интерфейса. Используется в сложных сценариях, когда одно правило файрвола обслуживает несколько правил проброса.
Типичные ошибки
- Правило проброса создано, но правило файрвола отсутствует. При выборе None и отсутствии ручного правила трафик блокируется.
- Связанное правило перемещено вручную. Связанные правила привязаны к правилу проброса по ID. Перемещение или удаление связанного правила нарушает привязку.
- Дублирование правил файрвола. При переключении между типами ассоциации старое правило может остаться. Следует проверить вкладку правил интерфейса на наличие дубликатов.
NAT Reflection
NAT reflection (NAT hairpin, loopback NAT) позволяет хостам внутренней сети обращаться к проброшенным сервисам по внешнему (публичному) адресу. Без NAT reflection клиент из LAN, обращающийся к публичному IP, не получит ответ, поскольку пакет от внутреннего сервера вернётся напрямую, минуя трансляцию.
Настройка глобального режима NAT reflection выполняется в System > Advanced > Firewall & NAT в секции Network Address Translation.

Рис. 3. Глобальные настройки NAT reflection (System > Advanced > Firewall & NAT)
Режимы NAT reflection
pfSense поддерживает три режима NAT reflection:
Disable - NAT reflection отключено. Внутренние клиенты не могут обращаться к проброшенным сервисам по внешнему адресу. Для доступа необходимо использовать внутренний IP-адрес сервера или настроить split DNS (разделённый DNS).
NAT + Proxy - pfSense выступает прокси-сервером для отражённых соединений. Пакет от клиента LAN перехватывается, pfSense устанавливает новое соединение к целевому серверу от своего имени и ретранслирует данные. Преимущества:
- Работает без дополнительных маршрутов.
- Целевой сервер видит IP-адрес pfSense как источник, что упрощает маршрутизацию ответа.
- Поддерживает проброс на порт, отличный от входящего.
Недостатки:
- Увеличивает нагрузку на pfSense (каждое соединение обрабатывается в пользовательском пространстве).
- Не поддерживает UDP.
- Ограниченная производительность при большом числе одновременных соединений.
Pure NAT - pfSense выполняет трансляцию на уровне ядра без прокси. Пакет от клиента LAN проходит через правила NAT аналогично внешнему трафику. Преимущества:
- Высокая производительность (обработка на уровне pf).
- Поддерживает TCP и UDP.
- Поддерживает диапазоны портов.
Недостатки:
- Требует включения опции Enable automatic outbound NAT for Reflection в настройках NAT reflection.
- Целевой сервер видит реальный IP-адрес клиента LAN. Если сервер отвечает напрямую клиенту (минуя pfSense), ответ отбрасывается, поскольку клиент ожидает ответ от публичного IP. Решение - добавить маршрут на сервере или включить автоматический outbound NAT для reflection.
Выбор режима
| Критерий | NAT + Proxy | Pure NAT |
|---|---|---|
| Протокол | Только TCP | TCP и UDP |
| Производительность | Ниже (userspace proxy) | Выше (kernel-level pf) |
| Настройка | Минимальная | Требуется automatic outbound NAT |
| Видимость клиента | Сервер видит IP pfSense | Сервер видит IP клиента |
| Диапазоны портов | Не поддерживает | Поддерживает |
Для большинства инсталляций рекомендуется режим Pure NAT с включённой опцией Enable automatic outbound NAT for Reflection. Режим NAT + Proxy следует применять только при невозможности использования Pure NAT (например, при сложной маршрутизации, исключающей корректную обработку на уровне ядра).
Переопределение на уровне правила
Каждое правило проброса содержит поле NAT Reflection, позволяющее переопределить глобальный режим. Доступные значения:
- Use system default - используется глобальная настройка.
- Enable (NAT + Proxy) - принудительно включает NAT + Proxy для данного правила.
- Enable (Pure NAT) - принудительно включает Pure NAT.
- Disable - отключает NAT reflection для данного правила.
Переопределение полезно, когда для одного сервиса требуется режим, отличный от глобального (например, глобально включён Pure NAT, но для конкретного TCP-сервиса необходим NAT + Proxy).
Альтернатива: split DNS
Альтернативой NAT reflection является split DNS (разделённый DNS, split-horizon DNS). При этом подходе внутренний DNS-сервер (DNS Resolver или DNS Forwarder в pfSense) возвращает внутренний IP-адрес сервера для запросов из LAN, а внешний DNS - публичный IP.
Split DNS предпочтительнее NAT reflection по следующим причинам:
- Отсутствие дополнительной нагрузки на pfSense.
- Трафик между клиентом и сервером не проходит через файрвол (при нахождении в одной подсети).
- Корректная работа с любыми протоколами.
Настройка split DNS в pfSense выполняется через Services > DNS Resolver > Host Overrides.
Продвинутые сценарии
Проброс диапазона портов
При необходимости проброса диапазона портов (например, для FTP passive mode, RTP или игровых серверов) указывается диапазон в поле Destination port range и начальный порт в поле Redirect target port. Размер диапазона определяется полем Destination port range - размер целевого диапазона вычисляется автоматически.
Пример: проброс портов 10000-10100 на внутренний сервер 192.168.1.20, начиная с порта 10000.
| Параметр | Значение |
|---|---|
| Destination port range | 10000 - 10100 |
| Redirect target IP | 192.168.1.20 |
| Redirect target port | 10000 |
Перенаправление на другой порт
Входящий порт не обязан совпадать с целевым. Это позволяет скрыть стандартные порты или разместить несколько однотипных сервисов за одним публичным адресом.
Пример: публикация двух веб-серверов по одному WAN-адресу.
| Правило | WAN порт | Целевой IP | Целевой порт |
|---|---|---|---|
| Web server 1 | 443 | 192.168.1.10 | 443 |
| Web server 2 | 8443 | 192.168.1.11 | 443 |
Для публикации нескольких HTTPS-сервисов на стандартном порту 443 рекомендуется использовать reverse proxy (HAProxy, доступен как пакет pfSense) вместо проброса портов.
Множественные WAN-интерфейсы
При наличии нескольких WAN-интерфейсов правила проброса создаются отдельно для каждого интерфейса. Если один и тот же сервис должен быть доступен через все WAN-интерфейсы, необходимо создать отдельное правило для каждого WAN с указанием соответствующего интерфейса и адреса назначения.
При использовании Virtual IP (CARP, IP Alias, Other) в качестве адреса назначения правило проброса привязывается к интерфейсу, на котором настроен VIP.
Проброс VoIP/SIP
Проброс SIP-трафика требует особого внимания из-за особенностей протокола:
- SIP использует порт 5060 (TCP/UDP) для сигнализации и динамические порты (RTP, обычно 10000-20000) для медиа.
- Необходимо пробросить как порт SIP, так и диапазон RTP.
- При наличии SIP ALG (Application Layer Gateway) в pfSense или на вышестоящем оборудовании его следует отключить, поскольку ALG часто нарушает работу SIP.
- Рекомендуется настроить на SIP-устройстве явный STUN-сервер и корректный External IP.
Пример набора правил для SIP-сервера 192.168.1.30:
| Правило | Протокол | WAN порт | Целевой порт |
|---|---|---|---|
| SIP signaling | UDP | 5060 | 5060 |
| RTP media | UDP | 10000-20000 | 10000 |
No RDR (NOT)
Опция No RDR (NOT) в правиле проброса инвертирует действие: вместо перенаправления pfSense явно запрещает перенаправление для совпавших пакетов. Это применяется для создания исключений - например, чтобы трафик от определённого источника не перенаправлялся, а обрабатывался локально.
Устранение неполадок
При неработающем пробросе портов следует последовательно проверить каждый элемент цепочки.
Контрольный список диагностики
Провайдер не блокирует порт? Некоторые провайдеры блокируют входящие соединения на порты 25, 80, 443. Проверить можно внешним сканером портов (при обращении напрямую на WAN-адрес) или уточнить у провайдера. При блокировке использовать нестандартный внешний порт.
Правило проброса существует и активно? Перейти в Firewall > NAT > Port Forward и убедиться, что правило присутствует, не отключено (отключённые правила отображаются серым) и параметры корректны.
Правило файрвола существует? Перейти на вкладку правил соответствующего интерфейса (обычно WAN) и убедиться, что существует правило, разрешающее трафик к целевому IP и порту. При использовании Add associated filter rule правило отмечено иконкой якоря.
Целевой сервер запущен и слушает порт? Подключиться к серверу из LAN напрямую по внутреннему IP и целевому порту. Если подключение не устанавливается - проблема на стороне сервера, а не pfSense.
Локальный файрвол сервера не блокирует трафик? Windows Firewall, iptables, firewalld или другой хостовой файрвол может блокировать входящие соединения. Временно отключить для диагностики или создать разрешающее правило.
NAT reflection настроен (при тестировании из LAN)? Тестирование проброса из внутренней сети работает только при включённом NAT reflection или настроенном split DNS. Для диагностики рекомендуется тестировать с внешнего устройства (мобильный телефон через сотовую сеть).
Нет конфликтов с другими правилами? Правило проброса на порт, совпадающий с локальным сервисом pfSense (например, порт 443 - веб-интерфейс), перехватит трафик. Убедиться, что порт управления pfSense не совпадает с пробрасываемым портом, или перенести веб-интерфейс на другой порт (System > Advanced > Admin Access).
Маршрут по умолчанию на целевом сервере указывает на pfSense? Если шлюз по умолчанию целевого сервера - не pfSense, ответные пакеты уходят в другой маршрутизатор и не проходят обратную трансляцию NAT. Убедиться, что default gateway сервера - IP-адрес pfSense на соответствующем интерфейсе.
Диагностика через журналы
Журнал файрвола (Status > System Logs > Firewall) фиксирует заблокированные пакеты. Если входящий пакет заблокирован на WAN - отсутствует или некорректно правило файрвола. Фильтрация журнала по WAN-адресу и порту назначения позволяет быстро обнаружить проблему.
Для расширенной диагностики используется Diagnostics > Packet Capture: захват трафика на WAN-интерфейсе по целевому порту покажет, поступают ли пакеты на pfSense. Захват на LAN-интерфейсе покажет, передаётся ли трафик после трансляции.
Диагностика через командную строку
# Check NAT state table for active translations
pfctl -s state | grep <target_port>
# View NAT rules loaded in pf
pfctl -s nat
# Verify the port forward rule is present
pfctl -s nat | grep rdrМиграция с других платформ
Cisco ASA
В Cisco ASA входящий NAT настраивается командой object + nat:
object network WEB-SERVER
host 192.168.1.10
nat (inside,outside) static interface service tcp 443 443Эквивалент в pfSense: правило проброса порта с Interface = WAN, Destination = WAN address, Destination port = 443, Redirect target IP = 192.168.1.10, Redirect target port = 443.
В ASA 8.2 и ранее использовался синтаксис static (inside,outside). Логика трансляции при миграции не меняется, меняется только способ задания.
FortiGate
FortiGate использует Virtual IP (VIP) для входящего NAT:
config firewall vip
edit "WEB-SERVER"
set extintf "wan1"
set mappedip "192.168.1.10"
set portforward enable
set extport 443
set mappedport 443
next
endВ FortiGate VIP и policy - раздельные объекты. В pfSense правило проброса может автоматически создать связанное правило файрвола (Add associated filter rule), что упрощает конфигурацию. При миграции следует перенести как VIP (в правило проброса), так и policy (в правило файрвола).
MikroTik RouterOS
MikroTik использует dst-nat в таблице NAT:
/ip firewall nat add chain=dstnat dst-address=<WAN_IP> protocol=tcp \
dst-port=443 action=dst-nat to-addresses=192.168.1.10 to-ports=443В MikroTik правило NAT и правило файрвола (forward chain) - независимые сущности. При миграции на pfSense следует учитывать, что pfSense может автоматически связать правило проброса с правилом файрвола.
Дополнительное различие: в MikroTik правила NAT обрабатываются в chain dstnat до маршрутизации, аналогично pfSense. Однако в MikroTik политика по умолчанию - Accept, тогда как в pfSense - Deny. При миграции необходимо убедиться, что все необходимые разрешающие правила файрвола созданы.
Связанные разделы
- NAT в pfSense - обзор NAT, порядок обработки трансляций, типы NAT
- Правила файрвола - создание и управление правилами фильтрации, порядок обработки
- Алиасы файрвола - группировка адресов и портов для использования в правилах проброса
- VPN в pfSense - настройка VPN, требующая корректного NAT (static port, NAT exemption)