Удалённый доступ к 3D-принтеру: Klipper и OctoPrint через интернет без белого IP
Как следить за печатью и управлять принтером на Klipper или OctoPrint из любой точки: сравнение способов, пошаговая настройка туннеля через свой сервер с HTTPS и паролем, ZeroTier, Obico и защита Moonraker.
Удалённый доступ к 3D-принтеру — это возможность смотреть камеру, следить за температурами и управлять печатью через Fluidd, Mainsail или OctoPrint из любой точки, где есть интернет. В этом гайде — способы, которые реально работают в России в 2026 году: от бесплатной одноранговой сети ZeroTier до собственного туннеля на VPS за 299–429 ₽ в месяц с HTTPS и паролем.
Гайд рассчитан на принтеры с Klipper — это и самосборы на Raspberry Pi, и заводские машины вроде QIDI или Creality K-серии с открытым root-доступом, — а также на OctoPrint. Схема везде одна: веб-интерфейс крутится на компьютере принтера, и наша задача — безопасно дотянуться до него снаружи.
Почему прямой доступ не работает: серый IP и CGNAT
У большинства домашних провайдеров вы получаете серый IP: из-за дефицита адресов IPv4 провайдер сажает десятки абонентов на один внешний адрес через CGNAT. Входящие соединения до вашего роутера просто не доходят, поэтому классический проброс порта не работает в принципе. Белый (статический) адрес продаётся отдельно — примерно 150–250 ₽ в месяц (Билайн ~150 ₽, МТС 179 ₽, Ростелеком 180–200 ₽), — но сам по себе он проблему не закрывает: открывать порт веб-интерфейса принтера без защиты нельзя, и ниже мы покажем почему.
Популярный за рубежом сервис Tailscale, который часто советуют в англоязычных гайдах, для России больше не вариант: с сентября 2023 его репозиторий пакетов отвечает российским адресам ошибкой HTTP 451 «Unavailable For Legal Reasons» — установка через apt падает, — а со 2 октября 2024 закрыт и вход в аккаунт: issue №13648 с ответом «control plane is no longer accessible from within Russia» открыт до сих пор.
Остаются три рабочих пути: сервис-посредник (Obico, OctoEverywhere, российский EZH-Print), одноранговая сеть между своими устройствами (ZeroTier) или туннель к собственному серверу (frp или SSH на арендованном VPS). Разберём все три — с ценами и честными ограничениями.
Сравнение способов: цена, сложность, возможности
| Способ | Цена в месяц | Сложность | Что даёт |
|---|---|---|---|
| frp-туннель на своём VPS | 299–429 ₽ (аренда VPS) | Средняя | Полный веб-интерфейс Fluidd/Mainsail/OctoPrint с камерой, HTTPS и паролем, свой адрес |
| SSH-туннель (autossh) | 299–429 ₽ (тот же VPS) | Средняя | Тот же веб-интерфейс через один порт, на VPS ничего ставить не нужно |
| ZeroTier | 0 ₽ (до 10 устройств) | Низкая | Доступ по внутреннему IP со своих устройств, публичного адреса нет |
| Obico Cloud (Free) | 0 ₽; AI Premium $6.99 — картой РФ не оплатить | Низкая | Туннель до интерфейса (лимит 300 МБ/мес), AI-контроль 10 ч/мес, приложение, 1 принтер |
| Obico self-hosted | 0 ₽ + сервер с 4 ГБ RAM | Высокая | Всё то же без лимитов: туннель, AI-детекция брака, приложение |
| OctoEverywhere | 0 ₽ до 3 принтеров; Supporter $4.99 — картой РФ не оплатить | Низкая | Туннель, AI-контроль Gadget, приложения, трансляция камеры |
| EZH-Print | Бета: 0 ₽ на 60 дней, тарифы не объявлены | Низкая | Веб-доступ к Klipper/Moonraker, уведомления в Telegram и VK |
Наш выбор для тех, кто хочет контроль и предсказуемость, — frp-туннель на своём VPS: никаких лимитов трафика от сервисов, камера работает, адрес свой, а платите вы только за аренду сервера. Ниже — пошаговая настройка. Если же хочется «поставил и забыл» без терминала — начните с ZeroTier или Obico Free.
Что понадобится
- Принтер на Klipper с Mainsail или Fluidd (или OctoPrint) и доступ по SSH к его компьютеру — Raspberry Pi, Orange Pi или встроенной плате
- VPS с публичным IP — хватит младшего тарифа с 1 ГБ RAM, frp почти не ест ресурсов
- Домен или поддомен для HTTPS — не обязательно, но с ним появится нормальный сертификат и пароль в браузере
- Полчаса-час времени и базовые навыки работы в терминале
- Для варианта с ZeroTier — только аккаунт на zerotier.com и приложение на телефоне
- Для Obico self-hosted — сервер с 4 ГБ RAM (об этом — отдельная статья, ссылка ниже)
VPS мы берём у AdminVPS — дата-центры в РФ, оплата российскими картами. Для этого гайда оптимален тариф Promo: 429 ₽/мес за 1 ядро 3,6 ГГц, 2 ГБ RAM и 30 ГБ NVMe с бесплатными еженедельными бэкапами. По промокоду ph-60 первый месяц выйдет примерно в 172 ₽ (скидка 60% при оплате за один месяц, активируется один раз; на тарифы Lite промокоды не действуют). Чисто под frp-туннель хватит и Lite за 299 ₽, но 2 ГБ RAM на Promo дают запас на будущее; под Obico-сервер из соседней статьи понадобится уже Micro с 4 ГБ RAM (799 ₽).
Принтер под контролем из любой точки
Удалённый доступ к Klipper и OctoPrint, ИИ-мониторинг печати и своя библиотека моделей — на VPS от 172 ₽ в первый месяц.
- NVMe-диски
- Анти-DDoS
- Поддержка 24/7
- 🇷🇺 🇩🇪 🇳🇱 7 локаций
Первый месяц по промокоду, дальше от 429 ₽/мес — тариф Promo: 2 ГБ RAM, 30 ГБ NVMe, бэкапы включены.
Покупка по ссылке поддерживает Printer Hub 🤝
Туннель через frp: свой сервер — свои правила
frp (fast reverse proxy) — открытый проект со 108 тысячами звёзд на GitHub, актуальная версия v0.70.1 вышла в июле 2026. Идея простая: клиент frpc на компьютере принтера сам устанавливает исходящее соединение с сервером frps на вашем VPS и держит его постоянно. Входящие запросы приходят на VPS и уходят в этот туннель — поэтому серый IP дома вообще не мешает. Канал между frpc и frps шифруется: TLS включён по умолчанию начиная с v0.50.0.
Шаг 1. Ставим frps на VPS
wget https://github.com/fatedier/frp/releases/download/v0.70.1/frp_0.70.1_linux_amd64.tar.gz
tar -xzf frp_0.70.1_linux_amd64.tar.gz
sudo cp frp_0.70.1_linux_amd64/frps /usr/local/bin/
sudo mkdir -p /etc/frp# /etc/frp/frps.toml
bindPort = 7000
auth.token = "вставьте_длинный_случайный_токен"
# порты туннелей слушают только localhost —
# наружу их отдаст Caddy с HTTPS и паролем (шаг 3)
proxyBindAddr = "127.0.0.1"
# разрешаем клиентам занимать только этот порт
allowPorts = [
{ single = 8080 }
]Токен сгенерируйте командой openssl rand -hex 32 и держите одинаковым на сервере и клиенте. Без токена любой чужой frpc-клиент, отыскавший ваш порт 7000 сканером, сможет регистрировать собственные туннели на вашем сервере. proxyBindAddr = "127.0.0.1" прячет порт 8080 от интернета: до шага 3 интерфейс принтера будет виден только с самого VPS — это правильно.
# /etc/systemd/system/frps.service — официальный образец из доков frp
[Unit]
Description=frp server
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.toml
Restart=on-failure
[Install]
WantedBy=multi-user.target
# затем: sudo systemctl enable --now frpsШаг 2. Ставим frpc на компьютер принтера
# для Raspberry Pi 3/4/5 с 64-битной ОС — arm64;
# для 32-битной Raspberry Pi OS возьмите linux_arm
wget https://github.com/fatedier/frp/releases/download/v0.70.1/frp_0.70.1_linux_arm64.tar.gz
tar -xzf frp_0.70.1_linux_arm64.tar.gz
sudo cp frp_0.70.1_linux_arm64/frpc /usr/local/bin/
sudo mkdir -p /etc/frp# /etc/frp/frpc.toml
serverAddr = "IP_вашего_VPS"
serverPort = 7000
auth.token = "тот_же_токен_что_на_сервере"
[[proxies]]
name = "printer-web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 8080localPort = 80 — это порт, на котором nginx хоста отдаёт Fluidd или Mainsail (стандарт для MainsailOS и FluiddPi). Если интерфейс живёт на другом порту — подставьте свой. Проверка после запуска: systemctl status frpc на принтере, затем на VPS выполните curl -I http://127.0.0.1:8080 — в ответ придут HTTP-заголовки со статусом 200.
# /etc/systemd/system/frpc.service — на компьютере принтера
[Unit]
Description=frp client
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.toml
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
# затем: sudo systemctl enable --now frpcШаг 3. HTTPS и пароль: Caddy поверх туннеля
Наружу интерфейс отдаём только через reverse proxy с паролем и шифрованием. Берём Caddy: он сам выпускает и продлевает сертификат Let's Encrypt, certbot не нужен. Заранее сделайте A-запись домена (например printer.example.com) на IP вашего VPS и откройте в файрволе порты 80, 443 и 7000.
# подключаем официальный репозиторий Caddy (в штатных репозиториях пакета нет)
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy
# хеш пароля для basic_auth (алгоритм bcrypt):
caddy hash-password
# введите пароль — команда выведет строку вида $2a$14$...# /etc/caddy/Caddyfile
printer.example.com {
basic_auth {
printeruser $2a$14$вставьте_хеш_из_caddy_hash-password
}
reverse_proxy 127.0.0.1:8080
}
# затем: sudo systemctl reload caddyОбратите внимание: директива называется basic_auth начиная с Caddy 2.8 — в старых гайдах встречается прежнее имя basicauth. Логин и пароль браузер спросит один раз и запомнит; для Mobileraker эти же логин и пароль вводятся в настройках подключения.
SSH-туннель: минимум установки
Если ставить frp не хочется, обратный SSH-туннель делает то же самое одной командой — на VPS вообще ничего ставить не нужно. С компьютера принтера пробрасываем его 80-й порт на порт 8080 сервера:
ssh -N -R 8080:localhost:80 user@IP_вашего_VPSПо умолчанию sshd держит проброшенный порт только на 127.0.0.1 сервера (настройка GatewayPorts no) — для нашей связки с Caddy это то, что нужно: снаружи порт закрыт, а Caddy из шага 3 проксирует на него с паролем. Чтобы туннель переживал обрывы связи, поставьте autossh и оформите его службой:
# /etc/systemd/system/printer-tunnel.service — на компьютере принтера
[Unit]
Description=Reverse SSH tunnel to VPS
After=network-online.target
Wants=network-online.target
[Service]
User=pi
Environment=AUTOSSH_GATETIME=0
ExecStart=/usr/bin/autossh -M 0 -N \
-o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" \
-o "ExitOnForwardFailure yes" \
-R 8080:localhost:80 user@IP_вашего_VPS
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.targetКогда выбирать SSH вместо frp: если туннель нужен один и хочется минимальной настройки. frp удобнее, когда сервисов несколько (интерфейс, отдельный поток камеры, Moonraker API) — в frpc.toml они добавляются отдельными секциями [[proxies]], а не отдельными службами.
ZeroTier: одноранговая сеть между своими устройствами
ZeroTier объединяет ваши устройства — компьютер принтера, телефон, ноутбук — в одну виртуальную сеть, как будто все они в одной комнате: у каждого появляется внутренний IP, по которому открывается Mainsail. Бесплатный план — до 10 устройств и 1 сеть (раньше было 25 устройств — лимит урезали). Подробный русский гайд с Elegoo Neptune 3 Pro и серым IP есть на 3DToday — 16,6 тысяч просмотров с февраля 2024.
Нюансы: управление сетью живёт в облаке zerotier.com, а трафик между устройствами идёт напрямую (P2P). Если прямое соединение не пробилось через NAT, ZeroTier переключается на свои relay-серверы — и именно на них с конца 2025 жалуются пользователи из России; на отдельных мобильных операторах (Мегафон, Yota) сервис работает нестабильно. Итог: отличный бесплатный вариант «для себя», но публичного адреса он не даёт и стабильность зависит от вашего оператора.
Obico: наблюдение с AI-детекцией брака
Obico — это туннель до вашего Mainsail/Fluidd/OctoPrint плюс мобильное приложение и нейросеть, которая ловит «макаронник» и сама ставит печать на паузу. Бесплатный облачный план: 1 принтер, 10 часов AI-мониторинга и 300 МБ туннельного трафика в месяц — на «глянуть с работы» хватает, на постоянный просмотр камеры нет. Тариф AI Premium ($6.99/мес при годовой оплате) российской картой не оплатить — биллинг через Stripe. Зато у Obico есть полностью бесплатный self-hosted вариант без каких-либо лимитов — его можно поднять на том же VPS (нужно 4 ГБ RAM, GPU не требуется): пошаговый разбор — в статье «Свой сервер для 3D-печати: Obico и Manyfold на VPS».
Похожие сервисы: OctoEverywhere — бесплатно до 3 принтеров с безлимитным доступом и AI-контролем Gadget, платный Supporter от $4.99/мес (тоже Stripe, картой РФ не оплатить); поддерживает OctoPrint, Klipper, Mainsail, Fluidd и даже Elegoo OS. И российский EZH-Print — веб-доступ к принтерам на Klipper/Moonraker с уведомлениями в Telegram и VK: сейчас это бесплатная бета на 60 дней, тарифы после неё не объявлены; первый обзор на 3DToday осторожно-положительный.
Безопасность: почему нельзя просто открыть порт
Ещё в 2018 году исследователи SANS ISC нашли через Shodan 3 759 экземпляров OctoPrint, торчащих в интернет вообще без пароля. Разработчики OctoPrint прямо пишут, что выставлять его в открытый интернет — ужасная идея, а документация Mainsail просит не открывать порты Mainsail и Moonraker всему миру. Причина проста: открытый Moonraker — это произвольный G-код (включая нагрев хотенда и стола до максимума), подмена файлов печати, правка printer.cfg с лимитами температур, выключение хоста и просмотр вашей камеры.
Важно понимать и настройки по умолчанию: в стандартном MainsailOS Moonraker слушает все интерфейсы (0.0.0.0:7125), а «доверенными» считает все домашние подсети — любой гость вашего Wi-Fi получает полный API без пароля. Поэтому пароль на туннеле (basic_auth из шага 3) обязателен, а в moonraker.conf стоит включить авторизацию:
# фрагмент moonraker.conf
[authorization]
force_logins: True
trusted_clients:
192.168.1.0/24
cors_domains:
http://*.local
http://*.lanСоветы и типичные ошибки
- Токен для frp генерируйте длинным: openssl rand -hex 32 — и никогда не оставляйте auth.token пустым
- В файрволе VPS открывайте только 80, 443 и 7000 — порт 8080 наружу открывать не нужно, его обслуживает Caddy
- A-запись домена делайте до запуска Caddy — без неё Let's Encrypt не выдаст сертификат
- localPort в frpc.toml должен совпадать с портом веб-интерфейса на хосте: у MainsailOS и FluiddPi это 80
- Смотрите журнал туннеля при проблемах: journalctl -u frpc -f на принтере и journalctl -u frps -f на VPS
- Шифрование канала frp включено по умолчанию (с v0.50.0) — дополнительно настраивать ничего не нужно
Управление с телефона
Для Klipper есть Mobileraker — живое приложение для iOS и Android (последний релиз — май 2026): температуры, оси, макросы, камера, аварийный стоп. Внутри домашней сети оно подключается к Moonraker напрямую, а извне — через ваш туннель: в настройках подключения укажите https-адрес из шага 3 и логин с паролем от basic_auth. Push-уведомления о ходе печати настраиваются через компонент Mobileraker Companion. У Obico и OctoEverywhere — свои приложения, для OctoPrint есть OctoApp.
Принтер под контролем из любой точки
Удалённый доступ к Klipper и OctoPrint, ИИ-мониторинг печати и своя библиотека моделей — на VPS от 172 ₽ в первый месяц.
- NVMe-диски
- Анти-DDoS
- Поддержка 24/7
- 🇷🇺 🇩🇪 🇳🇱 7 локаций
Первый месяц по промокоду, дальше от 429 ₽/мес — тариф Promo: 2 ГБ RAM, 30 ГБ NVMe, бэкапы включены.
Покупка по ссылке поддерживает Printer Hub 🤝
FAQ
Источники
- frp — официальный репозиторий и примеры конфигов
- Документация frp: запуск через systemd
- Mainsail: FAQ об удалённом доступе
- Moonraker: документация секции [authorization]
- OctoPrint: гайд о безопасном удалённом доступе
- SANS ISC: отчёт об открытых экземплярах OctoPrint
- 3DToday: ZeroTier — удалённый доступ к принтеру на Klipper
- 3DToday: первые тесты EZH-Print
- juev.org: опыт переезда на frp + Caddy
- Tailscale issue #13648: недоступность из России
Команда Printer Hub
Изучаем официальную документацию и инструкции производителей, тестируем моды на реальных принтерах и анализируем опыт сообщества Reddit, Telegram, Printables и YouTube.