Можно ли настроить замыкание на себя NAT на маршрутизаторе с динамическим IP с помощью iptables?

Я настроил домашний сервер Raspberry Pi, подключенный к моему маршрутизатору. У меня динамический IP. Я могу получить доступ к серверу в сети с помощью внутреннего IP (192.168.0.8). Я также могу получить доступ к серверу за пределами моей сети, используя общедоступный IP-адрес сети и noip.com домен, который я создал.

проблема в том, что я не могу ssh на сервер внутри сети, используя либо публичный IP-адрес, либо noip.com домен. Однако я, как ни странно, ориентироваться (хотя в моей сети) к noip.com домен в веб-браузере, и он дает мне страницу Apache по умолчанию" он работает " (это не связано с кэшированием, я проверил на нескольких устройствах).

после небольшого гугления я обнаружил, что мне нужно настроить замыкание на себя NAT на моем маршрутизаторе. Мой маршрутизатор (предоставленный провайдером), похоже, не поддерживает замыкание на себя NAT через их веб-интерфейс, т. е. via 192.168.0.1.

доступ Telnet к маршрутизатору, однако, включен. Он запускает busybox, и доступна команда 'iptables'.

I нашел команду, написанную клиентом на форуме моего интернет-провайдера:
http://www.skyuser.co.uk/forum/sky-router/47273-nat-loopback-dlink-2640s.html

Я использую putty для telnet, но вы можете использовать любой.

мой сервер 192.168.0.X (мой веб-сервер) wan ip равно 2.х.х.х (заменить
с вашим собственным) порт сервера 443 (https для меня, но вы можете этого хотеть
чтобы быть разными iptables вам нужно 2 команды:

iptables -t nat -A POSTROUTING -d 192.168.0.150 -s 192.168.0.0/24 -j SNAT --to-source 192.168.0.1
iptables -t nat -A PREROUTING -d 2.x.x.x -m tcp -p tcp --dport 443 -j DNAT --to-destination 192.168.0.x

вы можно оставить --dport 443, то он просто пошлет всех порт
сервер.

теперь проблема в том, что каждый раз, когда ваш wan ip меняется, вы должны
повторите 2-ю команду (кто-нибудь знает, как часто это происходит?) Также
вы потеряете это при перезагрузке маршрутизатора.

этот раздел второй команды -- " iptables-t nat-A PREROUTING-d 2.x.x.x "-- containing the public IP address: как сделать так, чтобы он просто означал " текущий публичный IP адрес"?

Если это возможно, это замедлит все запросы к маршрутизатору из-за разрешения?

10
задан Inops
05.12.2022 4:34 Количество просмотров материала 2605
Распечатать страницу

1 ответ

iptables разрешает DNS-имена, поэтому в ваших правилах вы можете использовать noip.com DNS-имя вместо 2.х.х.х У меня это работает самостоятельно iptables конфигурация:

iptables -t nat -A PREROUTING -d whatever.noip.com -m tcp -p tcp --dport 443 -j DNAT --to-destination 192.168.0.x
1
отвечен Wycito 2022-12-06 12:22

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх