Přístup k octoprintu z veřejné sítě

3Dbenchy

 

Dobrý den, zdravím Vás u dalšího článku z malé továrny na velké věci. V předchozím dílu této série, Jak nainstalovat tiskový server octoprint jsme si tiskový server octoprint nainstalovali a obecně nastavili. Dnes se podíváme jak tento úžasný nástroj posunout dále a ještě více si práci s 3D tiskárnou zjednodušit.

Protože je tento systém open source projekt, vznikají stále nové vylepšení a přídavné pluginy pomocí kterých dnes můžeme ovládat svou 3D tiskárnu odkudkoliv na světě i když nemáme veřejnou IP adresu přidělenou správcem sítě či zprostředkovatelem internetového připojení. A to je právě vylepšení, které si nastavíme. Jako první krok musíme server zabezpečit a nastavit si vlastní heslo pro přístup do linuxové distribuce. Defaultně nastavené heslo, které nám doposud stačilo, je nastaveno pro všechny linuxové distribuce běžící na deskách raspberry pi, stejně. Proto člověk ani nemusí být kovaný hacker a do našeho serveru by pronikl hravě. Zabráníme tomu, jeho změnou. Zvolte si proto heslo silné, obsahující nejlépe velké i malé písmena, číslici a speciální znak. Sílu hesla si můžete ověřit třeba na stránce howsecureismypassword.net která propočítá pravděpodobnou dobu překonání hesla pomocí kombinací. Můj výsledek 8 měsíců je pro mě dostačující.

Heslo je…

Abychom změnili heslo, budeme muset nahlédnout do linuxového terminálu. Operační systém windows žádný terminál nemá, proto budeme potřebovat program putty.

Ten se s naším raspberry spojí protokolem SSH a umožní nám nejrůznější nastavení. Program si stáhnete z oficiálních stránek programu putty.org, nebo kdekoliv jinde. Je zcela zdarma v neomezené verzi. Jednoduché okno nám na levé straně nabídne spousty nastavení, my však nic z toho nebudeme potřebovat. Důležitý je jen horní řádek, do kterého se vepíše IP adresa serveru a poté tlačítko „open“. V nově otevřeném okně vidíte ve své podstatě příkazový řádek linuxu, který nás aktuálně vyzývá, abychom zadali přihlašovací jméno. To je defaultně nastaveno jako „pi“. Dále budeme dotázáni na zadání přihlašovacího hesla, to je „raspberry“. Jednoduchým příkazem:

 

sudo raspi-config

 

potvrzením klávesou enter se dostáváme do nastavení desky raspberry pi nehledě na použitou verzi.

Jak vidíte na obrázku, hned první řádek mění heslo pro přístup uživatele. Klávesou enter nabídku potvrdíme, potvrdíme také další stránku která nás upozorní že měníme heslo. Na další obrazovce s černým pozadím dvojím zadáním nového hesla, to původní změníme. Dále se posuneme na řádek „7 Advanced Options“ a zvolíme nabídku „A3 Memory Split“.

V totomto nastavení si přerozdělíme využití operační paměti. Řekněme, že v případě Raspberry Pi Zero W je defaultně nastaveno 128MB pro videopaměť kterou při používání octoprintu vůbec nepoužíváme. Proto tuto paměť uvolníme a změníme na dostačujících 16MB. Pro procesor nám tedy zůstává 484MB v ideálním případě. Z lokálního nastavení je to prozatím vše, pojďme se podívat dále.

 

NO-IP.com

Pokud nemáme veřejnou IP adresu (přístupnou odkudkoliv z internetu) přidělenou správcem sítě, existuje řešení zvané „no-ip“. Tato webová služba v určitých časových intervalech obdrží od našeho octoprintu informace, kde se právě nachází. Tedy za kterými IP adresami všech routerů je octoprint ukrytý a namapuje nám správnou cestu. Stačí se zaregistrovat a do raspberry pi nainstalovat balíček s pluginem. Přejděme tedy na stránku noip.com kde si na začátku registrace vybereme hostname, třeba „mujoctoprint“ a příponu domény z rolovacího menu, třeba „hopto.org“. Hostname i doménu si pochopitelně zvolte vlastní, moje volba “mujoctoprint.hopto.org” bude sloužit pouze pro účely tohoto článku, avšak po uplynutí 30ti dnů bude dostupná. Až bude vše nainstalováno, náš octoprint tedy nalezneme na stránce www.mujoctoprint.hopto.org. Stačí stisknout SignUp a přejdeme na stránku, kde dokončíme registraci zadáním emailu a svého hesla. Správnost zadání potvrdíme v ověřovacím emailu, který nám web noip odešle na zadanou emailovou adresu. Nyní musíme nainstalovat plugin no-ip do svého raspberry, vrátíme se tedy k terminálu putty, kde po přihlášení zadáme příkazy v následujícím pořadí:

 

