Вот озадачился недавно как пропустить торренты через PF и прокси сервер. Т.е. стоит FreeBSD с прокси и firewall, за ней серая сетка, которую фряха натит. Подробно все расписывать не буду, скорее краткая заметка для себя :) , но и тем, кто уже настроил примерно такую же конфигурацию будет полезно.

В конфиге прокси squid добавляем IP компьютера с торрентами.

ee /usr/local/etc/squid/squid.conf

############## ALLOW TORRENT
acl torrent src 10.1.10.153
http_access allow torrent

Правим firewall
ee /etc/pf.conf

В переменных добавляем

################ allow torrent
# Torrent NAT Forward port какой порт использует utorrent
torrentPort = "31177"
# Адрес машины в локальнйо сети на которой работает utorrent
tor_server = "10.1.10.153"

После правил NAT
# Редирект на машину с торрентом по порту для торрента.
rdr on $ext_if proto { tcp, udp } from any to any port $torrentPort -> $tor_server

И в списке правил добавляем
# Allow torrent
pass in quick on $ext_if inet proto { tcp, udp } from any to $tor_server port $torrentPort flags S/SA synproxy state
pass out quick on $ext_if proto { udp, tcp } from $tor_server port $torrentPort flags S/SA keep state

Сохраняем, перезапускаем PF

pfctl -f /etc/pf.conf

С фряхой все. Теперь на компе, где торренты крутятся, прописываем в качестве шлюза нашу фряху. Если есть подстети, то к ним прописываем статические маршруты при помощи route -p ADD

В utorrent в настройках Bittorrent IP/Hostname указываем внешний адрес нашего шлюза с FreeBSD.

Ах да, комп с торрентом и интернет шлюз должны быть в одной подсети, так как шлюз по умолчанию должен быть из той же подсети. что и IP адрес компьютера.

Надеюсь кому то эта шпаргалка сэкономит время.