Металл2024 Реклама
Метобр2024 Реклама

Альтернативный способ получить доступ к Octoprint извне

brn
Идет загрузка
Загрузка
25.11.2019
5569
17
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

9

Листая старую тетрадь расстрелянного генерала, я как-то видел, что у кого-то на 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 в интернет. Если будете круглосуточно смотреть веб-камеру через интернет, то скорее всего, скорость вам срежут или вообще аккаунт заблокируют. А вот если пользоваться этой мордой только с работы (да вы и не захотите из локальной сети это делать, оно вообще-то тормозит), при этом камеру смотреть изредка - всё будет хорошо.

Если вдруг не получилось, могу попробовать помочь, пишите :) Хотя это всё точно работает, я свои логи из консоли выложил и дописал немножко текста.

Если вдруг это не считается "Техничкой", можно переместить в личные дневники :)

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

9
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама