Была задача. Машина в локалке на нее рредирект портов при обращении на один из IP адресов внешнего гейтвея

  • Внешний IP 1.2.3.4
  • Внутренний IP машины в локалке 5.6.7.8

Файл с правилами для чтения pf.conf

# Внешний интерфейс
ext="bge1"

# Это внутренний IP
from="5.6.7.8"

# Это внешний IP на который будут приходить запросы
extip="1.2.3.4"

# Перечисление портов, при обращении к которым на внешний IP будет происходить редирект
devports="{53, 10000, ftp, 1723}"

# Нормализация траффика
scrub in all

#Правило для nat
nat on $ext from $from -> $extip

#Собственно сам редирект
rdr on $ext proto {tcp, udp} from any to $extip port $devports -> $from

# Еще вариант, если порт надо с какоего-либо внешнего перекинуть на внутренний
# Тут получается что если кто-то из вне обращается на внешний IP на порт 12345
# будет переадресован на внутренний IP на порт 54321

rdr on $ext proto {tcp, udp} from any to $extip port 12345 -> $from 54321



Вуаля. Работает
Не забываем о том, что на внешнем интерфейсе должен быть данный IP )