Домой Технологии Доступ к домашним сервисам через Pangolin без проброса портов

Доступ к домашним сервисам через Pangolin без проброса портов

Для организации удаленного доступа к домашним сервисам без открытия портов на роутере можно использовать решение Pangolin, которое работает в обход ограничений CGNAT.

1
0

Работа с домашними лабораториями часто сталкивается с проблемой отсутствия прямого доступа к входящему трафику. Многие интернет-провайдеры, особенно в сельской местности, используют технологию CGNAT (Carrier-Grade NAT). Это означает, что конечный пользователь не обладает уникальным публичным IP-адресом, доступным извне, что делает классический проброс портов на маршрутизаторе невозможным. Использование двух провайдеров для обеспечения отказоустойчивости не решает эту проблему, так как оба подключения ограничены аналогичным образом.

Панель управления Pangolin с перечнем публичных ресурсов
Вывод команды traceroute, показывающий прохождение трафика через диапазон CGNAT

Организация доступа через Pangolin

Для решения задачи обеспечения публичного доступа к таким сервисам, как Immich, Jellyfin и Nextcloud, было выбрано решение Pangolin. В отличие от стандартных методов, оно не требует создания входящих соединений, так как сервер сам инициирует связь с внешним миром.

Система Pangolin состоит из трех ключевых компонентов: Newt, Gerbil и Traefik. Принцип работы выглядит следующим образом:

  • Newt функционирует на домашнем сервере и отвечает за связь с панелью управления Pangolin, инициируя исходящее соединение.
  • Pangolin размещается на VPS, который обладает необходимым публичным IP-адресом.
  • Gerbil создает защищенный зашифрованный туннель на основе протокола WireGuard.
  • Traefik занимается маршрутизацией входящего трафика к целевому приложению.

Весь процесс передачи данных выстраивается по цепочке: интернет — VPS — Traefik — туннель Gerbil — Newt — локальное приложение. Поскольку трафик не направляется напрямую на роутер, ограничения CGNAT не препятствуют функционированию системы. Настройка требует, чтобы контейнеры Newt и целевой сервис находились в одной сети Docker, что является стандартным требованием платформы.

доступ к домашним сервисам — иллюстрация 2 к материалу
Панель управления Pangolin со списком публично доступных сервисов

Особенности эксплуатации и безопасности

Для сервисов, которые не требуют публичного доступа, таких как панели управления Portainer или AdGuard Home, используются частные mesh-VPN решения, например NetBird или Tailscale. Сочетание Pangolin для публичных ресурсов и VPN для административных инструментов позволяет полностью отказаться от открытия портов на маршрутизаторе.

Процесс добавления нового публичного ресурса через панель управления Pangolin занимает менее 30 секунд. Пользователю достаточно указать имя ресурса, субдомен, локальный IP-адрес и порт. После настройки сервис становится доступен по обычному URL, как и любой другой веб-сайт, не требуя дополнительного ПО на клиентских устройствах.

доступ к домашним сервисам — иллюстрация 3 к материалу
Интерфейс запуска ресурсов в Pangolin с указанием URL

Возможные недостатки и дополнительные расходы

Несмотря на удобство, решение имеет свои нюансы:

доступ к домашним сервисам — иллюстрация 4 к материалу
Список публичных ресурсов с индикацией статуса работы и времени безотказной работы
  • Финансовые затраты. Хотя сам сервис Pangolin бесплатен, для его работы обязательна аренда VPS с публичным IP-адресом.
  • Задержки сети. Трафик проходит через сервер (в данном случае в Нюрнберге, Германия), что может вызвать небольшие задержки (ping). Для чувствительных к времени соединений необходимо выбирать VPS в локации, близкой к пользователю.
  • Зависимость от провайдера VPS. Арендная инфраструктура создает дополнительную точку отказа: в случае проблем с оплатой или сбоев у хостинг-провайдера удаленный доступ к домашней сети будет прерван.
  • Вопросы безопасности. Поскольку сервисы становятся публично доступными, необходимы дополнительные меры защиты. Для аутентификации используется SSO через Pocket ID, а для защиты периметра — CrowdSec.

Pangolin является эффективным инструментом для тех, кто хочет получить доступ к своим веб-сервисам через стандартные URL без сложной настройки оборудования, при условии готовности нести расходы на VPS и учитывать риски, связанные со сторонней инфраструктурой.

Почему именно два провайдера и в чем сложность CGNAT

Живя в сельской местности, пользователь сталкивается с ограниченным выбором интернет-провайдеров, большинство из которых являются локальными игроками. Наличие двух провайдеров — это вынужденная мера для обеспечения стабильности. Хотя общее количество пользователей у таких операторов невелико, что делает связь в целом надежной, возникновение аварий становится серьезным испытанием: простой соединения обычно длится от 12 до 24 часов, а если поломка происходит в выходные дни, ожидание восстановления затягивается на более долгий срок.

доступ к домашним сервисам — иллюстрация 5 к материалу
Форма добавления нового ресурса в систему Pangolin

Использование двух каналов помогает поддерживать работоспособность домашней лаборатории в моменты отказов, однако оба подключения находятся за CGNAT. Это означает, что интернет-соединение разделяется между множеством абонентов, а публичный IP-адрес принадлежит провайдеру, что делает его недоступным из интернета напрямую. Даже если бы входящие соединения были технически возможны, автор не рассматривал вариант превращения домашнего маршрутизатора в публичную точку входа, так как некоторые сервисы — например, панели администрирования — должны оставаться строго изолированными от внешней сети.

доступ к домашним сервисам — иллюстрация 6 к материалу
Логи HTTP-запросов к домашним сервисам в системе Pangolin

Опыт использования и сравнение с аналогами

Важно прояснить вопрос выбора инструментов: автор уже имел опыт работы с Cloudflare Tunnel, но принял решение заменить его на Pangolin. Причины этого перехода — отдельная тема, однако выбор был сделан в пользу текущей системы из-за особенностей её работы. В повседневной жизни взаимодействие с Pangolin сводится к использованию привычного URL. Когда пользователь находится в поездке и ему срочно требуется доступ к документам, достаточно просто открыть Nextcloud в браузере и скачать файлы. Система работает прозрачно, не заставляя задумываться о внутреннем устройстве туннеля или особенностях домашней сети.

Нюансы настройки и эксплуатации

Несмотря на кажущуюся простоту, при первоначальной настройке были выявлены некоторые «подводные камни». Например, для корректной работы системы Newt и целевой сервис обязательно должны находиться в общей сети Docker — это фундаментальная особенность работы самого Docker. Однако подобные настройки выполняются один раз, после чего о них можно забыть. Процесс добавления нового ресурса максимально оптимизирован и требует ввода лишь базовых данных: имени ресурса, нужного субдомена, локального IP-адреса и порта сервиса.

доступ к домашним сервисам — иллюстрация 7 к материалу
Обзор параметров VPS на платформе Hetzner

Безопасность и оценка рисков

Хотя домашний сервер не имеет прямого доступа извне, публичная доступность сервисов требует ответственного подхода к безопасности. Помимо уже упомянутых SSO через Pocket ID и защиты с помощью CrowdSec, важно понимать, что аренда VPS — это передача части контроля сторонней организации. Автор отмечает, что если пользователь удовлетворен возможностями Mesh-VPN для частного доступа к локальным ресурсам, то, возможно, ему не стоит усложнять архитектуру. Но для тех, кто нуждается в публичных HTTPS-ссылках без необходимости установки клиентского ПО на каждое устройство и без лишних сетевых «костылей», Pangolin является оптимальным компромиссом между удобством и необходимостью нести расходы на аренду VPS.