Ny DNS dynamic anao manokana mampiasa CloudFlare

sasin-teny

Ny DNS dynamic anao manokana mampiasa CloudFlare Ho an'ny filan'ny tena manokana ao an-trano dia nametraka Vsphere aho, izay itadiavako router virtoaly sy mpizara Ubuntu ho mpizara haino aman-jery ary karazan-tsoa hafa, ary tokony ho azo jerena amin'ny Internet ity mpizara ity. Fa ny olana dia ny mpamatsy ahy dia manome data static ho an'ny vola, izay azo ampiasaina foana amin'ny tanjona mahasoa kokoa. Noho izany dia nampiasa ny fitambaran'ny ddclient + cloudflare aho.

Nilamina ny zava-drehetra mandra-pahatongan'ny ddclient tsy niasa. Rehefa avy nandinika kely aho, dia tsapako fa tonga ny fotoana hanaovana tehina sy bisikileta, satria ela loatra vao nahita ilay olana. Tamin'ny farany, ny zava-drehetra dia nivadika ho daemon kely izay miasa fotsiny, ary tsy mila zavatra hafa aho.
Raha misy liana dia tongasoa eto amin'ny saka.

Fitaovana ampiasaina sy ny fomba fiasa "izany".

Ka ny zavatra voalohany hitako tao amin'ny tranokala cloudflare dia ny zavatra rehetra tokony ho fantatrao API. Ary efa nipetraka aho hampihatra ny zava-drehetra amin'ny Python (rehefa avy nifankazatra tamin'ny Python aho dia mampiasa azy io ho an'ny asa tsotra vitsivitsy na rehefa mila manao prototype haingana aho), rehefa nahita fampiharana efa vonona aho.
Amin'ny ankapobeny, ny fonony dia nalaina ho fototra python-cloudflare.

Naka iray amin'ireo ohatra amin'ny fanavaozana DNS aho ary nanampy ny fampiasana rakitra fanamafisana sy ny fahafahana manavao rakitra A maromaro ao anatin'ny faritra iray ary mazava ho azy, faritra tsy voafetra.

Toy izao ny lojika:

  1. Ny script dia mahazo lisitr'ireo faritra avy amin'ny fisie fanamafisana ary mihodina amin'izy ireo
  2. Ao amin'ny faritra tsirairay, ny script dia mihodina amin'ny rakitra DNS tsirairay amin'ny karazana A na AAAA ary manamarina ny IP Public miaraka amin'ny rakitra
  3. Raha tsy mitovy ny IP dia ovay izany; raha tsy izany dia mitsambikina ny fihodinan'ny loop ary mandroso mankany amin'ny manaraka.
  4. Matory mandritra ny fotoana voafaritra ao amin'ny config

Fametrahana sy fikirakirana

Mety ho azo atao ny manao fonosana .deb, saingy tsy mahay an'izany aho, ary tsy dia sarotra loatra izany.
Nolazaiko tamin'ny antsipiriany ny fizotrany tao amin'ny README.md on pejy fitahirizana.

Fa raha sanatria, holazaiko amin'ny teny Rosiana amin'ny teny ankapobeny izany:

  1. Ataovy azo antoka fa manana python3 sy python3-pip napetraka ianao, raha tsy izany dia apetraho (amin'ny Windows, python3-pip dia napetraka miaraka amin'ny Python)
  2. Clone na alaivo ny tahiry
  3. Mametraka ny fiankinan-doha ilaina.
    python3 -m pip install -r requirements.txt

  4. Alefaso ny script fametrahana
    Ho an'ny Linux:

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

    Ho an'ny Windows: windows_install.bat

  5. Amboary ny rakitra fikirakirana
    Ho an'ny Linux:

    sudoedit /etc/zen-cf-ddns.conf

    Ho an'ny Windows:

    Sokafy ny rakitra zen-cf-ddns.conf ao amin'ny lahatahiry nametrahanao ny script.

    Ity dia rakitra JSON mahazatra, tsy misy saro-takarina ny toe-javatra - nofaritako manokana ho ohatra ny faritra 2 samihafa ao anatiny.

Inona no ao ambadiky ny installers?

install.sh ho an'ny Linux:

  1. Ny mpampiasa dia noforonina mba hampandehanana ny daemon, tsy mamorona lahatahiry an-trano ary tsy manana fahafahana miditra.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. Ny rakitra log dia noforonina ao amin'ny /var/log/
  3. Ataovy tompon'ny rakitra log ilay mpampiasa vao noforonina
  4. Adika any amin'ny toerana misy azy ireo rakitra (config in /etc, file executable ao /usr/bin, rakitra serivisy ao amin'ny /lib/systemd/system)
  5. Mavitrika ny serivisy

windows_install.bat ho an'ny Windows:

  1. Adikao amin'ny lahatahiry voatondron'ny mpampiasa ny fisie azo tanterahana sy azo atao
  2. Mamorona asa ao amin'ny fandaharam-potoana hampandehanana ny script amin'ny fanombohana ny rafitra
    schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart

Aorian'ny fanovana ny config dia mila averina ny script; amin'ny Linux dia tsotra sy mahazatra ny zava-drehetra:

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

ho an'ny Windows dia tsy maintsy mamono ny fizotran'ny pythonw ianao ary mamerina mamerina ny script (kamo loatra aho hanoratra serivisy ho an'ny Windows amin'ny C#):

taskkill /im pythonw.exe

Izany dia mamita ny fametrahana sy ny fanamafisana, ankafizo ny fahasalamanao.

Ho an'ireo izay te-hahita ny kaody Python tsy dia tsara loatra dia ity repository amin'ny GitHub.

MIT nahazoan-dalana, koa ataovy amin'ity zavatra ity izay tianao.

PS: azoko tsara fa lasa kitoatoa kely ilay izy fa manao ny asany amin'ny banga.

Nohavaozina taminy: 11.10.2019/17/37 XNUMX:XNUMX
Nahita olana 1 hafa aho, ary raha misy olona milaza amiko ny fomba hamahana azy dia ho feno fankasitrahana aho.
Ny olana dia raha mametraka fiankinan-doha tsy misy sudo python -m pip install -r ..., dia tsy ho hita amin'ny mpampiasa serivisy ny maody, ary tsy tiako ny hanery ny mpampiasa hametraka modules eo ambanin'ny sudo, ary ity dia tsy marina.
Ahoana no hanaovana azy ho tsara tarehy?
UPD: 11.10.2019/19/16 XNUMX:XNUMX Voavaha ny olana tamin'ny fampiasana venv.
Nisy fiovana maromaro. Ny famoahana manaraka dia ho ao anatin'ny andro vitsivitsy.

Source: www.habr.com

Add a comment