Pangolin на VPS: доступ к домашним сервисам без белого IP
Дома крутится Jellyfin, Home Assistant или NAS, но зайти к ним снаружи нельзя: белого IP нет, порты не пробрасываются. Самый дешёвый VPS решает это за полчаса — он становится вашей входной дверью, а домашняя машина сама тянется к нему изнутри.
Задача: попасть домой снаружи
Ситуация знакомая любому, кто держит что-то дома. На старом ноутбуке или мини-ПК работает медиасервер, умный дом и файловое хранилище. Дома всё открывается по адресу вроде 192.168.1.50:8096. А из кафе, с работы или с телефона в дороге — никак.
Классический ответ — «пробросить порт на роутере». Он всё чаще не работает, и причина в том, что публичных IPv4-адресов на всех не хватает. Провайдеры выдают абонентам не собственный адрес, а один общий на сотни квартир — эта схема называется CGNAT (Carrier-Grade NAT), а в разговоре — «серый IP». Ваш роутер получает адрес из внутренней сети провайдера, и пробрасывать на нём нечего: снаружи к этому адресу никто обратиться не может. У мобильных операторов так практически всегда.
Белый IP у многих провайдеров можно докупить за пару сотен рублей в месяц, но дело не только в деньгах. Проброс порта означает, что ваш домашний адрес попадает в интернет и его немедленно начинают сканировать: любой открытый порт находят боты в течение часов. Одна забытая панель со слабым паролем — и в домашней сети чужой.
Идея Pangolin в одном предложении
Входной дверью становится не ваш роутер, а дешёвый арендованный сервер с белым IP: домашняя машина сама подключается к нему изнутри и держит туннель, поэтому дома не нужно открывать ни одного входящего порта.
Pangolin делает проект Fossorial. К августу 2026 у репозитория около 22 400 звёзд на GitHub, актуальная версия — 1.21.1 от 30 июля 2026, коммиты идут почти каждый день. Западные обзоры последнего года пишут про него как про замену Cloudflare Tunnel, и для нашей темы это самый честный случай из возможных: без арендованного сервера Pangolin просто не имеет смысла — весь его смысл в том, что у сервера есть белый IP, а у вас нет.
Все команды, названия пунктов интерфейса и цифры ниже проверены на реально развёрнутой установке версии 1.21.1 с коннектором Newt 1.16.0.
Как это устроено
Схема состоит из двух половин. На VPS живёт сам Pangolin: панель управления, прокси и менеджер туннелей. На домашней машине — крошечная программа Newt (коннектор). Newt первым делом сам звонит на сервер, и дальше весь обмен идёт по уже открытому им каналу.
браузер
│ https://jellyfin.example.com
▼
VPS (белый IP)
├─ Traefik принимает 443, выдаёт сертификат Let's Encrypt
├─ Pangolin проверяет, пустить ли этого посетителя
└─ Gerbil держит WireGuard-туннели
▲
│ туннель поднят изнутри дома, входящих портов дома нет
▼
домашняя машина
└─ Newt ──► 127.0.0.1:8096 (Jellyfin)Под капотом — обычный WireGuard, но в пользовательском режиме: собирать модуль ядра на домашней машине не нужно, Newt поднимает сетевой стек внутри себя. Прокси на сервере — Traefik 3.7, сертификаты он получает от Let's Encrypt сам.
В интерфейсе вы встретите три слова. Их стоит развести сразу, иначе всё остальное путается:
| Термин | Что это на самом деле |
|---|---|
| Site (сайт) | Одна сеть, подключённая к Pangolin: ваш дом, дача, офис. На каждую такую сеть ставится один Newt. Слово неудачное — к веб-сайтам отношения не имеет. |
| Resource (ресурс) | Один сервис внутри этой сети, который вы открываете: Jellyfin, Home Assistant, роутер. Публичный ресурс открывается в браузере по адресу, приватный — только с клиентом Pangolin. |
| Target (цель) | Куда именно Newt должен постучаться внутри домашней сети: адрес и порт, вроде 127.0.0.1:8096. |
Важная деталь про безопасность
Сам факт, что туннель поднят, ничего не открывает. Пока вы не создали ресурс, Newt не пропускает ни одного пакета в домашнюю сеть. Это принципиальное отличие от VPN, где подключившийся сразу видит всю подсеть. Второй бонус: снаружи виден только адрес VPS — ваш домашний IP не попадает ни в DNS, ни в заголовки, ни к сканерам.
С чем сравнивать и когда Pangolin не нужен
Задачу «попасть домой снаружи» решают четырьмя разными способами. Короткая карта, чтобы не поставить лишнего:
| Решение | Сильная сторона | Где ломается |
|---|---|---|
| Cloudflare Tunnel | Бесплатно, сервер не нужен, защита от DDoS в комплекте | Лимит 100 МБ на загружаемый файл, правила против раздачи видео, весь трафик расшифровывается у Cloudflare, домен обязан жить на их DNS |
| Tailscale / Headscale | Прямые соединения между устройствами, минимум трафика через сервер | Клиент нужен на каждом устройстве — поделиться ссылкой с чужим ноутбуком или телевизором не выйдет |
| WireGuard + Nginx руками | Максимальный контроль, минимальный расход памяти | Каждый новый сервис — правка конфига, отдельный certbot, авторизацию делать самому |
| Pangolin | Новый сервис добавляется за минуту в панели, сертификат и страница входа появляются сами, лимитов на файлы нет | Нужен свой VPS и домен, весь трафик идёт через сервер, сервер надо обновлять и охранять самому |
Когда Pangolin ставить не надо
- Всё уже и так на VPS. Если сервисы живут на том же сервере с белым IP, туннель не нужен — берите Traefik или Caddy.
- Нужен доступ только себе, с двух своих устройств. Обычного WireGuard хватит, и он проще.
- Один-единственный сервис и он не про файлы. Cloudflare Tunnel справится бесплатно.
Что понадобится
| Что | Подробности |
|---|---|
| VPS | 1–2 vCPU, 2 ГБ памяти, 20 ГБ диска, Ubuntu 22.04 или 24.04, белый IPv4. На 1 ГБ памяти тоже работает, но добавьте swap. |
| Домен | Любой, с доступом к настройкам DNS. Нужна возможность создать wildcard-запись *. |
| Порты | На VPS открыть 80/TCP, 443/TCP, 51820/UDP и 21820/UDP. Дома — ничего. |
| Домашняя машина | Любая, которая работает круглосуточно: мини-ПК, NAS, Raspberry Pi. Newt есть под Linux, Windows и macOS, под x86 и ARM. |
Про «2 ГБ» стоит пояснить, потому что цифра кажется завышенной. Мы замерили на живой установке в простое:
NAME MEM USAGE
pangolin 252 МБ
traefik 21 МБ
gerbil 4,6 МБТо есть в покое стек занимает меньше 300 МБ — влезет и в гигабайт. Два гигабайта рекомендуют с запасом на пики при обновлении и на всплески трафика. Диска образы занимают около 1,5 ГБ (сам Pangolin — 1,21 ГБ, Traefik — 194 МБ, Gerbil — 39 МБ), плюс сам Docker; на 10 ГБ будет тесно, 20 ГБ — спокойно.
А вот на что смотреть действительно внимательно — это канал и лимит трафика. Через VPS пойдёт всё: и страницы Home Assistant, и фильмы из Jellyfin. Скорость вашего домашнего интернета тут не поможет — потолком станет порт сервера.
Шаг 1. DNS: одна запись на все будущие сервисы
Начинаем с DNS, потому что записям нужно время разойтись, а сертификат без них не выдадут. В панели регистратора домена создайте одну A-запись:
| Тип | Имя | Значение |
|---|---|---|
| A | * | IP вашего VPS |
Звёздочка означает «любой поддомен». Благодаря ей и панель pangolin.example.com, и все будущие jellyfin.example.com, ha.example.com заработают сразу — возвращаться в панель регистратора больше не придётся. Отдельная запись для самого example.com нужна, только если вы хотите отдавать что-то по «голому» домену без поддомена.
Через несколько минут проверьте, что запись видна снаружи. Команда спрашивает напрямую у публичного DNS Google, минуя кэш вашего провайдера:
dig +short pangolin.example.com @8.8.8.8В ответ должен прийти IP вашего сервера. Пустой ответ — записи ещё не разошлись, подождите. Обычно это минуты, но регламент допускает до 48 часов.
Если регистратор не умеет wildcard — не беда. Создавайте обычные A-записи вручную: pangolin для панели и по одной на каждый сервис. Работать будет так же, просто добавление нового сервиса станет двухшаговым.
Шаг 2. Подготовка сервера
Заходим на VPS по SSH и ставим Docker — Pangolin целиком живёт в контейнерах. Официальный скрипт сам определит версию Ubuntu и подключит нужный репозиторий:
sudo apt update && sudo apt upgrade -y
curl -fsSL https://get.docker.com | sudo shПроверить, что всё встало: sudo docker compose version должна ответить номером версии.
Теперь файрвол. Открываем ровно четыре порта плюс SSH:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 51820/udp
sudo ufw allow 21820/udp
sudo ufw enable
sudo ufw statusНа ufw enable система переспросит, что соединение по SSH может прерваться — отвечайте y: правило для SSH мы добавили первой строкой.
Зачем каждый из них: 80— по нему Let's Encrypt проверяет, что домен ваш, без него сертификата не будет; 443 — весь пользовательский трафик; 51820/UDP — туннели от домашних машин; 21820/UDP — туннели от клиентских устройств, если позже захотите приватные ресурсы.
Если у вашего хостера есть собственный сетевой экран в панели управления (у облачных провайдеров он обычно включён по умолчанию), те же четыре порта нужно открыть и там. Про UDP при этом забывают чаще всего — а без него туннель не поднимется.
И маленькая честность про ufw: Docker публикует порты в обход его правил, так что эти четыре были бы открыты и без него. Правила всё равно нужны — они закрывают всё остальное, что вы могли случайно запустить на сервере.
Шаг 3. Установка Pangolin
У проекта есть официальный установщик — небольшая программа, которая задаёт несколько вопросов и собирает готовый docker-compose.yml. Первая команда скачивает её в текущий каталог, вторая запускает:
cd ~
curl -fsSL https://static.pangolin.net/get-installer.sh | bash
sudo ./installerУстановщик просит, чтобы на портах 80 и 443 ничего не слушало. На чистом сервере так и есть; если вы раньше ставили туда Nginx или Apache — остановите их перед запуском.
Дальше — диалог: вопросы задаются по одному. В текстовых полях просто печатаете и жмёте Enter, в вопросах «да/нет» — клавиши y и n (подсказка с вариантами всё время висит внизу экрана). Вот все вопросы версии 1.21.1 по порядку и что отвечать:
| Вопрос | Ответ |
|---|---|
| Enter the installation directory (default: /opt/pangolin) | Enter — примет /opt/pangolin и предложит создать каталог, отвечайте y |
| Do you want to install the Enterprise version of Pangolin? | n — Community Edition, всё из этой статьи в ней есть |
| Do you want to use PostgreSQL (not recommended for most users)? | n — для одного дома хватит встроенной SQLite, и сама программа помечает этот вариант как «не рекомендуется большинству» |
| Enter your base domain (no subdomain e.g. example.com) | example.com — именно корневой домен, без поддомена |
| Enter the domain for the Pangolin dashboard | Enter — предложит pangolin.example.com |
| Enter email for Let's Encrypt certificates | Ваша рабочая почта. Туда придут письма об истекающих сертификатах |
| Do you want to use Gerbil to allow tunneled connections | y — обязательно. Без Gerbil не будет туннелей, а значит и всего сценария |
| Enable email functionality (SMTP) | n — почту можно подключить потом, для старта не нужна |
| Is your server IPv6 capable? | y, если у сервера есть IPv6-адрес, иначе n |
| Do you want to download the MaxMind GeoLite2 Country and ASN databases? | n — базы нужны только для блокировок по странам, добавляются позже |
| Would you like to install and start the containers? | y |
Скачивание образов занимает 2–3 минуты (сам Pangolin весит 1,2 ГБ, на медленном канале дольше). После этого проверяем, что все три контейнера поднялись:
cd /opt/pangolin
sudo docker compose psДолжны быть pangolin (со статусом healthy), gerbil и traefik. Рядом лежит каталог config — в нём настройки, база и сертификаты. Это единственное, что нужно бэкапить.
Шаг 4. Первый вход
Чтобы создать администратора, нужен одноразовый код, который Pangolin печатает в лог при первом запуске:
sudo docker compose logs pangolin | grep -A 2 'SETUP TOKEN'pangolin | === SETUP TOKEN GENERATED ===
pangolin | Token: 2ba5d63wkc64w3ihkmmaj1bdjbpetv7o
pangolin | Use this token on the initial setup pageОткрываем в браузере https://pangolin.example.com/auth/initial-setup, вставляем код, задаём почту и пароль администратора. Если браузер ругается на сертификат — не пугайтесь и подождите пару минут: Traefik запрашивает сертификат в фоне, первый выпуск занимает до минуты-двух. Код одноразовый и после создания администратора перестаёт работать.
Дальше Pangolin попросит создать организацию — это просто контейнер для ваших сайтов и ресурсов. Назовите как угодно, например Home.
Интерфейс переключается на русский — иконка профиля в правом верхнем углу, там же где выбор темы, пункт «Русский». Перевод местами машинный: например, «Newt Site» превратилось в «Новый сайт», а «Credentials» — в «Полномочия». Если что-то читается странно, сверьтесь с английскими названиями из этой статьи.
Шаг 5. Подключаем домашнюю машину
В панели идём в раздел Sites и нажимаем Add Site. Выбираем тип Newt Site (Recommended), придумываем имя — например Home — и создаём. Соседний вариант Local Site нужен для другого случая: когда сервис крутится на самом VPS, рядом с Pangolin, и туннель ему не нужен. Pangolin сразу покажет экран с готовой командой: в ней уже подставлены идентификатор сайта, секрет и адрес вашего сервера. Скопируйте её, она понадобится через минуту.
Теперь переходим на домашнюю машину. Ставим Newt — официальный скрипт сам определит архитектуру и положит программу в /usr/local/bin/newt:
curl -fsSL https://static.pangolin.net/get-newt.sh | bash
newt --versionМожно сразу вставить скопированную из панели команду и убедиться, что всё работает. В выводе должно появиться Tunnel connection to server established successfully!, а сайт в панели — стать зелёным. После этого останавливаем её по Ctrl+C и делаем так, чтобы Newt запускался сам.
Ключи кладём в отдельный файл, чтобы они не светились в списке процессов:
sudo install -d -m 0755 /etc/newt
sudo nano /etc/newt/newt.env
sudo chmod 600 /etc/newt/newt.envNEWT_ID=31frd0uzbjvp721
NEWT_SECRET=h51mmlknrvrwv8s4r1i210azhumt6isgbpyavxodibx1k2d6
PANGOLIN_ENDPOINT=https://pangolin.example.comТеперь служба systemd. Она поднимет Newt при загрузке и перезапустит, если он упадёт:
[Unit]
Description=Newt
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=root
Group=root
EnvironmentFile=/etc/newt/newt.env
ExecStart=/usr/local/bin/newt
Restart=always
RestartSec=2
UMask=0077
PrivateTmp=true
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now newt
sudo systemctl status newt
sudo journalctl -u newt -fВ журнале ищем те же строки: Websocket connected и Tunnel connection to server established successfully! Обратите внимание, что команда ExecStart идёт без единого аргумента — Newt читает NEWT_ID, NEWT_SECRET и PANGOLIN_ENDPOINT из файла окружения сам. Мы проверили и приоритеты: переменные окружения перекрывают то, что Newt сохранил в свой файл настроек, так что при смене ключей достаточно поправить newt.env и выполнить sudo systemctl restart newt.
А если дома всё в Docker?
Newt можно запустить и контейнером (образ fosrl/newt), но тогда придётся думать о сетях: из контейнера не видно 127.0.0.1 хоста, а соседние контейнеры видно только по имени и только в общей docker-сети. Установка бинарником через systemd избавляет от этой возни: адреса вроде 127.0.0.1:8096 и 192.168.1.50:80 работают сразу и одинаково.
Шаг 6. Первый сервис наружу
Возьмём для примера Jellyfin, который слушает дома на порту 8096. В панели: Resources → Add Resource → публичный ресурс типа HTTPS Resource. Заполняем:
- Name —
Jellyfin, это просто подпись в списке - Subdomain —
jellyfin, Domain —example.com. Получится адресjellyfin.example.com
Создаём и переходим к разделу Targets — это ответ на вопрос «куда стучаться внутри дома». Добавляем одну цель: Site — Home, Method — http, Host — 127.0.0.1, Port — 8096. Кнопка Add Target.
Через несколько секунд в журнале Newt появится строка вида Started tcp proxy to 127.0.0.1:8096, а адрес https://jellyfin.example.com начнёт открываться. Method здесь — это протокол не наружу, а внутрь: у подавляющего большинства домашних сервисов это http, потому что своего сертификата у них нет.
Что вы увидите при первом открытии
Не Jellyfin, а страницу входа Pangolin — и это правильно. У нового HTTPS-ресурса по умолчанию включён вход через учётную запись Pangolin: мы проверили, запрос без авторизации разворачивают на страницу входа ещё до того, как он дойдёт до дома. Войдите своей учёткой администратора — дальше откроется сам сервис.
Дальше всё повторяется: каждый новый сервис — это ещё один ресурс и ещё один target, минута работы. Кроме HTTPS Pangolin умеет отдавать и другие типы: SSH, RDP и VNC прямо в браузере — терминал или рабочий стол открываются вкладкой, ничего ставить на устройство не нужно, — а также сырые TCP и UDP для того, что вообще не про веб. У последних есть нюанс: они занимают порт на самом VPS, и этот порт придётся отдельно открыть в ufw и в панели хостера.
Кого пускать: варианты входа
Всё это настраивается в самом ресурсе. Выбирать нужно по тому, кто будет заходить:
- Учётные записи Pangolin — включено по умолчанию. Заводите пользователей и раздаёте им доступ к конкретным ресурсам. Подходит для семьи.
- PIN или пароль на ресурс — самый быстрый способ пустить человека без заведения учётки. Годится для того, чтобы показать что-то знакомому.
- Код на почту — вы разрешаете список адресов (можно маской вида
*@company.ru), человек вводит свою почту и получает одноразовый код. Требует настроенного SMTP. - Одноразовые ссылки — ссылка со сроком жизни, после которого доступ пропадает. Удобно, чтобы отдать файл или показать панель на час.
- Внешний вход по OIDC — если у вас уже есть свой сервер входа, вроде Authelia, Keycloak или Google. Мы отдельно проверили: в бесплатной Community Edition создание OIDC-провайдера не заблокировано.
- Совсем без входа — вход можно отключить, если сервис публичный по смыслу: личный блог, галерея для друзей. Для панелей управления так делать не стоит.
Поверх этого работают правила: разрешить или запретить по IP, по стране, по пути в адресе. Блокировка по странам требует тех самых баз MaxMind, от которых мы отказались при установке, — их можно докачать позже, перезапустив установщик.
Что бесплатно, а что нет
Pangolin выпускают в двух редакциях. Community Edition — то, что лежит на GitHub под лицензией AGPL-3; именно её ставит установщик, если ответить n на вопрос про Enterprise. Ограничений на количество сайтов, ресурсов и пользователей в ней нет, и всё описанное в этой статье работает в ней целиком.
Enterprise Edition — отдельный docker-образ (тег с приставкой ee-) плюс лицензионный ключ. Он бесплатен для личного использования и для компаний с годовой выручкой меньше 100 000 $, но ключ нужно получить в личном кабинете на сайте проекта. Отдельно существует облачный Pangolin, где сервер держат сами разработчики, — но это ровно то, от чего мы уходим, арендуя свой VPS.
Практический вывод простой: для дома берите Community и не думайте о лицензиях. Часть корпоративных пунктов при этом видна в интерфейсе, но не работает. Если это раздражает, допишите одну строку в уже существующий блок flags файла /opt/pangolin/config/config.yml — и они исчезнут:
flags:
disable_enterprise_features: true
require_email_verification: false
disable_signup_without_invite: true
disable_user_create_org: false
allow_raw_resources: truecd /opt/pangolin && sudo docker compose restart pangolinТри вещи, которые стоит сделать сразу
Бэкап каталога config
Вся установка — это /opt/pangolin/config: настройки, база SQLite, сертификаты, ключи туннелей. Потеряете каталог — придётся заново создавать сайты и ресурсы и прописывать новые ключи в Newt на всех машинах. Простейший вариант — архив перед каждым обновлением:
sudo tar czf ~/pangolin-config-$(date +%F).tar.gz -C /opt/pangolin configАрхив лучше сразу увозить с сервера — как это автоматизировать, разобрано в статье про бэкапы через restic и rclone.
Отключить отправку статистики
По умолчанию Pangolin шлёт разработчикам обезличенную статистику: количество сайтов, ресурсов и пользователей, версия, объём трафика. Личных данных там нет, но если не хотите — правится одной строкой в /opt/pangolin/config/config.yml:
app:
dashboard_url: "https://pangolin.example.com"
log_level: "info"
telemetry:
anonymous_usage: falsecd /opt/pangolin && sudo docker compose restart pangolinЧто получилось, видно в логе: вместо предложения помочь проекту появится строка Analytics usage statistics collection is disabled. Перезапуск занимает секунд десять, туннели после него поднимаются сами.
Знать, как обновляться
Обновление ручное: правите номера версий в docker-compose.yml и перезапускаете. Перед этим — обязательно бэкап, потому что миграции базы необратимы и откатиться на старую версию просто так не выйдет.
sudo tar czf ~/pangolin-config-$(date +%F).tar.gz -C /opt/pangolin config
sudo docker compose down
sudo nano docker-compose.yml # поднять теги fosrl/pangolin и fosrl/gerbil
sudo docker compose pull
sudo docker compose up -d
sudo docker compose logs -f pangolinОстанавливать стек целиком через down здесь не перестраховка. Контейнер Traefik живёт в сетевом пространстве Gerbil, и мы проверили, что бывает, если пересоздать только Gerbil: Traefik остаётся в статусе Up, но сайт перестаёт отвечать совсем. Лечится пересозданием Traefik, но проще сразу поднимать стек целиком.
Актуальные номера — на странице релизов проекта. Плагин авторизации Badger живёт отдельно, его версия задаётся в config/traefik/traefik_config.yml — если в заметках к релизу просят поднять и её, правьте там же. Перескакивать сразу через несколько минорных версий разработчики не советуют: обновляйтесь по порядку. Newt на домашних машинах обновляется отдельно — тем же скриптом установки, после чего sudo systemctl restart newt.
Частые проблемы
Браузер ругается на сертификат, и это не проходит
Значит Let's Encrypt не выдал сертификат. Смотрим причину в логах прокси: sudo docker compose logs traefik | grep -i acme. Три частые причины: закрытый порт 80 (проверку домена делают именно по нему), DNS-запись ещё не разошлась или ведёт на другой IP, либо вы упёрлись в лимит Let's Encrypt — их 50 сертификатов на домен в неделю тратятся быстро, если много раз переустанавливать. Проверьте DNS командой dig +short pangolin.example.com @8.8.8.8.
Панель отвечает «404 page not found»
Это ответ самого Traefik: он не нашёл ни одного маршрута для того имени, которое вы открыли. Почти всегда — несовпадение домена. Мы наступили на это при проверке: домен панели прописан в двух файлах, в config/config.yml и в config/traefik/dynamic_config.yml. Если меняете адрес панели руками, правьте оба, а потом sudo docker compose restart traefik. Проще всего вообще не менять домен после установки.
Сайт в панели остаётся серым, туннель не поднимается
Смотрим журнал на домашней машине: sudo journalctl -u newt -n 50. Если нет даже строки Websocket connected — Newt не достучался до сервера: проверьте адрес в PANGOLIN_ENDPOINT (он пишется целиком, вместе с https://) и то, что панель вообще открывается. Если websocket есть, а туннеля нет — не проходит UDP на 51820: почти всегда порт забыли открыть в панели хостера. Команда newt --show-config покажет, какие значения Newt реально использует и откуда он их взял.
Ресурс открывается, но вместо сервиса — страница входа
Так и задумано: у нового HTTPS-ресурса вход включён по умолчанию. Либо войдите своей учётной записью, либо выключите проверку в настройках ресурса, либо поставьте PIN. Отдельная тонкость: мобильные приложения сервисов (Jellyfin, Immich, Home Assistant) страницу входа в браузере пройти не могут — для них либо выключают проверку на ресурсе, оставляя защиту самому сервису, либо используют токен доступа, который Pangolin умеет принимать заголовком.
Страницы открываются, но «тяжёлые» запросы подвисают
Классический признак проблемы с MTU — размером пакета. Newt по умолчанию берёт осторожные 1280 байт, и обычно этого хватает, но на некоторых мобильных и PPPoE-каналах нужно ещё меньше. Добавьте в /etc/newt/newt.env строку MTU=1200 и перезапустите службу — имя переменной именно такое, мы проверили. Если не помогло, дело не в MTU, а в скорости канала VPS.
Коротко: порядок действий
- VPS от 2 ГБ памяти с белым IP, домен со своей DNS-панелью
- A-запись
*на IP сервера, проверить черезdig ... @8.8.8.8 - На VPS: Docker из
get.docker.com, ufw с портами 80, 443, 51820/udp, 21820/udp - Те же порты открыть в сетевом экране хостера, если он есть
curl -fsSL https://static.pangolin.net/get-installer.sh | bashиsudo ./installer- Достать setup token из логов, создать администратора и организацию
- Sites → Add Site → Newt Site, скопировать команду
- Дома: установить Newt, вынести ключи в
/etc/newt/newt.env, поднять службу systemd - Resources → Add Resource → HTTPS, добавить target на адрес и порт сервиса
- Настроить вход, отключить телеметрию, положить
configв бэкап
Если не подошло: sudo docker compose down в /opt/pangolin останавливает всё, а каталог config остаётся на месте — можно вернуться позже. Удалить совсем — стереть каталог /opt/pangolin целиком.
Pangolin нужен сервер с белым IP — и больше почти ничего. Подойдёт самый простой тариф
Дешёвые VPS 2026 →Смотрите также: