-1

Я использую две настройки маршрутизатора со следующим оборудованием:

Netgear WNDR3400V2 - 192.168.1.1 - DD-WRT

Belkin F9K1105 v1 - 192.168.1.50 - Stock FW

Belkin настроен как коммутатор, к которому у меня подключен веб-сервер.

[Интернет] -> Netgear -> Belkin -> Сервер

При внутреннем подключении он регистрирует мой IP-адрес соответствующим образом (например, 192.168.1.51). При внешнем подключении все IP-адреса отображаются как 192.168.1.1 (IP-адрес основного маршрутизатора).

Это, конечно, прекрасно работает, когда не за вторым маршрутизатором, но, к сожалению, моя текущая настройка не нужна.

Мне было интересно, смогу ли я получить какую-то конкретную инструкцию о том, как правильно «видеть» внешние IP-адреса с сервера.

Заранее спасибо!

1 ответ1

-1

Проблема, по-видимому, заключается в правилах iptables по умолчанию, которые устанавливает DD-WRT.

Удаление строки MASQUERADE в POSTROUTING устраняет проблему, внешние подключения больше не отображаются как внутренний IP-адрес моего основного маршрутизатора.

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  0    --  anywhere             anywhere            
SNAT       0    --  192.168.1.0/24       anywhere            to:1.1.1.1 
RETURN     0    --  anywhere             anywhere            PKTTYPE = broadcast

Это удаляет первый элемент в приведенном выше списке:

iptables -t nat -D POSTROUTING 1

Более подробную информацию о вышеупомянутом исправлении можно найти здесь: https://www.reddit.com/r/HomeNetworking/comments/40swj2/firewall_log_shows_router_ip_for_all_incoming/cyxaz3t/

Теперь все должно работать нормально.

Примечание: если вы больше не можете получить доступ к своим услугам через внешний IP-адрес с внутреннего IP-адреса, вам может потребоваться выполнить одно или оба из следующих действий (мне потребовались оба):

  1. Обязательно снимите флажок "Фильтровать перенаправление WAN NAT" в «DD-WRT -> Безопасность -> Брандмауэр»

  2. Запустите следующее:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE

Замена обоих вхождений 192.168.1.0/24 на все, что имеет отношение к вашей настройке.

Чтобы сделать это проще, я рекомендую просто сохранить это в скрипте брандмауэра в «Администрирование -> Команды»

iptables -t nat -D POSTROUTING 1
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .