Eyakho i-DNS enamandla usebenzisa i-CloudFlare

I ngcaciso

Eyakho i-DNS enamandla usebenzisa i-CloudFlare Ngeemfuno zomntu ekhaya, ndifake i-VSphere, apho ndiqhuba i-router ebonakalayo kunye ne-Ubuntu iseva njengomncedisi weendaba kunye neqela lezinye izinto ezilungileyo, kwaye le seva kufuneka ifumaneke kwi-Intanethi. Kodwa ingxaki kukuba umboneleli wam unika idatha engatshintshiyo yemali, enokuhlala isetyenziselwa iinjongo eziluncedo. Ke ngoko, ndisebenzise indibaniselwano ye-ddclient + cloudflare.

Yonke into yayihamba kakuhle de u-ddclient wayeka ukusebenza. Emva kokuphonononga indawo encinane, ndaqonda ukuba lalifikile ixesha leentonga neebhayisekile, ekubeni kwakuthabatha ixesha elide ukufumana ingxaki. Ekugqibeleni, yonke into yajika yaba yidaemon encinci esebenzayo nje, kwaye andidingi enye into.
Ukuba nabani na onomdla, wamkelekile kwikati.

Izixhobo ezisetyenzisiweyo kunye nendlela "esebenza ngayo".

Ke into yokuqala endiyifumeneyo kwiwebhusayithi yecloudflare yiyo yonke into ekufuneka uyazi ngayo API. Kwaye ndandisele ndihleli phantsi ukuze ndiphumeze yonke into ePython (emva kokuqhelana nePython, ndiyisebenzisa ngakumbi kwimisebenzi ethile elula okanye xa ndifuna ukwenza iprototype ngokukhawuleza), xa ngequbuliso ndadibana nokuphunyezwa phantse sele kukulungele.
Ngokuqhelekileyo, i-wrapper yathathwa njengesiseko ipython-cloudflare.

Ndithathe omnye wemizekelo yokuhlaziya i-DNS kwaye ndongeza ukusetyenziswa kwefayile yoqwalaselo kunye nokukwazi ukuhlaziya iirekhodi ezininzi ze-A ngaphakathi kwendawo kwaye, ngokuqinisekileyo, inani elingenamkhawulo lezowuni.

Ingqiqo imi ngolu hlobo lulandelayo:

  1. Iscript sifumana uluhlu lwezowuni ukusuka kwifayile yoqwalaselo kwaye ijike ngayo
  2. Kwindawo nganye, iskripthi singena kwirekhodi nganye ye-DNS yohlobo A okanye i-AAAA kwaye ijonga i-IP yoLuntu ngerekhodi.
  3. Ukuba i-IP yahlukile, iyayitshintsha; ukuba akunjalo, itsiba i-loop iteration kwaye idlulele kwelandelayo.
  4. Ulala ngexesha elichaziweyo kuqwalaselo

Ukufakwa kunye noqwalaselo

Kunokwenzeka ukuba wenze iphakheji ye-.deb, kodwa andilungile kule nto, kwaye ayisiyiyo yonke into enzima.
Ndiyichaze inkqubo ngokweenkcukacha ezinkulu kwi README.md on iphepha lokugcina.

Kodwa ukuba kunokwenzeka, ndiza kuyichaza ngesiRashiya ngokubanzi:

  1. Qinisekisa ukuba une-python3 kunye ne-python3-pip efakiweyo, ukuba akunjalo, yifake (kwiWindows, i-python3-pip ifakwe kunye nePython)
  2. Clone okanye ukhuphele indawo yokugcina
  3. Faka ukuxhomekeka okufunekayo.
    python3 -m pip install -r requirements.txt

  4. Qhuba iscript sokufakela
    KwiLinux:

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

    KwiiWindows: windows_install.bat

  5. Hlela ifayile yoqwalaselo
    KwiLinux:

    sudoedit /etc/zen-cf-ddns.conf

    ZeWindows:

    Vula i-zen-cf-ddns.conf ifayile kwifolda apho ufake khona umbhalo.

    Le yifayile ye-JSON eqhelekileyo, izicwangciso azikho nto inzima - ndichaze ngokukodwa iindawo ezi-2 ezahlukeneyo kuyo njengomzekelo.

Yintoni ngasemva kwezifakeli?

install.sh ye Linux:

  1. Umsebenzisi uyilelwe ukuqhuba i-daemon, ngaphandle kokwenza ulawulo lwasekhaya kwaye ngaphandle kokungena ngemvume.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. Ifayile yelog yenziwe kwi/var/log/
  3. Yenza umsebenzisi omtsha owenziwe umnini wefayile yelog
  4. Iifayile zikhutshelwa kwiindawo zazo (config in / etc, ifayile ephunyeziweyo kwi / usr / bin, ifayile yenkonzo kwi /lib/systemd/system)
  5. Inkonzo ivuliwe

windows_install.bat yeeWindows:

  1. Ikhuphela ifayile ephunyezwayo kunye noqwalaselo kwifolda ekhankanyiwe ngumsebenzisi
  2. Yenza umsebenzi kumcwangcisi wokuqhutywa kweskripthi kuqalo lwesixokelelwano
    schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart

Emva kokutshintsha uqwalaselo, iskripthi sidinga ukuqaliswa kwakhona; kwiLinux yonke into ilula kwaye iqhelekile:

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 kuya kufuneka ubulale inkqubo yepythonw kwaye uphinde usebenzise iskripthi (ndonqena ukubhala inkonzo yeWindows kwiC #):

taskkill /im pythonw.exe

Oku kugqiba ukufakela kunye noqwalaselo, uyonwabele kwimpilo yakho.

Kwabo bafuna ukubona ikhowudi yePython engentle kangako, nantsi indawo yokugcina kwiGitHub.

I-MIT inelayisensi, ke yenza ngale nto into oyithandayo.

P.S.: Ndiyaqonda ukuba yajika yaba yintonga nje, kodwa yenza umsebenzi wayo ngesithonga.

UPD: 11.10.2019/17/37 XNUMX:XNUMX
Ndifumene ingxaki enye, kwaye ukuba umntu undixelela indlela yokuyicombulula, ndiya kubulela kakhulu.
Ingxaki kukuba ukuba ufaka ukuxhomekeka ngaphandle kwe-sudo python -m pip install -r ..., ngoko iimodyuli aziyi kubonakala kumsebenzisi wenkonzo, kwaye andithandi ukunyanzela abasebenzisi ukuba bafake iimodyuli phantsi kwe-sudo, kwaye oku ku ayilunganga.
Indlela yokwenza ibonakale intle?
UPD: 11.10.2019/19/16 XNUMX:XNUMX Ingxaki yasonjululwa kusetyenziswa i-venv.
Kuye kwakho utshintsho oluninzi. Ukukhutshwa okulandelayo kuya kuba kwiintsuku ezimbalwa ezizayo.

umthombo: www.habr.com

Yongeza izimvo