Вам надоело вспоминать IP-адреса и порты для каждой домашней системы? У меня была та же проблема, пока я не обнаружил, как можно подружить Pi-hole и Nginx Proxy Manager и раздавать своим сервисам легко запоминающиеся локальные домены — без малейшего риска случайно “выставить” их в интернет.
Локальные против внешних доменов: в чём принципиальная разница?
Когда вы вводите имя сайта, например https://howtogeek.com, ваш браузер обращается к DNS-серверу, чтобы понять, куда вас направить.
Внешнее разрешение домена открывает ресурс для всего мира — любой пользователь из интернета может зайти на этот сайт, ведь он расположен на удалённом сервере вне вашей сети.
Но, допустим, вы завели дома сервис вроде Audiobookshelf и подключаетесь к нему по IP — получается чисто локальный сайт. Можно прокачать этот процесс: настроить систему, чтобы такие локальные сайты открывались по собственным именам, а не по сухим адресам — и при этом не были доступны снаружи.
Проще говоря: локальные домены видны только вам, пока вы дома, а внешние — доступны каждому в интернете.
Это особенно важно, если вы сами размещаете сервисы у себя дома. Как только вы подключаете внешний домен, ваш сервис становится открытым для всех желающих.
Но можно сделать намного безопаснее: настроить всё так, чтобы к нужным сервисам по доменным именам можно было попасть только из своей сети. Например, я точно не хочу, чтобы кто-то извне увидел мои Proxmox или Pi-hole.
Вот почему я выбрал связку Pi-hole с Nginx Proxy Manager — мои домашние сервисы получили свои имена, и теперь никаких IP-адресов держать в голове не надо.
Никаких покупок: для локальных доменов платить не нужно!
Может показаться, что для красивого и удобного доступа нужен обязательно купленный домен. На самом деле — вовсе нет. Хотя я всё-таки советую завести домен “про запас”, но для локальной работы это лишнее.
Вся суть — использовать свой локальный DNS-сервер (например, Pi-hole), который сам направит определённые доменные имена на нужные внутренние IP-адреса в вашей сети.
Технически можно даже сделать так, чтобы адрес https://google.com открывал ваш локальный сервис через редактирование DNS. Но не советую это проделывать — довольно быстро вы получите совсем не тот интернет, к которому привыкли.
Также ничто не мешает задать сервису абсолютно любой, неиспользуемый в интернете домен. Но тут есть нюанс: со временем домен, который сейчас свободен, может стать популярным. Представьте — вы сделали себе “домашний” https://theverge.com, а потом этот адрес стал гигантом, и пришлось бы спешно переезжать. Смена такого домена — та ещё головная боль.
Поэтому лучше приобрести отдельный домен для своего локального DNS — даже если внешняя публика вам ни к чему.
Pi-hole — ваш надёжный домашний DNS-сервер
Чтобы это всё работало, потребуется локальный DNS-сервер. Я выбрал Pi-hole, но вы можете использовать любой другой.
Как установить Pi-hole, подробно расписывать не буду — по этой теме интернет уже полон отличных инструкций.
Как только Pi-hole запущен и вы сделали его основным DNS-сервером вашей сети, переходите в раздел “Настройки > Local DNS Records” и добавьте свои записи доменов.
Можно создавать как корневые домены (например, testing.com), так и поддомены (например, pi-hole.testing.com) — как вам удобнее. Я обычно делаю поддомены наподобие service.domain.com, чтобы сразу было понятно, где что находится.
Главное — укажите IP той машины, на которой крутится Nginx Proxy Manager. На этом с Pi-hole всё!
Nginx Proxy Manager: ваши локальные домены попадают туда, куда нужно
Теперь, когда Nginx Proxy Manager работает (обычно на портах 80 и 443), самое время завершить настройку локальных имён.
Если HTTPS или SSL не нужны — всё вообще элементарно. Просто добавьте выбранный домен (обязательно такой же, как в Pi-hole) в качестве проксируемого хоста.
Если требуется защищённое соединение, действий будет чуть больше:
Вам нужно самостоятельно сгенерировать SSL-сертификат для своего домена. В качестве примера в статье я использую testing123.me.
Выполните три команды:
Результат — три файла: сертификат (CRT), ключ (KEY) и запрос (CSR — он нам не нужен). Подставьте свой домен, если используете другой.
Бонус: по этим командам создаётся wildcard-сертификат, то есть он подойдёт для любого поддомена в зоне *.testing123.me.
В Nginx Proxy Manager перейдите в SSL Certificates, нажмите Add SSL Certificate > Custom. Назовите сертификат и загрузите KEY и CRT в соответствующие поля.
Затем на вкладке Proxy Hosts выберите нужный домен и в разделе SSL подключите сертификат — теперь сайту доступны возможности HTTPS.
Да, браузер может выдавать предупреждение о недоверенном сертификате, но сервисы, которым важен HTTPS, будут работать отлично.
Хотите полностью избавиться от предупреждений — можно добавить свой сертификат в доверенные CA на вашем компьютере. Но это немного сложнее, ведь в каждой системе — свои шаги для этой процедуры.
Вот и всё! Теперь домашние сервисы доступны по привычным и красивым именам из вашей сети, при этом никто извне не сможет на них попасть. Мне это особенно удобно для двух инстансов Pi-hole и Proxmox — чужим туда вход строго заказан.
А если захочется сделать сайт видимым всему миру — тоже не проблема: собрать сервер на Raspberry Pi и открыть его для всех через Nginx Proxy Manager можно буквально за один уикенд!
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru