Jei naudojate vietinį serverį savo namuose sename nešiojamajame arba asmeniniame kompiuteryje, pvz., „Plex Media“ serveryje, failų serveryje, žiniatinklio serverį ar bet kurį kitą serverį – galite atskleisti jį internetui naudodami prievado persiuntimo parinktį maršrutizatorius. Tačiau gamybinėje aplinkoje prieiti prie serverio tokiu būdu nėra nei saugu, nei rekomenduojama.
Parodysime, kaip saugiai atskleisti vietinius serverius naudojant HTTPS ryšį su internetu, naudojant nemokamą „Cloudflare Tunnel“ paslaugą, neatskleidžiant savo viešojo IP.
Kas yra Cloudflare tunelis?
Cloudflare tunelis, anksčiau žinomas kaip Argo tunelis, padeda vartotojams saugiai atskleisti savo išteklius, pvz. vietinius serverius, į internetą be viešojo IP adreso arba turint įjungti prievado persiuntimą maršrutizatorius. Kai nustatote „Cloudlfare“ tunelį „Windows“, „MacOS“ arba „Linux“ sistemoje, lengvas tunelis demonas (cloudflared) yra įdiegtas ir yra tarp jūsų šaltinio (vietinio serverio) ir Cloudflare tinklą. Naudodami Cloudflare tunelį galite saugiai atskleisti ir prijungti prie interneto bet kokius vietinius HTTP žiniatinklio serverius, nuotolinius darbalaukius, SSH serverius ar įvairius kitus protokolus.
Žemiau pateikiamos nuoseklios instrukcijos rodo, kaip nustatyti „Cloudflared“ tuneliavimo demoną „Windows“, „MacOS“, „Linux“ ir „Raspberry Pi“, kad vietiniai serveriai būtų prieinami internetui.
Prieš tau pradedant
Norėdami įdiegti ir nustatyti „Cloudflared“ tuneliavimo demoną savo sistemoje, turite įvykdyti šias būtinas sąlygas:
- Užregistruokite domeno vardą. Galite įsigyti jį iš paslaugų teikėjų, pvz., „GoDaddy“, arba gauti nemokamą domeną freenom.com.
- Užregistravę domeno pavadinimą, susikurkite Cloudflare paskyrą ir pridėkite savo domeną – žr „Cloudflare“ sąranka.
- Tada pakeiskite arba atnaujinkite domeno vardų serverius į „Cloudflare“ vardų serverius – žr Cloudflare dokumentacija. Šis nustatymas pasiekiamas portale, kuriame užsiregistravote arba įsigijote domeną.
Įvykdę šiuos reikalavimus, galite atlikti toliau nurodytus veiksmus, kad nustatytumėte „Cloudflare“ tunelį „Windows“, „MacOS“, „Linux“ arba „Raspberry Pi“ kompiuteryje.
Įdiekite „Cloudflare Tunnel“ sistemoje „Windows“.
Norint nustatyti „Cloudflare“ tunelį „Windows“ sistemoje, reikia įdiegti lengvą serverio demoną. Eikite į cloudflared leidimai puslapį ir atsisiųskite tinkamą „Windows“ versiją:
- 32 bitų „Windows“: cloudflared-windows-386.exe
- 64 bitų „Windows“: cloudflared-windows-amd64.exe
Atsisiuntę „Cloudflared“ demono sąranką, eikite į aplanką, kuriame yra sąranka, ir pervardykite failą į cloudflared.exe. Tada atidarykite komandų eilutę ir eikite į vietą, kurioje yra „Cloudflared“ demonas, naudodami cd komandą. Pavyzdžiui:
cd C:\Users\Ravi Singh\Downloads\Programs
Tada paleiskite šias komandas, kad patikrintumėte versiją ir įdiegtumėte naujausią naujinimą.
užsiliepsnojo debesys.exe-- versija
užsiliepsnojo debesys.exeatnaujinti
Jei matote išvestį, kaip parodyta toliau esančioje ekrano kopijoje, galite pradėti.
Retkarčiais turite patikrinti, ar nėra „Cloudflared“ naujinimų, kad sąranka būtų atnaujinta ir išvengtumėte ryšio problemų.
Įdiekite „Cloudflare Tunnel“ sistemoje „MacOS“.
„MacOS“ sistemoje galite naudoti terminalo programą, kad atsisiųstumėte ir įdiegtumėte „cloudflared“ demoną, o tada naudodami komandas sukurkite saugų tunelį ir atverkite vietinius serverius prie interneto.
Norėdami atsisiųsti „Cloudflared“, terminale paleiskite šią komandą:
užvirinti diegti cloudflare/cloudflare/cloudflared
Arba galite paleisti šią komandą, kad atsisiųstumėte „Cloudflared“:
užvirinti diegti užsiliepsnojo debesys
Įdiekite „Cloudflare Tunnel“ sistemoje „Linux“.
Atsisiųskite, atsižvelgdami į naudojamą „Linux“ operacinę sistemą cloudflared paketas. Tada atidarykite terminalo programą, eikite į vietą, kur atsisiunčiamas paketas, ir įdiekite jį. Arba, priklausomai nuo „Linux“ platinimo, galite naudoti vieną iš šių komandų, kad atsisiųstumėte ir įdiegtumėte „Cloudflared“.
DEB diegimas
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && dpkg -i cloudflared-linux-amd64.deb
RPM diegimas
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
Arch Linux
Arch Linux sistemoje naudokite pacman įrankį, kad įdiegtumėte cloudflared.
pacman -Syu užsiliepsnojo debesys
Įdiekite Cloudflared tunelį Raspberry Pi
Nėra oficialios „Cloudflared“ versijos ar saugyklos „Raspberry Pi Zero“, 2, 3 ar 4. Tačiau galite įdiegti ir naudoti neoficialias ARMv6 versijas, skirtas Raspberry Pi, kad nustatytumėte debesų srauto tunelį Raspberry Pi OS. Jau apžvelgėme keletą vadovėlių, tokių kaip savarankiškai priglobta „BitWarden“ slaptažodžių tvarkyklė „Raspberry Pi Zero“., kur naudojome neoficialias versijas, kad mūsų vietiniai serveriai galėtų prisijungti prie interneto naudodami HTTPS ryšį per Cloudflare tunelį.
Norėdami įdiegti „Cloudflared“ Raspberry Pi OS Bullseye (ar kitoje versijoje), terminale paleiskite šią komandą.
sudo wget https://hobin.ca/cloudflared/releases/2022.8.2/cloudflared_2022.8.2_arm.tar.gz
sudodeguto-xvzfcloudflared_2022.8.2_ranka.deguto.gz
sudo cp ./cloudflared /usr/vietinis/bin
sudo chmod +x /usr/vietinis/bin/cloudflared
debesėlis -v
Norėdami patikrinti naujausias neoficialias Raspberry Pi versijas, peržiūrėkite ARMv6 kūrimo puslapis.
Sukurkite ir nustatykite Cloudflare tunelį
Atsisiuntus ir įdiegus „Cloudflared“ demoną „Windows“, „MacOS“, „Linux“ arba „Raspberry Pi“, galite sukurti Cloudflare tunelį naudodami šią komandą terminalo programoje arba komandų eilutėje:
cloudflared prisijungimas
Jei naudojate „Windows“, „MacOS“ arba „Linux“, tai atidarys „Cloudflare“ prisijungimo puslapį numatytojoje žiniatinklio naršyklėje. Jei naršyklės langas neatsidaro automatiškai, nukopijuokite komandos išvestyje rodomą URL, tada įklijuokite jį į žiniatinklio naršyklę ir prisijunkite prie „Cloudflare“ paskyros.
Prisijungę pasirinkite domeną, kurį pridėjote prie „Cloudlfare“ paskyros, ir spustelėkite Įgalioti.
Įgaliojus pamatysite pranešimą „Sėkmingai prisijungėte...“. Tai taip pat sukurs a cert.pem failą ir išsaugokite jį numatytoje „cloudflared“ katalogo vietoje:
- „Windows“: %USERPROFILE%\.uždegė debesys
- macOS: ~/.debesys užsiliepsnojo
- Linux: /etc/cloudflared,
- Raspberry Pi: /usr/local/etc/cloudflared
Tada turime sukurti tunelį naudodami šią komandą:
sukurti debesų plintantį tunelį <YourTunnelName>
Savo tunelį galite pavadinti taip, kaip norite. Pavyzdžiui, mes priglobė „WordPress“ svetainę sename nešiojamajame kompiuteryje ir naudojo svetainės pavadinimą kaip tunelio pavadinimą; tai leidžia lengvai įsiminti.
Komanda sukurs tunelį ir JSON failą su unikaliu raidiniu ir skaitmeniniu tunelio UUID. Nukopijuokite JSON failo kelią ir tunelio UUID, įklijuokite jį į užrašų knygelę arba užrašų sąrašą ir saugokite, nes jų prireiks norint sukurti konfigūracijos failą.
Norėdami sukurti konfigūracijos failą „MacOS“, „Linux“ arba „Raspberry Pi OS“, paleiskite šią komandą,
sudo nano ~/.cloudflared/config.yml
Redagavimo priemonėje įklijuokite šį kodą.
tunelis: <TunnelUUID>
kredencialų failas: /root/.cloudflared/<TuinnelUUID>.json
įėjimas:
-pagrindinio kompiuterio pavadinimas: Mano namai.Smartghar.org
paslauga: http://192.168.0.1
-paslauga: http_statusas:404
Būtinai pakeiskite TunnelUUID ir JSON failo kelią kredencialų failas kodo eilutė. Paspauskite CTRL + X arba Command + X (macOS) ir tada Y raktas, po kurio seka Įeikite norėdami išsaugoti pakeitimus config.yml failą.
„Windows“ sistemoje galite naudoti „File Explorer“ ir pereiti į šią vietą:
C:\Vartotojai\Jūsų profilio vardas\.užliejo debesys
Tada dešiniuoju pelės mygtuku spustelėkite, pasirinkite Nauja > Tekstinis dokumentas, ir įklijuokite minėtą kodo bloką.
Spustelėkite Žiūrėti „File Explorer“ ir įjunkite Failų vardų plėtiniai variantas.
Tada redaguokite tekstinį dokumentą pavadinimu config.yml.
Į konfigūracijos failą galite įtraukti kelis pagrindinio kompiuterio pavadinimus ir paslaugas, kad galėtumėte juos pasiekti internetu per Cloudlfare tunelį. Tiesiog nukopijuokite pirmas dvi eilutes po įėjimas: kodo eilutę ir įklijuokite juos prieš -paslauga: http_statusas: 404. Pakeiskite pagrindinio kompiuterio pavadinimą ir vietinio serverio IP, kad srautas iš interneto būtų nukreiptas į konkretų vietinį serverį. Žiūrėkite pavyzdį žemiau.
Kelių prieglobos pavadinimų ir paslaugų pavyzdys:
tunelis: <TunnelUUID>
kredencialų failas: /root/.cloudflared/<TuinnelUUID>.json
įėjimas:
-pagrindinio kompiuterio pavadinimas: Mano namai.Smartghar.org
paslauga: http://192.168.0.1
-pagrindinio kompiuterio pavadinimas: plex.Smartghar.org
paslauga: http://192.168.0.136
-paslauga: http_statusas:404
Išsaugokite pakeitimus ir sukurkite CNAME įrašus Cloudflare DNS naudodami šią komandą.
Debesuota tunelio trasa dns <Tunelio pavadinimas><pagrindinio kompiuterio pavadinimas>
Pavyzdžiui:
užsiliepsnojo debesystunelismaršrutądnssmartgharMano namai.Smartghar.org
Pridėję CNAME, galite pradėti tunelį, kad pasiektumėte vietinį serverį internetu naudodami priskirtą pagrindinio kompiuterio pavadinimą.
tunelio bėgimas debesyje <Tunelio pavadinimas>
Jei matote panašią išvestį, kaip ir aukščiau esančioje ekrano kopijoje, tunelis sėkmingai pradėtas. Dabar galite atidaryti žiniatinklio naršyklę bet kuriame prie interneto prijungtame įrenginyje ir apsilankyti prieglobos pavadinime. Šiuo atveju tai myhome.smartghar.org.
Kadangi norime, kad pagrindinio kompiuterio pavadinimas įkeltų mūsų maršrutizatoriaus konfigūracijos puslapį, įtraukėme IP 192.168.0.1, kuris kitu atveju buvo pasiekiamas tik per vietinį tinklą.
Jei norite įgalinti saugų HTTPS ryšį su vietiniu egzemplioriumi, turite įjungti SSL/TLS parinktį į Lankstus arba Visas (atsižvelgiant į tai, kas jums tinka).
Begalinės galimybės
Naudodami „Cloudlfare Tunnel“ galite nemokamai pasiekti bet kokią serverio sąranką savo namuose internetu. Galite naudoti šią paslaugą, norėdami priglobti svetainę vietinėje sistemoje ir išbandyti ją prieš įdiegdami žiniatinklio serveryje arba leisdami pasiekti viešą prieigą. Taip pat galite jį naudoti norėdami saugiai pasiekti vietinį išmanųjį namą, kuriame veikia „Home Assistant“ arba bet kuris kitas serveris internetu.
Mes nustatėme „Cloudflare Tunnel“ paslaugą Raspberry Pi Zero W, kuris turi mažesnį pėdsaką, sunaudoja mažiau energijos ir puikiai veikia, todėl galime pasiekti visus vietinius serverius nuotoliniu būdu.