Была задача. Машина в локалке на нее рредирект портов при обращении на один из 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 )