1

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

РЕДАКТИРОВАТЬ: Есть! Я обнаружил, что мне нужно включить локальный DNS и использовать этот ответ из связанного вопроса.

1 ответ1

2

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

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

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

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

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

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

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