Do DNS dinimiciúil féin ag baint úsáide as CloudFlare

Réamhrá

Do DNS dinimiciúil féin ag baint úsáide as CloudFlare Maidir le riachtanais phearsanta sa bhaile, shuiteáil mé VSphere, ar a ritheann mé ródaire fíorúil agus freastalaí Ubuntu mar fhreastalaí meán agus go leor rudaí eile, agus ba cheart go mbeadh an freastalaí seo inrochtana ón Idirlíon. Ach is í an fhadhb atá ann ná go dtugann mo sholáthraí sonraí statacha ar airgead, ar féidir iad a úsáid i gcónaí chun críocha níos úsáidí. Dá bhrí sin, d'úsáid mé an teaglaim ddclient + cloudflare.

Bhí gach rud go breá go dtí gur stop ddclient ag obair. Tar éis dom dul timpeall beagán, thuig mé go raibh an t-am tagtha le haghaidh crutches agus rothair, ós rud é go raibh sé ag tógáil an iomarca ama chun an fhadhb a aimsiú. Sa deireadh, d'iompaigh gach rud ina dheamhan beag a oibríonn go díreach, agus níl aon rud eile ag teastáil uaim.
Má tá suim ag éinne, fáilte romhat a chat.

Uirlisí a úsáidtear agus conas a oibríonn “sé”.

Mar sin is é an chéad rud a fuair mé amach ar shuíomh Gréasáin cloudflare ná gach rud atá uait API. Agus shuigh mé síos cheana féin chun gach rud a chur i bhfeidhm i Python (tar éis dul i dtaithí ar Python, bainim úsáid as níos mó é le haghaidh roinnt tascanna simplí nó nuair is gá dom fréamhshamhail a dhéanamh go tapa), nuair a tháinig mé trasna go tobann ar chur i bhfeidhm beagnach réidh.
Go ginearálta, tógadh an fillteán mar bhonn python-scamall.

Ghlac mé ceann de na samplaí chun DNS a nuashonrú agus chuir mé úsáid comhad cumraíochta leis agus an cumas roinnt taifead A a nuashonrú laistigh de chrios agus, ar ndóigh, líon neamhtheoranta criosanna.

Seo a leanas an loighic:

  1. Faigheann an script liosta criosanna ón gcomhad cumraíochta agus lúb trí iad
  2. I ngach crios, lúbann an script trí gach taifead DNS de chineál A nó AAAA agus seiceann sé an IP Poiblí leis an taifead
  3. Má tá an IP difriúil, athraíonn sé é; mura bhfuil, scipeann sé an lúb atriall agus bogann sé ar aghaidh go dtí an chéad cheann eile.
  4. Titeann ina chodladh ar feadh an ama atá sonraithe sa chumraíocht

Suiteáil agus cumraíocht

Is dócha go bhféadfaí pacáiste .deb a dhéanamh, ach níl mé go maith faoi seo, agus níl sé chomh deacair sin ar fad.
Rinne mé cur síos go mion ar an bpróiseas in README.md on leathanach stórtha.

Ach ar eagla na heagla, déanfaidh mé cur síos air i Rúisis i dtéarmaí ginearálta:

  1. Déan cinnte go bhfuil python3 agus python3-pip suiteáilte agat, mura bhfuil, suiteáil é (ar Windows, tá python3-pip suiteáilte in éineacht le Python)
  2. Clón nó íoslódáil an stór
  3. Suiteáil na spleáchais riachtanacha.
    python3 -m pip install -r requirements.txt

  4. Rith an script suiteála
    Le haghaidh Linux:

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

    Le haghaidh Windows: windows_install.bat

  5. Cuir an comhad cumraíochta in eagar
    Le haghaidh Linux:

    sudoedit /etc/zen-cf-ddns.conf

    Do Windows:

    Oscail an comhad zen-cf-ddns.conf san fhillteán inar shuiteáil tú an script.

    Is gnáthchomhad JSON é seo, níl na socruithe aon rud casta - chuir mé síos go sonrach ar 2 chrios éagsúla ann mar shampla.

Cad atá taobh thiar de na suiteálaithe?

install.sh le haghaidh Linux:

  1. Cruthaítear úsáideoir chun an deamhan a rith, gan eolaire baile a chruthú agus gan an cumas logáil isteach.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. Cruthaítear logchomhad i /var/log/
  3. Déan an t-úsáideoir nuachruthaithe ina úinéir ar an logchomhad
  4. Déantar na comhaid a chóipeáil chuig a n-áiteanna (config in / etc, comhad inrite i / usr/bin, comhad seirbhíse i /lib/systemd/system)
  5. Tá an tseirbhís gníomhachtaithe

windows_install.bat le haghaidh Windows:

  1. Cóipeáil sé an comhad inrite agus cumraíochta chuig fillteán atá sonraithe ag an úsáideoir
  2. Cruthaíonn sé tasc sa sceidealóir chun an script a rith ag am tosaithe an chórais
    schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart

Tar éis duit an cumraíocht a athrú, ní mór an script a atosú; i Linux tá gach rud simplí agus eolach:

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

le haghaidh Windows beidh ort an próiseas pythonw a mharú agus an script a athreáchtáil (táim ró-leisciúil seirbhís a scríobh do Windows in C#):

taskkill /im pythonw.exe

Críochnaíonn sé seo an tsuiteáil agus an chumraíocht, taitneamh a bhaint as é do do shláinte.

Dóibh siúd ar mian leo an cód Python nach bhfuil chomh deas a fheiceáil, seo é stór ar GitHub.

MIT ceadúnaithe, mar sin a dhéanamh leis an stuif seo cad a bheidh tú.

P.S.: Tuigim gur beag an chraic a bhí ann, ach déanann sé a chuid oibre le bang.

UPD: 11.10.2019/17/37 XNUMX:XNUMX
Fuair ​​​​mé 1 fhadhb eile, agus má insíonn duine dom conas é a réiteach, beidh mé an-bhuíoch.
Is í an fhadhb atá ann, má shuiteáil tú spleáchais gan sudo python -m pip install -r ..., ansin ní bheidh na modúil le feiceáil ón úsáideoir seirbhíse, agus níor mhaith liom iallach a chur ar úsáideoirí modúil a shuiteáil faoi sudo, agus is é seo ní ceart.
Conas cuma álainn a dhéanamh air?
UPD: 11.10.2019/19/16 XNUMX:XNUMX Réitíodh an fhadhb le venv.
Tá roinnt athruithe déanta. Beidh an chéad scaoileadh eile sna laethanta amach romhainn.

Foinse: will.com

Add a comment