В случае если вам понравилась эта статья, то можете поддержать автора, став спонсором на Boosty.
Если вы думали, что эта статья будет посвящена забавному млекопитающему панголину, то вы ошиблись.
Но раз уж вы спросили, то скажу, что панголин — редкое млекопитающее, покрытое твёрдой чешуёй, напоминающей броню. Он питается муравьями и термитами, добывая их длинным липким языком. При опасности сворачивается в плотный шар, защищаясь от хищников.
Предисловие
В homelabbing есть одна огромная болевая точка, с которой сталкивается почти каждый, кто поднимает себе домашний сервер. Сначала всё работает «локально»: сервисы крутятся, веб-интерфейсы открываются, всё красиво, ты всем доволен. Вроде бы. А потом хочется зайти к себе извне — и начинается цирк с конями в виде проброса портов, NAT, белых IP, динамического DNS, доменных имён и вечного ощущения, что ты где-то оставил дверь приоткрытой, куда вот-вот побежит весь интернет (кстати, если у тебя паранойя, это не значит что к весь интернет не побежит).
В этот момент на сцену выходит Pangolin.
По сути, это инструмент, который убирает из уравнения самую неприятную часть — открытые порты. Ты не лезешь в настройки роутера, не ковыряешь firewall и не думаешь: какой порт ты забыл закрыть; открыть; отключил ли ты доступ по SSH; что делать в случае компрометации твоих сервисов или «засвета» IP-адреса и так далее. Pangolin просто поднимает защищённый туннель наружу и даёт тебе доступ к сервисам так, будто они уже «снаружи», хотя физически всё остаётся у тебя дома.
И в этом его главный кайф — он снимает когнитивную нагрузку: не нужно держать в голове сетевую топологию; не нужно вспоминать, чем отличается DNAT от SNAT; не нужно переживать, что очередной сервис торчит в интернет без аутентификации или она слабая (а может не слабая, но ты не знаешь, а посоветоваться не с кем; а если есть с кем, то возможно он тебя интеллигентно послал, в смысле промолчал); что зря ты на роутере сэкономил или повелся на рекламу и так далее. С Pangolin ты описываешь, что именно хочешь открыть — вернее, какой сервис или сервер — и Pangolin делает это аккуратно и безопасно.
Отдельно хочу отметить, что наконец-то всё это не выглядит как набор костылей, который постарались впихнуть во что-то бесформенное и потому отторгающее. Есть нормальный интерфейс, понятная логика и ощущение, что это не «ещё один GitHub-проект энтузиаста для энтузиастов», а цельный и, что самое главное, стабильный инструмент. Он не пытается быть всем сразу — просто решает конкретную задачу: дать доступ к твоим сервисам без лишнего геморроя (простите за мой французский).
Фактически, Pangolin — замена Cloudflare Tunnels, только без Cloudflare. Это твоё личное приложение. Ведь суть self-hosting именно в этом, правда?
Но, конечно, за комфорт приходится платить. И тут каждый решает сам: либо ты тратишь время и нервы, вручную настраивая сеть и безопасность; тратишь время на изучение вопроса и набивание шишек (без этого никак); либо платишь за инструмент, который это уже сделал за тебя. Pangolin как раз про второй вариант.
Отмечу, что платишь ты не за само приложение — оно для физических лиц бесплатное. Речь про инфраструктуру. Да, можно развернуть приложение у себя на домашнем сервере, но с учётом потенциальных расходов - белый айпи, требований к качеству сети, электропитанию и так далее, не исключено, что аренда VPS будет стоить в итоге столько же, как если бы ты всё разворачивал у себя. Зато злоумышленник в случае компрометации сервера дальше VPS не пройдёт. Так что тут решение исключительно за вами.
В итоге это история не столько про технологии, сколько про удобство. Про тот момент, когда ты хочешь, чтобы всё просто работало, без танцев с бубном и вечных проверок «а точно ли я всё закрыл», открыты ли у меня только порты 80 и 443 (а в зависимости от твоего софта может быть и больше, например если речь о SIP). И если ты уже устал от этой сопутствующей нервотрёпки — скорее всего, ты поймёшь, зачем вообще существует Pangolin.
Особенности приложения
Если копнуть еще глубже, Pangolin интересен не тем, что «работает из коробки», а тем, как именно он это делает. Под капотом — понятный стек современных сетевых подходов, аккуратно собранный в одно целое.
В основе лежит идея туннелирования. Вместо того чтобы принимать входящие соединения, твой сервер сам устанавливает исходящее соединение к внешней точке. Это важный момент: исходящие соединения почти всегда разрешены в обычных файрволлах, поэтому не нужно открывать порты на роутере. Дальше весь трафик к твоим сервисам просто прокидывается через этот туннель обратно внутрь.
Поверх этого используется шифрование — как правило, на базе TLS. То есть трафик не просто «идёт через какой-то канал», а защищён от перехвата. По сути, это похоже на то, как работают VPN или решения вроде Cloudflare Tunnel: у тебя есть доверенный канал, внутри которого уже живут твои HTTP, SSH или любые другие сервисы.
Дальше включается проксирование. Pangolin выступает как обратный прокси: он принимает запросы снаружи и направляет их к нужному сервису внутри твоей сети. Это значит, что можно вешать несколько сервисов на один внешний вход, разруливать домены, пути и всё остальное, не трогая саму сеть.
Конечно, есть нормальная система аутентификации. Вместо того чтобы надеяться, что «никто не найдёт мой порт» (когда он у тебя 2222 ), Pangolin делает ставку на контроль доступа: кто может подключаться, к чему именно и при каких условиях. Это популярный zero-trust подход.
Плюс ко всему, такие решения обычно завязаны на агентную модель. У тебя есть клиент (агент), который крутится рядом с сервисами, и есть управляющая часть, которая знает, как эти сервисы опубликовать. Благодаря этому можно централизованно управлять доступом и не настраивать каждый контейнер или сервер отдельно.
В итоге Pangolin — приложение, которое одновременно интегрирует обратный прокси Traefik, протокол WireGuard, CrowdSec, а также возможность интеграции с любым известным IdP и IAM-провайдером. И как вишенка на торте — удобный Geo-Blocking, что позволяет нам заблокировать сразу входящие соединения оттуда, откуда мы их не ждем (а это практически ото всюду, кроме страны проживания, ну и еще одной, наверно, может быть, ну ты понял, да?).
По отдельности про все эти приложения я уже неоднократно рассказывал как в статьях, так и в видео на канале. Но ценность Pangolin в том, что тебе не нужно собирать этот конструктор самому из Traefik, WireGuard, Crowdsec, Authelia/Authentik и ещё пары компонентов. Всё уже собрано и работает как единая система.
Цена развертывания сервиса
С Pangolin есть один нюанс, который многие пропускают на старте: он кажется «простым», пока не начинаешь разворачивать его правильно. Потому что сам по себе он работает из коробки, но чтобы он работал стабильно, безопасно и без сюрпризов — нужно соблюсти несколько базовых условий.
-
Во-первых, тебе нужен сервер, который будет постоянно доступен из интернета. Это может быть VPS или любой внешний хост с белым IP. Именно туда Pangolin будет поднимать туннели, и именно эта точка станет «входом» в твой homelab. Без этого вся магия просто не сложится. В идеале — аренда VPS.
-
Дальше — домен. Можно, конечно, жить и без него, но нормальная работа с HTTPS, удобные адреса сервисов и в целом адекватный UX начинаются именно с домена. Плюс тебе придётся настроить DNS так, чтобы он указывал на внешний сервер.
-
Следующий момент — сертификаты. Pangolin работает через защищённые соединения, поэтому TLS здесь не опция, а необходимый элемент. Хорошая новость в том, что чаще всего это автоматизируется через Let’s Encrypt, и руками почти ничего делать не нужно — главное, чтобы DNS был настроен правильно.
-
На стороне твоего домашнего сервера всё гораздо проще. Там достаточно запустить агент Pangolin, который установит исходящее соединение. И вот здесь ключевой плюс: никаких открытых портов, никаких изменений в роутере. Главное, чтобы сервер мог выходить в интернет.
-
Менее очевидная часть — сеть и DNS внутри твоей инфраструктуры. Если ты хочешь, чтобы всё выглядело красиво и работало без костылей, стоит продумать, как сервисы будут резолвиться, как ты будешь разделять внутренний и внешний доступ и не возникнет ли конфликтов между ними.
-
Конечно, базовая безопасность. Даже если Pangolin сам по себе закрывает много дыр, это не повод запускать всё с дефолтными настройками. Пароли, доступы, ограничения — всё это по-прежнему важно. Zero trust — это не только про инструмент, но и про то, как ты его используешь.
В итоге правильное развёртывание Pangolin — это не про «запустил контейнер, пользуйся и забыл про настройки». Это про связку из внешнего сервера, домена, нормального TLS и аккуратной, точечной настройки доступа. Если это всё есть, дальше он действительно начинает ощущаться как супер-приложение, которое снимает многие проблемы.
Как работает Pangolin
Основные шаги
Ключевые концепции
Pangolin использует несколько компонентов, которые работают вместе для безопасного удалённого доступа. Каждый компонент выполняет свою роль, чтобы только авторизованные пользователи могли получать доступ к разрешённым ресурсам.
Сервер Pangolin
Сервер Pangolin — центральный компонент координации вашей сети. Он хранит конфигурацию, управляет политиками доступа и координирует соединения между клиентами и сайтами.
Сайты (Sites)
Сайты подключают удалённые сети к серверу Pangolin через защищённые туннели.
Ресурсы (Resources)
Ресурсы — это приложения, хосты или диапазоны сети, доступные пользователям.
Клиенты (Clients)
Клиенты позволяют пользователям подключаться к ресурсам через защищённый туннель.
Удалённые узлы (Remote Nodes)
Удалённые узлы — это ваши серверы Pangolin с полной управляемостью и контролем над данными.
Архитектура системы Pangolin
Pangolin состоит из нескольких ключевых компонентов, которые взаимодействуют друг с другом, обеспечивая безопасный удалённый доступ к сервисам без необходимости открывать порты.