mkdir /home/pi/noip – vytvoření složky noip (za příkazem mkdir je mezera)

cd /home/pi/noip – otevření vytvořené složky noip  (za příkazem cd je mezera)

wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz – stažení instalačního balíčku 

tar vzxf noip-duc-linux.tar.gz – rozbalení instalačního balíčku

cd noip-2.1.9-1 – otevření rozbalené složky

sudo make install – instalace

 

Při instalaci budeme dotázáni na zadání přístupového jména či emailu a hesla, které jsme si vyplnili při registraci na no-ip.com. Každé zadání, tedy jméno/email a heslo potvrdíme klávesou enter. Pokud jsme vše zadali správně, v terminálu již uvidíme vybrané doménové jméno „mujoctoprint.hopto.org“. Klávesou Y  potvrdíme správnost zadání a poté vyplníme „update interval“. Tím našemu raspberry pi určíme jak často se bude do noip přihlašovat a obnovovat tak aktuální cestu všemi routery. Standardní nastavení 30min někdy nemusí stačit, proto si nastavuji 15minut, které mě prozatím nikdy nezklamaly. Další dotaz je na spuštění nějakého skriptu po dokončení instalace. Zvolíme N a tím je část instalace ukončena.

 

sudo /usr/local/bin/noip2 – spuštění aplikace

sudo noip2 ­-S (Capital “S”) – kontrola funkčnosti

 

Nyní se již můžeme v internetovém prohlížeči podívat na vámi zvolenou doménu, v našem případě www.mujoctoprint.hopto.org kde uvidíme dobře známý octoprint a můžeme s ním začít pracovat. Nejen z naší domácí sítě ale odkudkoliv kde máte přístup k internetu. Krásné, jednoduché nastavení.

Splněním všech kroků v tomto návodu jsme naplnili obsah článku a dostali se tak k jeho konci. Aplikace noip se bude automaticky spouštět při každém zapnutí raspberry a dále se tedy již o nic nemusíme starat. Webová služba no-ip nám každý měsíc pošle email s upozorněním, že naší doméně expiruje platnost. V nastavení účtu jednoduše kliknutím platnost prodloužíme o další měsíc. Vše zdarma.

 

V příštím článku z malé továrny na velké věci si ukážeme, jak tiskový server posunout o další krok kupředu a ke standardnímu ovládání octoprintu přidat plugin, kterým budeme celou tiskárnu vypínat a zapínat pomocí relé. Raspberry pi necháme trvale připojené k síti (spotřeba energie je mizivá) tiskárnu a případné další periferie jako osvětlení atd., budeme zapínat a vypínat podle potřeby. Podíváme se také na dostupné relé obvody a případně si vytvoříme jednoduchý obvod, který bude fyzicky tranzistorem ovládat relé, abychom velkém odběrem proudu nezatěžovali samotné raspberry pi. Nebude to nic složitého. Pokud už za sebou máte nějakou zkušenost s pájením bude to hračka a pokud ne, použijete hotovou ovládací desku kterých je internetu k dostání hromady.  Přidáme si také plugin pro teplotní sensor, kterým budeme hlídat teplotu v okolí tiskárny abychom měli úplný přehled a kontrolu nad zařízením mimo náš dohled.

 

 

 

 

 

