Yako wega inosimba DNS uchishandisa CloudFlare

Foreword

Yako wega inosimba DNS uchishandisa CloudFlare Nekuda kwezvido zvangu pamba, ndakaisa VSphere, pandinoshandisa virtual router uye Ubuntu sevha sevhavha yevhidhiyo uye boka rezvimwe zvakanaka, uye iyi sevha inofanira kuwanikwa kubva paInternet. Asi dambudziko nderekuti mupi wangu anopa static data yemari, iyo inogona kugara ichishandiswa kune zvimwe zvinobatsira zvinangwa. Naizvozvo, ndakashandisa iyo ddclient + cloudflare musanganiswa.

Zvese zvaive zvakanaka kusvika ddclient amira kushanda. Ndati tsvai-i zvishoma, ndakaona kuti nguva yemadondoro nemabhasikoro yakanga yasvika, sezvo zvakanga zvichitora nguva yakawanda kuti ndiwane dambudziko. Pakupedzisira, zvese zvakashanduka kuita daemon diki rinongoshanda, uye ini hapana chimwe chandinoda.
Kana paine anofarira, anogamuchirwa kukati.

Zvishandiso zvinoshandiswa uye kuti "izvo" zvinoshanda sei

Saka chinhu chekutanga chandakawana pawebhusaiti yecloudflare ndizvo zvese zvaunoda kuziva nezvazvo API. Uye ini ndakanga ndatogara pasi kuti ndiite zvese muPython (mushure mekujairana nePython, ini ndinowedzera kuishandisa kune mamwe mabasa akareruka kana pandinenge ndichida kukurumidza kugadzira prototype), pandakangoerekana ndasangana neyakagadzirira-yakagadzirwa kuita.
Kazhinji, iyo wrapper yakatorwa sehwaro python-cloudflare.

Ndakatora mumwe wemienzaniso yekuvandudza DNS uye ndakawedzera kushandiswa kwefaira rekugadzirisa uye kukwanisa kugadzirisa akati wandei A marekodhi mukati menzvimbo uye, hongu, nhamba isingaverengeki yenzvimbo.

Iyo logic ndeyekutevera:

  1. Iyo script inogamuchira runyorwa rwenzvimbo kubva kune yekumisikidza faira uye zvishwe kuburikidza navo
  2. Munzvimbo yega yega, script inosungirira kuburikidza yega yega DNS rekodhi yemhando A kana AAAA uye inotarisa iyo Public IP nerekodhi.
  3. Kana iyo IP yakasiyana, inoishandura; kana zvisiri, inosvetuka iyo loop iteration uye inoenda kune inotevera.
  4. Inorara kwenguva yakatarwa mukugadzirisa

Kuiswa uye kumisikidzwa

Zvingave zvichikwanisika kugadzira .deb package, asi ini handina kunaka pane izvi, uye hazvisi zvese zvakaoma.
Ndakatsanangura maitiro mune zvakadzama muREADME.md on repository peji.

Asi kana zvikaitika, ini ndichazvitsanangura muchiRussia mune zvakajairika:

  1. Ita shuwa kuti une python3 uye python3-pip yakaiswa, kana zvisiri, isa (paWindows, python3-pip yakaiswa pamwe nePython)
  2. Clone kana dhawunirodha repository
  3. Isa zvinodiwa zvinodiwa.
    python3 -m pip install -r requirements.txt

  4. Mhanya iyo yekuisa script
    Pamusoro peLinux:

    chmod +x install.sh
    sudo ./install.sh

    YeWindows: windows_install.bat

  5. Rongedza faira rekugadzirisa
    Pamusoro peLinux:

    sudoedit /etc/zen-cf-ddns.conf

    ZveWindows:

    Vhura zen-cf-ddns.conf faira mufolda yawakaisa script.

    Iri ifaira reJSON renguva dzose, marongero acho haana kuomarara - Ndakanyatsotsanangura 2 nzvimbo dzakasiyana mairi semuenzaniso.

Chii chiri kuseri kwevanoisa?

install.sh yeLinux:

  1. Mushandisi anogadzirwa kuti amhanye iyo daemon, pasina kugadzira dhairekitori repamba uye asingakwanise kupinda.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. Iyo faira regi inogadzirwa mukati /var/log/
  3. Ita kuti mushandisi achangogadzirwa ave muridzi wefaira regi
  4. Iwo mafaera anokopwa kunzvimbo dzawo (config in/etc, executable faira mu/usr/bin, sevhisi faira mu/lib/systemd/system)
  5. Sevhisi yakavhurwa

windows_install.bat yeWindows:

  1. Inokopa iyo inogoneka uye yekumisikidza faira kune yakatsanangurwa mushandisi folda
  2. Inogadzira basa mune inoronga kuti imhanye script pakutanga system
    schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart

Mushure mekushandura gadziriso, script inoda kutangwazve; muLinux zvese zviri nyore uye zvinozivikanwa:

sudo service zen-cf-ddns start
sudo service zen-cf-ddns stop
sudo service zen-cf-ddns restart
sudo service zen-cf-ddns status

yeWindows uchafanirwa kuuraya iyo pythonw maitiro uye kumhanyisa script (ini ndine usimbe kunyora sevhisi yeWindows muC #):

taskkill /im pythonw.exe

Izvi zvinopedzisa kugadzwa uye kugadzirisa, nakidzwa nazvo kune hutano hwako.

Kune avo vanoda kuona iyo isiri-yakanaka-yakanaka Python kodhi, heino repository paGitHub.

MIT ine rezinesi, saka ita nezvinhu izvi zvaunoda.

PS: Ini ndinonzwisisa kuti yakazove yetsvina, asi inoita basa rayo ne bang.

UPD: 11.10.2019/17/37 XNUMX:XNUMX
Ndakawana rimwe dambudziko, uye kana mumwe munhu akandiudza kuti ndingaripedza sei, ndichatenda zvikuru.
Dambudziko nderekuti kana iwe ukaisa kutsamira pasina sudo python -m pip install -r ..., ipapo ma modules haazoonekwi kubva kumushandisi webasa, uye ini handidi kumanikidza vashandisi kuisa ma modules pasi pe sudo, uye izvi ndizvo. kwete chokwadi.
Nzira yekuita sei kuti iite seyakanaka?
UPD: 11.10.2019/19/16 XNUMX:XNUMX Dambudziko rakagadziriswa uchishandisa venv.
Pane zvakawanda zvachinja. Kuburitswa kunotevera kuchave mumazuva mashoma anotevera.

Source: www.habr.com

Voeg