Control Plane
Control Plane — это мозг системы, управляющий всеми компонентами.
Gerbil
Gerbil отвечает за WireGuard-туннели.
Newt
Newt — лёгкий клиент для подключения удалённых узлов.
Traefik - обратный прокси
Маршрутизирует входящие запросы.
Badger
Отвечает за аутентификацию и контроль доступа.
Требования к установке и установка Pangolin
Необходимые условия
- Linux-сервер с root-доступом и публичным IP
- Домен
- Email для SSL
- Открытые порты: 80, 443, 51820, 21820
Процесс подготовки VPS
Базовая настройка безопасности VPS
После получения VPS первым шагом необходимо выполнить базовую настройку безопасности, чтобы минимизировать риски несанкционированного доступа. В первую очередь следует отказаться от работы под пользователем root и создать отдельного пользователя с правами sudo.
Работать под пользователем root небезопасно, поэтому сначала создадим нового пользователя и добавим его в группу sudo:
1adduser youruser2usermod -aG sudo youruserПроверим, что всё работает:
1su - youruser2sudo whoamiНастройка SSH (смена порта и отключение root)
Открываем конфигурационный файл SSH:
1sudo nano /etc/ssh/sshd_configНаходим и изменяем следующие параметры:
1Port 2222 (ставить такой порт это большая ошибка)2PermitRootLogin noЭто:
- изменит стандартный порт SSH (22 → любой свободный нестандартный порт )
- полностью запретит вход под root
Отключение входа по паролю (крайне рекомендуется)
Для дополнительной защиты рекомендуется разрешить только вход по SSH-ключам:
Включайте этот параметр только если у вас уже настроены SSH-ключи, иначе можно потерять доступ к серверу.
1PasswordAuthentication noНастройка firewall (UFW)
Установим и включим UFW:
1sudo apt update2sudo apt install -y ufwРазрешим только необходимые порты для работы Pangolin:
1sudo ufw allow номерпортадляssh,еслитыневключилдоступтолькопоключам/tcp2sudo ufw allow 80/tcp3sudo ufw allow 443/tcp4sudo ufw allow 51820/udp5sudo ufw allow 21820/udpАктивируем firewall:
1sudo ufw enable2sudo ufw statusПрименение изменений SSH
После внесения изменений перезапускаем SSH-сервис:
1sudo systemctl restart sshОбязательная проверка подключения
Перед тем как завершить текущую SSH-сессию, откройте новое подключение и убедитесь, что всё работает:
1ssh youruser@your_ip -p номерпортадляssh,еслитыневключилдоступтолькопоключамТолько после успешного подключения можно закрывать старую сессию.
Настройка DNS
Базовые DNS-записи
Вам потребуется создать записи типа A (или AAAA для IPv6), указывающие на IP-адрес вашего VPS.
1. Создание wildcard-записи
Создайте wildcard-запись поддомена для вашего домена:
- Тип: A
- Имя: *
- Значение: айпи адрес твоего впс
- TTL: 300 (или по умолчанию)
Это позволит любому поддомену (например, app.example.com, api.example.com) указывать на ваш VPS.
2. Создание записи для корневого домена (необязательно)
Если вы планируете использовать корневой домен как ресурс:
- Тип: A
- Имя: @ (или оставить пустым)
- Значение: айпи адрес твоего впс
- TTL: 300 (или по умолчанию)
Эта запись нужна только в том случае, если вы хотите использовать example.com (а не только поддомены).
3. Ожидание распространения DNS
Изменения DNS могут распространяться от 5 минут до 48 часов по всему миру.
Процесс установки
Установка Pangolin с помощью официального скрипта
- Скачать установщик Это самая простая процедура. Да, можно все сделать самому, но в итоге это большой ручной труд с неясным результатом, и требующим большее погружение в проблему
- Подключитесь к серверу через SSH и выполните команду:
1 curl -fsSL https://static.pangolin.net/get-installer.sh | bash- Запустить установщик
Выполните установку с root-привилегиями:
1sudo ./installerУстановщик помещает все файлы в текущую директорию. Перед запуском можно переместить его в желаемую папку для установки.
Настройка базовых параметров
- Установщик запросит ключевые настройки:
- Edition: выберите Community Edition или Enterprise Edition
- Base Domain: укажите корневой домен без поддоменов (например, example.com)
- Dashboard Domain: нажмите Enter для значения по умолчанию pangolin.example.com или укажите свой домен
- Let’s Encrypt Email: адрес для SSL и входа администратора
- Tunneling: установка Gerbil для туннелей (по умолчанию: да). Можно работать без туннелей, как стандартный обратный прокси
-
Настройка почты (опционально) Функционал электронной почты можно добавить позже. По умолчанию: Нет (рекомендуется при первичной установке) Если включено: укажите SMTP-сервер (host, port, username, password)
-
Запуск установки Подтвердите запуск установки:
- Установщик скачает Docker-образы (pangolin, gerbil, traefik)
- Контейнеры будут запущены автоматически
- Процесс занимает 2–3 минуты в зависимости от скорости интернета
- Установка CrowdSec (опционально) Установщик предложит добавить CrowdSec для дополнительной защиты:
- По умолчанию: Нет (рекомендуется для начальной установки)
- При включении: нужно будет управлять конфигурацией CrowdSec вручную
CrowdSec можно установить позже. Базовая установка уже обеспечивает достаточный уровень безопасности.
Настройка после установки
После успешной установки вы увидите сообщение:
Installation complete!
1Для завершения первоначальной настройки перейдите по адресу:2
3`https://pangolin.твойдомен.com/auth/initial-setup`-
Доступ к панели управления
Перейдите по URL, указанному в выводе установщика:
https://pangolin.твойдомен.com/auth/initial-setupSSL-сертификат будет настроен автоматически. Первичная валидация может занять несколько минут, поэтому возможны предупреждения о безопасности в браузере.
-
Создание учётной записи администратора
Введите адрес электронной почты администратора Задайте надёжный пароль Подтвердите почту (если настроена)
Используйте уникальный и сложный пароль — этот аккаунт имеет полный доступ к системе.
-
Создание первой организации
После входа: Укажите название и описание организации Нажмите «Create Organization»
Теперь вы готовы добавлять приложения и настраивать обратный прокси.
Более подробно как устанавливается это приложение у меня в видеоролике, и это тот случай, когда лучше один раз увидеть, чем сто раз прочитать.
Some information may be outdated