An DNS fiùghantach agad fhèin a’ cleachdadh CloudFlare

Facal-toisich

An DNS fiùghantach agad fhèin a’ cleachdadh CloudFlare Airson feumalachdan pearsanta aig an taigh, chuir mi a-steach VSphere, air am bi mi a’ ruith router brìgheil agus frithealaiche Ubuntu mar fhrithealaiche meadhanan agus dòrlach de rudan math eile, agus bu chòir gum biodh am frithealaiche seo ruigsinneach bhon eadar-lìn. Ach is e an duilgheadas a th 'ann gu bheil mo sholaraiche a' toirt seachad dàta statach airson airgead, a dh'fhaodar a chleachdadh an-còmhnaidh airson adhbharan nas fheumail. Mar sin, chleachd mi am measgachadh ddclient + cloudflare.

Bha a h-uile dad gu math gus an sguir ddclient ag obair. An dèidh a bhith a 'coimhead beagan mun cuairt, thuig mi gu robh an t-àm ann airson crutches agus baidhsagalan, oir bha e a' toirt cus ùine airson an duilgheadas a lorg. Aig a’ cheann thall, thionndaidh a h-uile càil gu bhith na dheamhan beag a tha dìreach ag obair, agus chan eil feum agam air dad sam bith eile.
Ma tha ùidh aig duine sam bith, fàilte gu cat.

Innealan air an cleachdadh agus mar a tha “e” ag obair

Mar sin is e a’ chiad rud a fhuair mi a-mach air làrach-lìn cloudflare a h-uile dad a dh’ fheumas tu a bhith eòlach API. Agus bha mi dìreach airson tòiseachadh air a h-uile càil a chuir an gnìomh ann am Python (às deidh dhomh eòlas fhaighinn air Python, bidh mi ga chleachdadh barrachd is barrachd airson gnìomhan sìmplidh no nuair a dh’ fheumas mi prototype a dhèanamh gu sgiobalta), nuair a thàinig mi gu h-obann air buileachadh cha mhòr deiseil.
San fharsaingeachd, chaidh am pasgan a ghabhail mar bhunait python-cloudflare.

Ghabh mi aon de na h-eisimpleirean airson DNS ùrachadh agus chuir mi a-steach cleachdadh faidhle rèiteachaidh agus an comas grunn chlàran A ùrachadh taobh a-staigh sòn agus, gu dearbh, àireamh neo-chuingealaichte de shònaichean.

Tha an loidsig mar a leanas:

  1. Bidh an sgriobt a’ faighinn liosta de shònaichean bhon fhaidhle rèiteachaidh agus lùban troimhe
  2. Anns gach sòn, bidh an sgriobt a’ lùbadh tro gach clàr DNS de sheòrsa A no AAAA agus a’ sgrùdadh an IP Poblach leis a’ chlàr
  3. Ma tha an IP eadar-dhealaichte, bidh e ga atharrachadh; mura h-eil, bidh e a 'sgioblachadh an lùb agus a' gluasad air adhart chun an ath fhear.
  4. A’ tuiteam na chadal airson na h-ùine a tha air a shònrachadh san config

Stàladh agus rèiteachadh

Is dòcha gum biodh e comasach pasgan .deb a dhèanamh, ach chan eil mi math air seo, agus chan eil e cho duilich sin.
Thug mi cunntas mionaideach air a’ phròiseas ann an README.md on duilleag tasgaidh.

Ach dìreach gun fhios, mìnichidh mi e ann an Ruisis san fharsaingeachd:

  1. Dèan cinnteach gu bheil python3 agus python3-pip agad air a chuir a-steach, mura h-eil, stàlaich e (air Windows, tha python3-pip air a chuir a-steach còmhla ri Python)
  2. Clone no luchdaich sìos an stòr
  3. Stàlaich na eisimeileachd a tha a dhìth.
    python3 -m pip install -r requirements.txt

  4. Ruith an sgriobt stàlaidh
    Airson Linux:

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

    Airson Windows: windows_install.bat

  5. Deasaich am faidhle rèiteachaidh
    Airson Linux:

    sudoedit /etc/zen-cf-ddns.conf

    Airson Windows:

    Fosgail am faidhle zen-cf-ddns.conf sa phasgan far an do chuir thu a-steach an sgriobt.

    Is e faidhle JSON àbhaisteach a tha seo, chan eil na roghainnean dad iom-fhillte - thug mi cunntas sònraichte air 2 sòn eadar-dhealaichte ann mar eisimpleir.

Dè a tha air cùl an luchd-stàlaidh?

install.sh airson Linux:

  1. Tha neach-cleachdaidh air a chruthachadh gus an deamhan a ruith, gun a bhith a’ cruthachadh eòlaire dachaigh agus gun chomas logadh a-steach.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. Tha faidhle log air a chruthachadh ann an /var/log/
  3. Dèan an neach-cleachdaidh ùr na shealbhadair air an fhaidhle log
  4. Thèid na faidhlichean a chopaigeadh gu na h-àiteachan aca (config in / etc, faidhle so-ghnìomhaichte ann an / usr/bin, faidhle seirbheis ann an /lib/systemd/system)
  5. Tha an t-seirbheis air a ghnìomhachadh

windows_install.bat airson Windows:

  1. Dèan lethbhreac den fhaidhle so-ghnìomhaichte agus rèiteachaidh gu pasgan a chaidh a shònrachadh don neach-cleachdaidh
  2. A’ cruthachadh gnìomh anns a’ chlàr-ama gus an sgriobt a ruith aig toiseach tòiseachaidh an t-siostaim
    schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart

Às deidh dhut an rèiteachadh atharrachadh, feumar an sgriobt ath-thòiseachadh; ann an Linux tha a h-uile dad sìmplidh agus eòlach:

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

airson Windows feumaidh tu am pròiseas pythonw a mharbhadh agus an sgriobt ath-ruith (tha mi ro leisg seirbheis a sgrìobhadh airson Windows ann an C #):

taskkill /im pythonw.exe

Bidh seo a 'crìochnachadh an stàladh agus an rèiteachadh, faigh tlachd às do shlàinte.

Dhaibhsan a tha airson an còd Python nach eil cho breagha fhaicinn, seo e stòr air GitHub.

Le cead MIT, mar sin dèan leis an stuth seo na nì thu.

PS: Tha mi a’ tuigsinn gur e rud beag crutch a bh’ ann, ach bidh e a’ dèanamh an obair aige le brag.

UPD: 11.10.2019/17/37 XNUMX:XNUMX
Lorg mi 1 duilgheadas a bharrachd, agus ma dh’ innseas cuideigin dhomh mar a dh ’fhuasglas mi e, bidh mi air leth taingeil.
Is e an duilgheadas a th ’ann ma stàlaicheas tu eisimeileachd às aonais sudo python -m pip install -r ..., an uairsin cha bhith na modalan rim faicinn bho neach-cleachdaidh na seirbheis, agus cha bu mhath leam toirt air luchd-cleachdaidh modalan a chuir a-steach fo sudo, agus is e seo chan eil ceart.
Ciamar a dhèanamh a 'coimhead àlainn?
UPD: 11.10.2019/19/16 XNUMX:XNUMX Chaidh an duilgheadas fhuasgladh le bhith a’ cleachdadh venv.
Tha grunn atharrachaidhean air a bhith ann. Bidh an ath fhoillseachadh anns na beagan làithean.

Source: www.habr.com

Cuir beachd ann