DD-WRT: порт не перенаправляется при подключении с публичным IP из локальной сети

DD-WRT: порт не перенаправляется при подключении с публичным IP из локальной сети

У меня проблема, когда я не могу подключиться к моему домашнему серверу из моей локальной сети при использовании публичного IP-адреса маршрутизатора DD-WRT. По сути, у меня та же проблема, что описана здесь:DD-WRT: Как разрешить переадресацию портов для запросов, исходящих из локальной сети?; однако ни одно из предложенных решений не работает для меня. Я почти уверен, что изменил правильные значения для применения к моей настройке локальной сети. Маршрутизатор — Netgear WNR834B v2, на нем установлена ​​DD-WRT v24-sp2 18777. Я использую для него IP по умолчанию (192.168.1.1) и знаю, что домен и переадресация портов работают нормально.

EDIT: Понятно! Я обнаружил, что мне нужно включить Local DNS и использоватьэтотответ на связанный вопрос.

решение1

DD-WRT, скорее всего, не настроен на маршрутизацию hairpin. Подключение к публичному IP из локальной сети обычно является плохой идеей, и вы не сможете определить источник подключения. Лучшим вариантом является прямое подключение к нужному серверу изнутри сети.

TheЧасто задаваемые вопросы о Shorewall 2охватывает настройку маршрутизатора, чтобы он работал. Shorewall создает брандмауэр iptables из набора файлов спецификаций, поэтому шаги не являются обязательными командами iptables, но довольно легко сопоставляются с iptables. Я считаю, что вы должны иметь возможность запустить shorewall-lite на DD-WRT, в этом случае вам нужно будет построить весь ваш брандмауэр в Shorewall, а не в инструменте DD-WRT.

Использовать разделенный DNS гораздо проще, и я бы рекомендовал этот подход. Такой инструмент, как , dnsmasqможет предоставить необходимый внутренний DNS из /etc/hostsфайла. Он действует как кэширующий сервер для адресов в Интернете. Он также предоставляет DHCP, если вы не используете его на своем маршрутизаторе DD-WRT, вам нужно будет решить, какой сервер DHCP включить. Если у вас есть память, вы можете установить его на DD-WRT в качестве замены для сервера DHCP по умолчанию.

EDIT: Если вы решите использовать, dnsmasqлучше всего настроить его как активный DHCP-сервер. Если вы не используете его на своем маршрутизаторе, отключите DHCP на маршрутизаторах. В качестве альтернативы используйте фиксированные адреса за пределами диапазона адресов DHCP для серверов, на которые вы хотите направлять трафик. Использование фиксированных адресов в любом случае является хорошей идеей для серверов. Добавьте адреса серверов в файл /etc/hostsна хосте dnsmasq, на котором запущен , и перезапустите dnsmasq. Если вы настраиваете dnsmasqс доменом, вы также можете искать DHCP-клиентов по имени.

Определите адрес хоста dnsmasq. (Это должен быть частный сетевой адрес, например 192.168.0.10.) Настройте DHCP-сервер, чтобы он указывал этот адрес как первый DNS-сервер имен. Для хостов Linux и других с файлом /etc/resolve.confиспользуйте этот адрес для первой nameserverзаписи. Для других серверов со статическими записями сервера имен сделайте этот адрес первым указанным адресом.

Клиентам DHCP необходимо обновить свои данные DNS. Запуск обновления DHCP должен обновить данные. Во многих системах есть внутренние кэши DNS, поэтому изменения могут быть видны не сразу. Перезагрузка клиентов после выполнения всех настроек сервера должна очистить все кэши и перезагрузить указанную конфигурацию DHCP.

Связанный контент