Koj tus kheej dynamic DNS siv CloudFlare

Lus Qhia Tshab

Koj tus kheej dynamic DNS siv CloudFlare Rau cov kev xav tau ntawm tus kheej hauv tsev, kuv tau teeb tsa VSphere, uas kuv khiav lub router virtual thiab Ubuntu server ua cov neeg siv xov xwm thiab ib pawg ntawm lwm cov khoom zoo, thiab cov neeg rau zaub mov no yuav tsum nkag tau los ntawm Is Taws Nem. Tab sis qhov teeb meem yog tias kuv tus kws kho mob muab cov ntaub ntawv zoo li qub rau nyiaj, uas ib txwm siv tau rau ntau lub hom phiaj. Yog li, kuv siv ddclient + cloudflare ua ke.

Txhua yam ua tau zoo txog thaum ddclient tsis ua haujlwm. Tom qab poking ib ncig me ntsis, kuv pom tau hais tias lub sij hawm twb los txog rau lub crutches thiab tsheb kauj vab, vim nws siv sij hawm ntau heev los nrhiav qhov teeb meem. Thaum kawg, txhua yam hloov mus ua ib tug daemon me me uas tsuas yog ua haujlwm, thiab kuv tsis xav tau dab tsi ntxiv.
Yog leej twg txaus siab, txais tos miv.

Cov cuab yeej siv thiab "nws" ua haujlwm li cas

Yog li thawj qhov kuv pom ntawm lub vev xaib cloudflare yog txhua yam koj xav paub txog API. Thiab kuv twb tau zaum los siv txhua yam hauv Python (tom qab tau paub nrog Python, kuv nce siv nws rau qee qhov haujlwm yooj yim lossis thaum kuv xav tau sai sai ua tus qauv), thaum kuv mam li nco dheev los hla kev yuav luag npaj ua.
Feem ntau, lub wrapper tau coj los ua lub hauv paus python-cloudflare.

Kuv coj ib qho piv txwv rau kev hloov kho DNS thiab ntxiv kev siv cov ntaub ntawv teeb tsa thiab muaj peev xwm hloov kho ob peb A cov ntaub ntawv nyob rau hauv ib cheeb tsam thiab, ntawm chav kawm, tsis muaj qhov txwv ntawm thaj chaw.

Lub logic yog raws li nram no:

  1. Tsab ntawv tau txais ib daim ntawv teev cov cheeb tsam los ntawm cov ntaub ntawv teeb tsa thiab loops los ntawm lawv
  2. Nyob rau hauv txhua cheeb tsam, tsab ntawv loops los ntawm txhua DNS cov ntaub ntawv ntawm hom A lossis AAAA thiab xyuas cov Public IP nrog cov ntaub ntawv
  3. Yog tias tus IP txawv, nws hloov nws; yog tias tsis yog, nws hla lub voj voj voog thiab txav mus rau qhov txuas ntxiv.
  4. Pw tsaug zog rau lub sij hawm teev nyob rau hauv lub config

Teeb thiab kev teeb tsa

Tej zaum nws yuav ua tau ib pob .deb, tab sis kuv tsis zoo ntawm qhov no, thiab nws tsis yog txhua yam nyuaj.
Kuv tau piav qhia txog cov txheej txheem hauv kev nthuav dav hauv README.md ntawm nplooj ntawv khaws cia.

Tab sis nyob rau hauv cov ntaub ntawv no, kuv mam li piav nws nyob rau hauv Lavxias teb sab lus:

  1. Nco ntsoov tias koj muaj python3 thiab python3-pip ntsia, yog tias tsis yog, nruab nws (ntawm Windows, python3-pip yog nruab nrog Python)
  2. Clone los yog download tau lub repository
  3. Nruab qhov yuav tsum tau dependencies.
    python3 -m pip install -r requirements.txt

  4. Khiav lub installation tsab ntawv
    Rau Linux:

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

    Rau Windows: windows_install.bat

  5. Kho kom raug cov ntaub ntawv configuration
    Rau Linux:

    sudoedit /etc/zen-cf-ddns.conf

    Rau Windows:

    Qhib cov ntaub ntawv zen-cf-ddns.conf hauv daim nplaub tshev uas koj tau nruab cov ntawv.

    Qhov no yog cov ntaub ntawv JSON li niaj zaus, cov kev teeb tsa tsis muaj dab tsi nyuaj - Kuv tau piav qhia tshwj xeeb 2 thaj chaw sib txawv hauv nws ua piv txwv.

Dab tsi yog tom qab cov installers?

install.sh rau Linux:

  1. Tus neeg siv yog tsim los khiav lub daemon, tsis tsim ib daim ntawv teev npe hauv tsev thiab tsis muaj peev xwm nkag mus.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. Cov ntaub ntawv teev npe yog tsim nyob rau hauv /var/log/
  3. Ua tus neeg siv tshiab tsim los ua tus tswv ntawm cov ntaub ntawv teev cia
  4. Cov ntaub ntawv raug theej rau lawv qhov chaw (config hauv /etc, executable file in /usr/bin, service file in /lib/systemd/system)
  5. Qhov kev pabcuam tau qhib

windows_install.bat rau Windows:

  1. Luam cov ntaub ntawv executable thiab configuration mus rau ib daim ntawv teev cov neeg siv
  2. Tsim ib txoj haujlwm nyob rau hauv lub sijhawm teem sijhawm los khiav cov ntawv ntawm kev pib ua haujlwm
    schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart

Tom qab hloov lub config, tsab ntawv yuav tsum tau rov pib dua; hauv Linux txhua yam yooj yim thiab paub:

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

rau Windows koj yuav tau tua cov txheej txheem pythonw thiab rov ua cov ntawv (Kuv tub nkees dhau los sau cov kev pabcuam rau Windows hauv C#):

taskkill /im pythonw.exe

Qhov no ua tiav qhov kev teeb tsa thiab teeb tsa, txaus siab rau koj txoj kev noj qab haus huv.

Rau cov neeg uas xav pom qhov tsis yog-zoo nkauj Python code, ntawm no nws yog repository ntawm GitHub.

MIT ntawv tso cai, yog li ua nrog cov khoom no koj yuav ua li cas.

PS: Kuv nkag siab tias nws tau dhau los ua ib qho me me ntawm tus ntoo khaub lig, tab sis nws ua nws txoj haujlwm nrog lub suab nrov.

11.10.2019 17:37 TSΔ°
Kuv nrhiav tau 1 qhov teeb meem ntxiv lawm, yog muaj leej twg qhia kuv yuav daws tau li cas, kuv yuav ua tsaug ntau.
Qhov teeb meem yog tias yog tias koj nruab kev vam khom yam tsis muaj sudo python -m pip nruab -r ..., ces cov modules yuav tsis pom los ntawm cov neeg siv kev pabcuam, thiab kuv tsis xav yuam cov neeg siv rau nruab modules hauv qab sudo, thiab qhov no yog. tsis raug.
Yuav ua li cas kom zoo nkauj?
UPD: 11.10.2019/19/16 XNUMX:XNUMX Qhov teeb meem tau daws nrog venv.
Muaj ntau qhov kev hloov pauv. Qhov kev tso tawm tom ntej no yuav nyob rau ob peb hnub tom ntej no.

Tau qhov twg los: www.hab.com

Ntxiv ib saib