Альтернативный способ получить доступ к Octoprint извне
Листая старую тетрадь расстрелянного генерала, я как-то видел, что у кого-то на 3dtoday были проблемы с организацией доступа к Octoprint через Интернет. Стандартный способ предельно прост, на самом деле: зайти на роутер, дать фиксированный ip-адрес octoprint, настроить порт-форвардинг на него, зайти в раздел DDNS роутера, зарегистрироваться на каком-нибудь поддерживаемом DDNS, настроить. Но это и очень просто и очень сложно и не всегда работает :-). Вот например у меня дома две сети, возможность пробросить порт через 2 сети есть и я так непременно сделаю, но есть ещё одна проблема: Ростелеком. Иногда мне выдают "серый" IP, к которому невозможно подключиться извне и способ с DDNS не работает.
Но так получилось, что я разработчик и знаю ещё один "запасной" способ, которым хочу поделиться, вдруг пригодится. Пример для образа Raspbian с предустановленным Octoprint для Raspberry PI 3 (ARM), для AMD64 или ARM64 всё то же самое, просто надо будет скачать другой архив. Пользователь pi, если пользователь другой - тоже надо будет указать правильного пользователя.
Способ этот - локальный туннель, например ngrok.com или localtunnel.me. Я буду рассказывать на примере ngrok. Кстати, сегодня для меня была недоступна панель управления ngrok без VPN, возможно она пала жертвой Роскомнадзора. Для начала надо будет зайти на ngrok.com и зарегистрироваться там, там же можно получить свой authkey. В моём дистрибутиве Octoprint версия ngrok безнадёжно устаревшая и уже не работает, так что логинимся на нашу "пишку" и яростно фигачим команды!
Кстати, строчки "pi@octopi:~ $" или "root@octopi:~#" вводить не нужно, это то, что сервер вам говорит.
Сначала скачаем с https://ngrok.com/download версию для ARM.
pi@octopi:~ $ wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm.zip
2019-11-24 19:41:43 (2.76 MB/s) - ‘ngrok-stable-linux-arm.zip’ saved [13091884/13091884]
pi@octopi:~ $ unzip ngrok-stable-linux-arm.zip
pi@octopi:~ $ sudo mv ngrok /usr/local/sbin/
pi@octopi:~ $ ngrok authtoken мой-auth-token
Authtoken saved to configuration file: /home/pi/.ngrok2/ngrok.yml
pi@octopi:~ $ echo 'region: eu' >> .ngrok2/ngrok.yml
pi@octopi:~ $ echo 'console_ui: iftty' >> .ngrok2/ngrok.yml
Запускаем ngrok http 80, получаем результат, текстовый интерфейс, в котором написано что-то вроде Forwarding http://ac60ba17.eu.ngrok.io -> localhost:80.
Кстати, если вы находитесь в США, поменяйте в ngrok.yml регион на us, или переместитесь в прошлое и не вводите команду echo 'region: eu' >> .ngrok2/ngrok.yml
В принципе, это всё, теперь можно входить на адрес ac60ba17.eu.ngrok.io, до тех пор, пока не закроете это окошко. Что значит "уже закрыли"? И даже сами нашли, что CTRL+C для закрытия?
Да ладно, сам знаю, что octoprint - он в основном для людей, которые хотят легко и удобно, поэтому поступим иначе. Нам нужен root, желательно весь! Пишем sudo su -, вводим пароль, если у вас требуется пароль. Надо создать файл /etc/systemd/system/ngrok.service, если умеете пользоваться vim или другим консольным редактором, рекомендую этот способ (вот пример https://gist.github.com/balkin/0e74d29a0ac61169ca7b57114a401d8e). Если доверяете незнакомым людям в интернете, то вот так можно сделать:
wget -O /etc/systemd/system/ngrok.service https://gist.github.com/balkin/0e74d29a0ac61169ca7b57114a401d8e/raw/89ffd3ae5a4df6bd92bcb2f0d657974d82fa12f5/ngrok.service
root@octopi:~# systemctl enable ngrok
Created symlink /etc/systemd/system/multi-user.target.wants/ngrok.service → /etc/systemd/system/ngrok.service.
root@octopi:~# systemctl restart ngrok
Адрес туннеля можно найти вот тут: https://dashboard.ngrok.com/status, при перезапуске ngrok или ОС он может
Не забудьте, что злые русские хакеры могут взломать не только 3d-принтер, но даже президента! Обязательно установите надёжный пароль на ваш Octoprint. Кстати, пароль cjhjrnsczxj,tpmzyd;jgeceyekb,fyfy не может считаться надёжным, он уже скомпрометирован.
P.S., P.P.S. и P.P.P.S.: Обычно этот сервис используется для того, чтобы предоставить доступ к локальному API в интернет. Если будете круглосуточно смотреть веб-камеру через интернет, то скорее всего, скорость вам срежут или вообще аккаунт заблокируют. А вот если пользоваться этой мордой только с работы (да вы и не захотите из локальной сети это делать, оно вообще-то тормозит), при этом камеру смотреть изредка - всё будет хорошо.
Если вдруг не получилось, могу попробовать помочь, пишите :) Хотя это всё точно работает, я свои логи из консоли выложил и дописал немножко текста.
Если вдруг это не считается "Техничкой", можно переместить в личные дневники :)
Еще больше интересных статей
СЖО от процессора на охлаждение термобарьера.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
К вопросу как встроить деталь внутрь 3D-печатаемого объекта
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Хочу поделиться своим опытом создания...
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.

Комментарии и вопросы
Да там вообще самая большая пр...
Да там вообще самая большая пр...
Недавно смотрел. Orange pi 2w....
Здраствуйте.У меня Fb Ghost 5,...
Всем привет, подскажите, может...
Господа, подскажите, нормально...
Принтер с "ума сошёл". Стол "б...