Решил я зафорвардить порт, чтоб еМул без LowId работал, но что-то не получается :(
Как я это понимаю в теории:
Нужно зафорвардить с внешнего интерфейса порт, на который настроен еМул (в моём случае это 4662). Возникает вопрос, а другие юзеры смогут тогда юзать ЕМул, ведь они тоже используют этот же порт? Не полетят ли их пакеты ко мне на машину?Вообщем добавил я в начало цепочки правил такое правило:
ipfw add 50 fwd myhost tcp from any to any 4662 via ${outif}
${outif} - внешний интерфейс, myhost - название моей машины, на которой юзается еМул.Но почему-то еМул дальше работает с LowId, хотя счётчик пакетов показывает, что пакеты пошли через это правило. В чём грабли тут?
>Возникает вопрос, а другие юзеры смогут тогда юзать
>ЕМул, ведь они тоже используют этот же порт? Не полетят ли
>их пакеты ко мне на машину?Можно разных мулов настроить на разные порты, тогда проблем не будет.
>Но почему-то еМул дальше работает с LowId, хотя счётчик пакетов показывает, что
>пакеты пошли через это правило. В чём грабли тут?Тут nat надо использовать, ipfw fwd не достаточно.
Пример дла 865-го порта:
/sbin/natd -dynamic -redirect_port tcp 192.168.0.55:865 865 -redirect_port udp 192.168.0.55:865 865 -n tun0Ну и ipfw подправить, чтоб на этот порт соединения пропускал.
>>Возникает вопрос, а другие юзеры смогут тогда юзать
>>ЕМул, ведь они тоже используют этот же порт? Не полетят ли
>>их пакеты ко мне на машину?
>
>Можно разных мулов настроить на разные порты, тогда проблем не будет.
>
>>Но почему-то еМул дальше работает с LowId, хотя счётчик пакетов показывает, что
>>пакеты пошли через это правило. В чём грабли тут?
>
>Тут nat надо использовать, ipfw fwd не достаточно.
>Пример дла 865-го порта:
>/sbin/natd -dynamic -redirect_port tcp 192.168.0.55:865 865 -redirect_port udp 192.168.0.55:865 865 -n tun0
>
>
>Ну и ipfw подправить, чтоб на этот порт соединения пропускал.А что-то он не даёт мне это сделать, пишет: Unable to bind socket. : Address already in use
>>>Возникает вопрос, а другие юзеры смогут тогда юзать
>>>ЕМул, ведь они тоже используют этот же порт? Не полетят ли
>>>их пакеты ко мне на машину?
>>
>>Можно разных мулов настроить на разные порты, тогда проблем не будет.
>>
>>>Но почему-то еМул дальше работает с LowId, хотя счётчик пакетов показывает, что
>>>пакеты пошли через это правило. В чём грабли тут?
>>
>>Тут nat надо использовать, ipfw fwd не достаточно.
>>Пример дла 865-го порта:
>>/sbin/natd -dynamic -redirect_port tcp 192.168.0.55:865 865 -redirect_port udp 192.168.0.55:865 865 -n tun0
>>
>>
>>Ну и ipfw подправить, чтоб на этот порт соединения пропускал.
>
>А что-то он не даёт мне это сделать, пишет: Unable to bind
>socket. : Address already in useНу значит у тебя уже запущен один natd
>>>>Возникает вопрос, а другие юзеры смогут тогда юзать
>>>>ЕМул, ведь они тоже используют этот же порт? Не полетят ли
>>>>их пакеты ко мне на машину?
>>>
>>>Можно разных мулов настроить на разные порты, тогда проблем не будет.
>>>
>>>>Но почему-то еМул дальше работает с LowId, хотя счётчик пакетов показывает, что
>>>>пакеты пошли через это правило. В чём грабли тут?
>>>
>>>Тут nat надо использовать, ipfw fwd не достаточно.
>>>Пример дла 865-го порта:
>>>/sbin/natd -dynamic -redirect_port tcp 192.168.0.55:865 865 -redirect_port udp 192.168.0.55:865 865 -n tun0
>>>
>>>
>>>Ну и ipfw подправить, чтоб на этот порт соединения пропускал.
>>
>>А что-то он не даёт мне это сделать, пишет: Unable to bind
>>socket. : Address already in use
>
>Ну значит у тебя уже запущен один natdКонечно запущен, у меня этот сервак сетку по нату раскидывает.. Или я должен его запустить с дополнительными параметрами форвардинга?
natd можно запускать с определенными параметрами вчастности с номером порта/usr/sbin/natd -p номер_порта
# man natd
>Или я должен его запустить с дополнительными параметрами форвардинга?Да
>>Или я должен его запустить с дополнительными параметрами форвардинга?
>
>ДаЧто-то в манах я не нашёл способа перезапустить нат. Пишут только о том, что можно править в конфигах rc.conf, но как его перезапустить не перезагружая сервер?
>Что-то в манах я не нашёл способа перезапустить нат. Пишут только о
>том, что можно править в конфигах rc.conf, но как его перезапустить
>не перезагружая сервер?Убить (умирает он несколько минут, подожди) и запустить заново.
>>Что-то в манах я не нашёл способа перезапустить нат. Пишут только о
>>том, что можно править в конфигах rc.conf, но как его перезапустить
>>не перезагружая сервер?
>
>Убить (умирает он несколько минут, подожди) и запустить заново.Всмысле убить процесс? А как посмотреть статус и вообще с какими параметрами он запущен?
>Всмысле убить процесс?kill :)
>А как посмотреть статус и вообще с какими параметрами
>он запущен?ps ax | grep natd
;-) Угу .. нашел братьев по разумувобщем имею FreeBSD 4.8 STABLE торчит во внешку (xl0),
имею Win2k, emule имеет серый ip (192,168,101,2).Запускаю НАТ:
/sbin/natd -f /etc/natd.mule.conf -n xl0Конфиг НАТа:
root@licey17:/etc# cat /etc/natd.mule.conf
use_sockets yes
same_ports yes
unregistered_only yes
redirect_port tcp 192.168.101.2:4662 4662
redirect_port udp 192.168.101.2:4672 4672
redirect_port tcp 192.168.101.2:4711 4711
redirect_port tcp 192.168.101.2:4444 4444
redirect_port udp 192.168.101.2:4444 4444в ipfw указываю так:
${fwcmd} add divert natd all from 192.168.101.2 to any out xmit xl0
${fwcmd} add divert natd tcp from any to ${внешний ip} 4662,4711,4444 in recv xl0
${fwcmd} add divert natd udp from any to ${внешний ip} 4711,4444 in recv ${natd_interface}блокирующих правил вроде как нет.
В итоге - входящие соединения на внешний ip на любой из вышеупомянутых портов не проходят ..
Более того на правилах
${fwcmd} add divert natd tcp from any to ${внешний ip} 4662,4711,4444 in recv xl0
${fwcmd} add divert natd udp from any to ${внешний ip} 4711,4444 in recv ${natd_interface}
вообще ниодного пакета не проходит