LINUX.ORG.RU
ФорумAdmin

пробросить порт


0

0

Мне нужно пробросить порт из внешней сети (интерфейс ppp0) во внутреннюю (интерфейс eth1). Сейчас делаю так:

sudo iptables -t nat -A PREROUTING -p tcp -d EXTERNAL_IP --dport PORT_NUM -j DNAT --to-destination INTERNAL_IP:PORT_NUM

sudo iptables -A FORWARD -i ppp0 -d INTERNAL_IP -p tcp --dport PORT -j ACCEPT

Тут соответственно: EXTERNAL_IP - мой IP во внешке, на итерфейсе ppp0, INTERNAL_IP - IP на который пробрасываем порт, PORT_NUM - номер порта который пробрасываем.

Это все конечно хорошо, но внешний IP у меня динамический, поэтому очень хочется сделать такое правило, которому не приходилось бы указывать EXTERNAL_IP, а указать, например, интерфейс ppp0. Подскажите пожалуйста, как сделать такое правило?

Заранее благодарен.

iptables -I PREROUTING -t nat -p tcp --dport PORT_NUM -i ppp0 -j DNAT --to DEST_INT_IP
iptables -I FORWARD -p tcp -d DEST_INT_IP --dport PORT_NUM -i ppp0 -o br0 -j ACCEPT
iptables -I FORWARD -p tcp -s DEST_INT_IP --sport PORT_NUM -i br0 -o ppp0 -j ACCEPT

br0 - внутренний интерфейс (мост), для вас eth1 будет
ppp0 - внешний интерфейс
PORT_NUM - номер порта
DEST_INT_IP - айпи машины в локальной сети
-p tcp заменить на -p udp если нужен udp

Sylvia ★★★★★
()
Ответ на: комментарий от Goganchic

Я делаю проще. После поднятия ppp интерфейса прописываются правила iptables из /etc/ppp/ip-up.d/

gruy ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.