Веб-интерфейс Mainsail на ноутбуке и телефоне — управление 3D-принтером из браузера
Mainsail: полный контроль над принтером из браузера — с компьютера и с телефона

Удалённый доступ к 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» открыт до сих пор.

Терминал: установка Tailscale с российского IP завершается ошибкой HTTP 451
Попытка установить Tailscale с российского адреса: скрипт падает с ошибкой 451 (скриншот из гайда на 3DToday)

Остаются три рабочих пути: сервис-посредник (Obico, OctoEverywhere, российский EZH-Print), одноранговая сеть между своими устройствами (ZeroTier) или туннель к собственному серверу (frp или SSH на арендованном VPS). Разберём все три — с ценами и честными ограничениями.

Сравнение способов: цена, сложность, возможности

СпособЦена в месяцСложностьЧто даёт
frp-туннель на своём VPS299–429 ₽ (аренда VPS)СредняяПолный веб-интерфейс Fluidd/Mainsail/OctoPrint с камерой, HTTPS и паролем, свой адрес
SSH-туннель (autossh)299–429 ₽ (тот же VPS)СредняяТот же веб-интерфейс через один порт, на VPS ничего ставить не нужно
ZeroTier0 ₽ (до 10 устройств)НизкаяДоступ по внутреннему IP со своих устройств, публичного адреса нет
Obico Cloud (Free)0 ₽; AI Premium $6.99 — картой РФ не оплатитьНизкаяТуннель до интерфейса (лимит 300 МБ/мес), AI-контроль 10 ч/мес, приложение, 1 принтер
Obico self-hosted0 ₽ + сервер с 4 ГБ RAMВысокаяВсё то же без лимитов: туннель, AI-детекция брака, приложение
OctoEverywhere0 ₽ до 3 принтеров; Supporter $4.99 — картой РФ не оплатитьНизкаяТуннель, AI-контроль Gadget, приложения, трансляция камеры
EZH-PrintБета: 0 ₽ на 60 дней, тарифы не объявленыНизкаяВеб-доступ к Klipper/Moonraker, уведомления в Telegram и VK
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 ₽).

Партнёр Printer Hub

Принтер под контролем из любой точки

Удалённый доступ к Klipper и OctoPrint, ИИ-мониторинг печати и своя библиотека моделей — на VPS от 172 ₽ в первый месяц.

  • NVMe-диски
  • Анти-DDoS
  • Поддержка 24/7
  • 🇷🇺 🇩🇪 🇳🇱 7 локаций
Выбрать VPS от 172 ₽

Первый месяц по промокоду, дальше от 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.

Официальная схема архитектуры frp: клиент frpc за NAT соединяется с сервером frps на своём сервере
Схема из документации frp: frpc за NAT держит исходящий туннель до frps на сервере с публичным адресом

Шаг 1. Ставим frps на VPS

bash
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
toml
# /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 — это правильно.

ini
# /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 на компьютер принтера

bash
# для 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
toml
# /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 = 8080

localPort = 80 — это порт, на котором nginx хоста отдаёт Fluidd или Mainsail (стандарт для MainsailOS и FluiddPi). Если интерфейс живёт на другом порту — подставьте свой. Проверка после запуска: systemctl status frpc на принтере, затем на VPS выполните curl -I http://127.0.0.1:8080 — в ответ придут HTTP-заголовки со статусом 200.

ini
# /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.

bash
# подключаем официальный репозиторий 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$...
text
# /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 эти же логин и пароль вводятся в настройках подключения.

Интерфейс Fluidd на телефоне и компьютере: вебкамера, температуры и управление печатью
Fluidd через туннель ведёт себя как дома: камера, температуры, консоль — всё на месте

SSH-туннель: минимум установки

Если ставить frp не хочется, обратный SSH-туннель делает то же самое одной командой — на VPS вообще ничего ставить не нужно. С компьютера принтера пробрасываем его 80-й порт на порт 8080 сервера:

bash
ssh -N -R 8080:localhost:80 user@IP_вашего_VPS

По умолчанию sshd держит проброшенный порт только на 127.0.0.1 сервера (настройка GatewayPorts no) — для нашей связки с Caddy это то, что нужно: снаружи порт закрыт, а Caddy из шага 3 проксирует на него с паролем. Чтобы туннель переживал обрывы связи, поставьте autossh и оформите его службой:

ini
# /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.

Список устройств Members в панели ZeroTier: авторизация и выданные IP-адреса
Панель my.zerotier.com: устройство Orange Pi с Klipper авторизовано и получило внутренний адрес (скриншот из гайда на 3DToday)

Нюансы: управление сетью живёт в облаке 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».

Приложение Obico: наблюдение за печатью и AI-контроль с телефона
Obico: камера, AI-оценка риска брака и пауза печати — прямо с телефона

Похожие сервисы: 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 стоит включить авторизацию:

ini
# фрагмент 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.

Mobileraker: панель управления Klipper-принтером на смартфоне — температуры и вебкамера
Mobileraker: панель принтера — температуры, камера и управление осями с телефона
Партнёр Printer Hub

Принтер под контролем из любой точки

Удалённый доступ к Klipper и OctoPrint, ИИ-мониторинг печати и своя библиотека моделей — на VPS от 172 ₽ в первый месяц.

  • NVMe-диски
  • Анти-DDoS
  • Поддержка 24/7
  • 🇷🇺 🇩🇪 🇳🇱 7 локаций
Выбрать VPS от 172 ₽

Первый месяц по промокоду, дальше от 429 ₽/мес — тариф Promo: 2 ГБ RAM, 30 ГБ NVMe, бэкапы включены.

Покупка по ссылке поддерживает Printer Hub 🤝

FAQ

Источники