30 thoughts on “Přístup k octoprintu z veřejné sítě

  1. Předem bych chtěl poděkovat za super seriál článků. Mám dotaz ohledně noip, vše jsem nainstaloval dle rad včetně registrace vše proběhlo v pohodě až na příkaz sudo noip2 ­-S (Capital “S”) – kontrola funkčnosti… u něj mi to napíše bash chyba syntaxe. A nedaří se mi připojit k té doméně co jsem si vytvořil. Ahaa to má být bez závorek pak už ten příkaz funguje :). Ale připojení mi stále nejde :/

  2. Dobrý den, nedaří se mi rozbalit stažený archiv. Píše mi to chybu:
    gzip: stdin: nor in gzip format
    tar: Child returned status 1
    tar: Error is not recoverable: exiting now

    Co mám špatně a jak to napravit?

    1. Dobrý den, určitě bych jako první krok zkusil odstranit stažené soubory a poté bych je stáhl znova a zkusil rozbalit. Mohlo dojít k nějaké chybě při stahování a nesedí checksum…

      1. Stažení proběhne následovně: (velikost souboru je zřejmě 42,24kB). Zkouším to už cca po šesté (vždy mezitím smažu stažený soubor “sudo rm ….” a pomocí dir ověřím, že opravdu zmizel, stáhnu znosu ale stále to samé. V Linuxu jsem BFU, takže nedokážu změnit přístupová práva k souboru ale nevím, jestli to tím může být…

        pi@octopi:~/noip $ wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
        –2018-05-28 10:00:05– http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
        Resolving http://www.no-ip.com (www.no-ip.com)… 8.23.224.110
        Connecting to http://www.no-ip.com (www.no-ip.com)|8.23.224.110|:80… connected.
        HTTP request sent, awaiting response… 301 Moved Permanently
        Location: https://www.noip.com [following]
        –2018-05-28 10:00:06– https://www.noip.com/
        Resolving http://www.noip.com (www.noip.com)… 8.23.224.107
        Connecting to http://www.noip.com (www.noip.com)|8.23.224.107|:443… connected.
        HTTP request sent, awaiting response… 200 OK
        Length: unspecified [text/html]
        Saving to: ‘noip-duc-linux.tar.gz’

        noip-duc-linux.tar. [ ] 42.24K 67.3KB/s in 0.6s

        2018-05-28 10:00:08 (67.3 KB/s) – ‘noip-duc-linux.tar.gz’ saved [43251]

        1. Takže stažený soubor (42,4kB) je nějaký html soubor (je to vidět při otevření Hex-editorem. Stáhnul jsem tedy archiv na linuxovém PC ručně a přemístil na do příslušné složky na SD kartě. Teď jdu zkusit další postup podle návodu.
          Nakopla mě ta hláška ve výpisu stahování – 301 Moved permanently

          1. Takže další postup již v pohodě až na to, že mi nejde otevřít stránka s printserverem (překročený časový limit). Přitom po vložení mailu a hesla během instalace to řeklo správnou adresu. No počkám 15 minut až se oživí cesta a uvidím.
            Každopádně ten odkaz v wget (momentálně) nefunguje!!!

  3. Tak přístup zvenčí se nedaří a netuším, jak zjistit co nefunguje. DUC klient se zdá, že běží, jen mi připadá, že ho musím pokaždé po restartu serveru znovu spustit.

    pi@octopi:~ $ sudo noip2 -S
    1 noip2 process active.

    Process 1826, started as noip2, (version 2.1.9)
    Using configuration from /usr/local/etc/no-ip2.conf
    Last IP Address set 46.135.39.144
    Account melsoft@cbox.cz
    configured for:
    host melsoft.sytes.net
    Updating every 15 minutes via /dev/wlan0 with NAT enabled.

    1. Tak takhle hluboké znalosti Linuxu nemám abych v teď poradil. Snad některý jiný čtenář pomůže. Případně google anebo nějaké diskuzní fórum octoprintu. Každopádně budu rád, když se pak podělíte s řešením. Mi v těchto “zapeklitých” situacích pomůže zformátovat SD kartu a začít úplně znova. Multimediální centrum OSMC se mi také podařilo rozjet až na druhý pokus.

      1. Zkusil jsem nainstalovat klienta DUC (každých 15minut vidím obnovení cesty stejně jako na Octoprintu) na normálním PC, (založil jsem si další host adresu) a prostě to nefunguje a nelze se na tu adresu připojit. Nezkoušel někdo nainstalovat na Raspberry Teamviewer?

        Jak se odinstaluje ten DUC klient?

  4. Udelal jsem vse podle clanku. Vse mi funguje jak ma ale pripojeni mi take nejde. Patral jsem a zjistil neco o portech ale take mi to nefunguje..

    1. Řekl bych že budete mít špatně nastavený portforward. To už ale budete muset hledat na nějakém fóru nebo v článku o síťování případně o vašem routeru. Tam už je to hodně individuální a já vám s tímto nemám jak poradit. Snad se najde jiný čtenář který už třeba podobný problém řešil.

  5. Zdravím.
    taky se mi to nechtělo připojit ale uz jsem to vyřešil a super.
    Řešení není složité-
    musíte vědět IP adresu z noip – moje je 89.103.xxx.yyy
    taky musíte znát IP Raspberry
    přihlašte do svého routeru a přejít na přesměrování portů
    musíte zadat : veřejný port – jaké koliv 4 místné čislo…třeba rok narození
    IP adresu Raspberry
    a port na který se to musí přesměrovat – 80
    uložit a restart routeru
    třeba z mobilu přes mobilní data zadat do prohlížeče – IP ADRESU Z NOIP -89.103.XXX.YYY HNED ZA TO DVOJTEČKU A ČÍSLO VEŘEJNÉHO PORTU- TŘEBA TEN ROK NAROZENÍ

    MŮJ PŘIKLAD- 89.103.XXX.YYY:5600

    Doufám že to pomůže tem co to nešlo. Z venku se musíte přihlašovat zadáním toho IP a portu

    Miras

  6. Zdravím, napíšu zde jak nastavit octoprint na veřejnou IP.

    1. Musíme znát ip adresu ,kterou router přidělil octoprintu (DHCP clients list (192.168.0.xx)) a svoji ip adresu (www.mojeip.cz)
    2. Přejít do forwarding> add new
    3. Do kolonky “Service port” zadejte port 55000 (libovolný)
    4. Do kolonky “Ip address” 192.168.0.xx
    5. Do kolonky “Internal Port” 80
    6. do kolonky “Protocol” TCP or UDP
    7. Status>Enabled
    8. Uložit

    Pak už stačí jenom do prohlížeče zadat vaší veřejnou ip (mojeip.cz) + port což jsme si zadali 55000.
    Bude to vypadat asi takto Př: 123.12.0.5:55000

  7. Dobrý den , spustil jsem web např. mujoctoprint.org a když se to načte chce to po mně heslo internet ne octoprint Ale jaké?

    1. Zřejmě jste nějakým způsobem přeskočil průvodce prvního spuštění kde si přihlašovací údaje zadáváte.

  8. Dobry den. Postupoval jsem dle vaseho navodu a vse vypada, ze probehlo. Jen pri pokusu o prihlaseni na danou adresu hopto.org to po me chce login. At zadavam co chci, tak mi to pise spatne udaje. Uz nevim co dal. Diky.

    1. Dobrý den, při prvním spuštění octoprintu byste měl projít takovým uvítacím nastavením kde se právě zadává jméno a heslo pro uživatele aby nikdo jiný nemohl s tiskárnou manipulovat. Předpokládám že tohle jméno a heslo to po vás chce.

      1. Zdravim. Dekuji za odpoved. Tahle moznost mi docvakla asi 5min potom, co jsem odeslal komentar. Samozrejme, to byla spravna volba. 🙂 Nicmene na stejne siti se pres tenhle xxx.hopto.org k tiskarne pripojim, ale to se pripojim ikdyz zadam primo adresu tiskarny 192.168.1.xx. Zvenku mi to nefunguje. Zkousel jsem i dle postu vyse nastavit router, ale je to beze zmeny. Holt se musim smirit s tim, ze to vzdalene nepujde. Nakonec to dopadne tak, ze dokoupim jeste jednu kameru k zabezpecovacce a tu tam dam. Stejne mi slo jen o dohled, ne ovladani.
        Dale bych se chtel zeptat, zda je mozne, ze si modul Pi po vypnuti nepamatuje nastaveni, nebo smaze nainstalovane programy. Po kazdem vypnuti mi nejde spustit MC, musim ho znovu nainstalovat a kdyz projdu strukturu adresare home, tak tam slozka pi/noip neni… Uz se s tim trapim asi 14dni a dochazi mi trpelivost. Diky.

        1. Zkusil bych to nastavení vzdáleného ovládání dokončit. Ono totiž nejde jen o dohled, není horšího pohledu, než když se tisk nepovede a vy jen na dálku vidíte jak plýtváte plast na špagetové monstrum. Samozřejmě stačí mít možnost tisk zastavit. Já jsem jednou dokonce znovu spustil tisk. Tak dlouho jsem extruderem jezdil nad podložkou než jsem celý nepovedený výtisk shodil dolů. Poté jsem jen upravil výšku a tiskl znova. To bylo zábavy v čekárně když se dílo podařilo 🙂
          Jestliže vaše pi po vypnutí ztrácí některé fragmenty souborů, zkusil bych jednoznačně octoprint přeinstalovat. Protože systém běží z SD karty a neustále si něco někam zapisuje, jiné vypnutí než to příkazem tyto soubory poškodí. Proto je tam možná po zapnutí nemáte.

  9. Přeinstaloval jsem octopi snad už stokrát a to bude asi ten problém, protože zřejmě opakuji tu samou chybu stále dokola. Nicméně ten postup znám už z paměti, takže zkusím vypsat jednotlivé kroky jak to dělám a třeba tu chybu uvidíte.
    Stáhnu img octoprint, spustim prg balenaEtcher, zvolím odkud a kam se má img nainstalovat a spustím. Cca po 10min vše proběhne. Vyjmu kartu, vložím znovu do PC a edituji soubor s konfigurací připojení k wifi. Pak kartu vložím do Pi a zasunu do tiskárny (Prusa MK3S). Pouštím tiskárnu počkám až naběhne Pi a přes PuTTY se připojím k Pi. Tam vytvořím adresář /home/pi/noip, stahnu balíček, spustím instalaci. Vyplním požadovaný login na přístup NoIP, vyskočí mi hlášení, že byl nalezen host na xxx.hopto.org, nastavuji interval přihlášení a obnovy na 10min.
    Pak si ještě pro jistotu nainstaluji mc abych zkontroloval přítomnost všech souborů a exitem se odhlašuji. Ještě jsem zapoměl, že jediné, co dělám navíc je v configu povolení SSH a VNC na enabled. Někde jsem na internetu našel, že pro přístup “zvenku” musí být tyto služby spuštěny. Možná ta chyba bude tady, ale pamatuji si, že to nešlo ani když byly tyto služby vypnuté.
    V prohlížeči zadám xxx.hopto.org, chvíli to trvá, pak naběhne. Zadám přihlašovací údaje na Octoprint a přihlásím se.
    Na telefonu odpojím wifi a zadám do prohlížeče adresu xxx.hopto.org a nic se neděje. Po chvíli mi vyskočí hlášení, že nelze nalézt uvedenou stránku a mám akci zopakovat později, nebo zkontrolovat zadání. Nevím jestli na to má vliv, že jde o iPhone, ale na jiném systému to nemám možnost ověřit. Zkoušel jsem i různé aplikace (Octoclient, Nautilus), kde na wifi se na tiskárnu dostanu, ale zvenku ne. Zkoušel jsem i editovat připojení v aplikacích, buď přes http://192.168.1.xx nebo http://xxx.hopto.org ale bez výsledku. Na wifi se ani přes to hopto nepřipojím. Pouze zadáním IP adresy. Takže netuším jakým způsobem to mám dotáhnout do zdárného konce. Ještě mě napadá, článek jste tvořil před více než rokem, není tedy možné, že se od té doby něco změnilo? Děkuji za váš čas a trpělivost.

  10. Zdravím. Mám další nový poznatek. Po další reinstalaci OS už se na tiskárnu nedostanu ani přes IP ani přes hopto.org. Už se mi ukáže jen přes octopi.local. Takže už vážně nevím, kde je sever… Nicméně jak si tak pročítám zpětně naši diskuzi, zaujala mě poslední věta “Protože systém běží z SD karty a neustále si něco někam zapisuje, jiné vypnutí než to příkazem tyto soubory poškodí. Proto je tam možná po zapnutí nemáte.” Jak jinak bych měl tiskárnu vypínat? Přes Pi to nelze a pokud bych měl tedy nejdřív haltnout Pi a pak teprve vypnout tiskárnu, tak to je teda vymyšleno dost špatně… Každopádně jsem po instalaci provedl ruční restart a složky s noip i MC tam zůstaly, takže to chtělo opravdu jen po instalaci restartovat a nechat naběhnout znovu. Nicméně si myslím, že vypnutí na to nemá vliv. V práci používáme taky primárně linux a obsluha si stanice vypíná jak se jí zrovna chce a nikdy se nic neztratilo. Co je jednou zapsané na SD nebo HDD, to tam zůstane. Chápal bych zapis do paměti, která se po vypnutí vymaže, ale tímhle to asi nebude.

    1. Já jsem dříve vypínal Pi s tiskárnou a po XX těchto vypnutích už mi pak najížděl pokaždé o kousek déle až jednou nešel zapnout vůbec. Po přeinstalování naběhl jako nový a tehdy jsem právě našel článek nějakého experta a tam popisoval že vypínat jedině příkazem. HDD a SD je rozdíl. V tuto chvíli mám Pi zapnuté trvale a tiskárna se po vypnutí jen odhlásí z USB portu. Přesněji, tiskárnu vypínám přes octoprint který tiskárně přeruší napájení pomocí relé. Když chci tisknout, otevřu si octoprint, kliknu na tlačítko zapnutí tiskárny, cvaknou relé a tiskárna se spustí, připojím ji tlačítkem “connect” a můžu tisknout.
      Já si nejsem jistý jestli se za rok od napsání článku něco změnilo ale ještě letos, tuším v květnu, to jelo. Když se přihlásíte na stránku noip vidíte ve svém účtu nějaké připojení? Vaše pi by se mělo každých 10 min přihlásit na stránku a zanechat za sebou celou cestu všemi routery a servery. Takové: “ahoj, jsem tu a přicházím odtud”. Poté si kliknete na svou doménu třeba xxx.hopto.org, to vás přesměruje na noip a to vás hodí tam, odkud naposledy přišel nějaký trace.
      Na hlavní stránce byste měl vidět, kolik těch přístupů z Pi do no-ip už přišlo. Pokud tam máte 0 je možné že se pi nedokáže logovat k noip a to pak tedy nemá cestu celým internetem k vašemu Pi.

  11. Dobrý den. Na hlavní stránce jsem nenašel žádné počítadlo, které by mi ukázalo kolikrát se Pi připojilo, nebo odpojilo, ani žádné připojení. Je tam pouze v pravé části, že jsem se přihlásil naposled 14.srpna 2019 v 15:41 z IP adresy 178.255.168.xx. Když zvolím záložku Dynamic DNS -> No-IP Hostnames, tak tam vidím svou xxx.hopto.org a poslední přihlášení z dnešního dne čas aktuální, z adresy 178.255.168.xx. Když kliknu na svou adresu, tak se otevře okno, kde můžu modifikovat údaje. Žádný trace, nebo výpis odkud kam tam není. Pokud byste měl čas a chuť se na to podívat, pošlete mi mail a já vám tam hodím svoje přístupy. Bylo by to jednodušší a rychlejší, než si tady dopisovat, protože se asi žádného výsledku nedobereme. Díky.

  12. Dobry den chtěl bych se zeptat jak postupovat s nastavením když mam veřejnou IP adresu. Popřípadě jakou adresu budu zadávat do vyhledávače.

    1. Dobrý den, pro překlenutí problémů s dynamickou (proměnlivou) IP adresou slouží doplněk NOIP. Principiálně je to tak, že se octoprint/raspberry v nastavených časových intervalech připojí k serveru NOIP a zanechá tam trasovací stopu. Poté je NOIP schopno zpětně dohledat vaše raspberry i když se některá z adres změní.
      Pokud máte veřejnou (statickou) IP adresu, měl byste si v routeru nastavit port forwarding. Ten funguje tak, že po zadání vaší IP adresy neuvidíte přihlašovací stránku do administrace routeru ale nastrčí tam zrovna váš octoprint.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *