я делал так:int_if - смотрит в сеть
ext_if - смотрит в интернет
#cat /etc/pf.conf
lan_net="192.168.1.0/24"
#нужно перенаправить порт 8080 на внутренний сервак
# forward from Internet to LanNet
rdr on $ext_if proto tcp from any to any port 8080 -> 192.168.1.х port 8080
# forward from LanNet to LanNet
rdr on $int_if proto tcp from $lan_net to $ext_if port 8080 -> 192.168.1.х port 8080
## NAT
no nat on $int_if proto tcp from $int_if to $lan_net
## NAT for forward from LanNet to LanNet
# forward from LanNet to LanNet
nat on $int_if proto tcp from $lan_net to 192.168.1.х port 8080 -> $int_if
# main NAT
nat on $ext_if inet from $lan_net to any -> $ext_if
#####
ну и далее прочие правила, которые на редирект не влияют.
сделано на OpenBSD, но на Фре тоже должно работать точно так же.