Проект переехал на новый домен!  [[ перейти ]]

ipnat - user interface to the NAT subsystem
(Здесь: Проброс ip внешнего клиента в локалку через серв.)

Трансляция адресов выполняется ядром системы.

По умолчанию в статье я использую закрытый фаирвол:
------------------------------------------------------------------
options	IPFIREWALL_DEFAULT_TO_ACCEPT	; allow ip from any to any
------------------------------------------------------------------

sh# ee /etc/ipnat.conf
-------------------------------------------------------------------
rdr xl0 217.145.93.85/32 port 1999 -> 192.168.0.7 port 1999 tcp/udp
-------------------------------------------------------------------
где...
xl0 - внешний интерфейс
217.145.93.85 - внешний ip

Запуск...
sh#/sbin/ipnat -FC -f /etc/ipnat.conf

Проверка:
sh# ipnat -l

1)
Для проброса в фаирволе должно быть правило:
ipfw add pass tcp from 217.145.93.85 to 192.168.0.7 1999 via xl0 keep-state

2)
!НО Вообще то для ipnat требуется в ядро: options IPFILTER
Если с этим собрать или просто подгрузить модуль, то правило будет вида:
ipfw add pass tcp from any to 217.145.93.85 1999 via xl0 keep-state

Второе более правильно!