Добрый день. Дистрибутивы Arch, хотя это и неважно.
На серваке получаю интернет от провайдера по DHCP, т.е. просто воткнул кабель в сетевуху, запустил команду dhcpcd и интернет сразу есть. Сетевуха, смотрящая в инете называется internet0.
В локалку смотрит сетевуха eth0. Также повесил на нее свой dhcp-сервер (надоело на новых компах прописывать ip), но это не важно.
Интернет раздаю так: net.ipv4.ip_forward=1 (где-то там в файле прописан и работает)
iptables -t nat -A POSTROUTING -o internet0 -j MASQUERADE
Порты для DC++ пробрасываю так:
iptables -t nat -A PREROUTING -s 0/0 -d <ip_в_сетевухе_internet0_полученный_от_провайдера> -p tcp -m tcp --dport 10000 -j DNAT --to-destination <ip_одного_локального_компа>:10000
iptables -t nat -A PREROUTING -s 0/0 -d <ip_в_сетевухе_internet0_полученный_от_провайдера> -p udp -m udp --dport 10001 -j DNAT --to-destination <ip_одного_локального_компа>:10001
Все, в настройках сервера в iptables только эти 3 правила, других нету.
В настройках DC++ клиента порты 10000 для tcp, 10001 для udp и <ip_в_сетевухе_internet0_полученный_от_провайдера> прописаны.
Данная схема успешно работает, когда ip не меняется, т.е. до перезагрузки раздающего инет сервера или других аномалий, когда провайдер решил сменить мне ip. ------------------------------
Повторюсь. У меня ip от провайдера динамический. Пожалуйста помогите переделать настройки, чтобы при смене <ip_в_сетевухе_internet0_полученный_от_провайдера> порты успешно пробрасывались. В идеале, чтобы это работало, если мы не знаем <ip_одного_локального_компа>