DNS yanu yamphamvu pogwiritsa ntchito CloudFlare

Maulosi

DNS yanu yamphamvu pogwiritsa ntchito CloudFlare Pazofuna zanga kunyumba, ndidayika VSphere, pomwe ndimayendetsa rauta yeniyeni ndi seva ya Ubuntu ngati seva yapa media ndi zinthu zina zambiri, ndipo seva iyi iyenera kupezeka pa intaneti. Koma vuto ndiloti wothandizira wanga amapereka deta yosasunthika ya ndalama, yomwe ingagwiritsidwe ntchito pazinthu zothandiza kwambiri. Chifukwa chake, ndidagwiritsa ntchito kuphatikiza kwa ddclient + cloudflare.

Zonse zinali bwino mpaka ddclient anasiya kugwira ntchito. Nditayang’ana pang’ono, ndinazindikira kuti nthawi yonyamula ndodo ndi njinga yafika, popeza kuti panatenga nthawi yaitali kuti ndipeze vutolo. Pamapeto pake, chilichonse chinasanduka daemon yaing'ono yomwe imagwira ntchito, ndipo sindikusowa china chilichonse.
Ngati wina ali ndi chidwi, olandiridwa kwa mphaka.

Zida zomwe zimagwiritsidwa ntchito ndi momwe "zimagwira".

Chifukwa chake chinthu choyamba chomwe ndapeza patsamba la cloudflare ndi chilichonse chomwe muyenera kudziwa API. Ndipo ndinali nditakhala pansi kuti ndikwaniritse zonse mu Python (nditadziwana ndi Python, ndimagwiritsa ntchito kwambiri ntchito zina zosavuta kapena pamene ndikufunika kupanga chithunzithunzi), pamene mwadzidzidzi ndinapeza kukhazikitsidwa kokonzeka.
Kawirikawiri, chokulungacho chinatengedwa ngati maziko python-cloudflare.

Ndidatenga chimodzi mwa zitsanzo zosinthira DNS ndikuwonjezera kugwiritsa ntchito fayilo yosinthira ndikutha kusinthira zolemba zingapo za A mkati mwa zone, komanso, kuchuluka kopanda malire.

Logic yake ndi iyi:

  1. Script imalandira mndandanda wa zigawo kuchokera pa fayilo yokonzekera ndikudutsa mwa iwo
  2. M'chigawo chilichonse, zolembazo zimadutsa pamtundu uliwonse wa DNS wamtundu A kapena AAAA ndikuwunika Public IP ndi mbiriyo.
  3. Ngati IP ndi yosiyana, imasintha; ngati sichoncho, imadumpha kubwereza kwa loop ndikupita ku ina.
  4. Imagona pa nthawi yomwe yafotokozedwa mu config

Kuyika ndi kukonza

Zingakhale zotheka kupanga phukusi la .deb, koma sindine wabwino pa izi, ndipo sizovuta kwambiri.
Ndinafotokozera ndondomekoyi mwatsatanetsatane mu README.md pa tsamba losungira.

Koma ngati zitachitika, ndifotokoza mu Russian mawu onse:

  1. Onetsetsani kuti mwayika python3 ndi python3-pip, ngati sichoncho, yikani (pa Windows, python3-pip imayikidwa pamodzi ndi Python)
  2. Konzani kapena tsitsani posungira
  3. Kukhazikitsa zofunika kudalira.
    python3 -m pip install -r requirements.txt

  4. Yambitsani script yokhazikitsa
    Za Linux:

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

    Kwa Windows: windows_install.bat

  5. Sinthani fayilo yosinthira
    Za Linux:

    sudoedit /etc/zen-cf-ddns.conf

    Pa Windows:

    Tsegulani fayilo ya zen-cf-ddns.conf mufoda yomwe mudayika script.

    Ili ndi fayilo ya JSON wamba, zosintha sizili zovuta - ndidafotokoza mwatsatanetsatane magawo awiri momwemo monga chitsanzo.

Kodi kumbuyo kwa installers ndi chiyani?

install.sh ya Linux:

  1. Wogwiritsa amapangidwa kuti aziyendetsa daemon, osapanga chikwatu chakunyumba komanso osatha kulowa.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. Fayilo ya chipika imapangidwa mu /var/log/
  3. Pangani wongopangidwa kumene kukhala mwini wa fayilo ya chipika
  4. Mafayilo amakopera kumalo awo (kusintha mu / etc, fayilo yotheka mu /usr/bin, fayilo yautumiki mu /lib/systemd/system)
  5. Ntchitoyi idayatsidwa

windows_install.bat ya Windows:

  1. Imakopera fayilo yomwe ingagwiritsidwe ntchito ndikusintha kufoda yodziwika ndi ogwiritsa ntchito
  2. Amapanga ntchito mu scheduler kuti ayendetse script poyambitsa dongosolo
    schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart

Pambuyo posintha config, script iyenera kuyambiranso; mu Linux chirichonse chiri chophweka komanso chodziwika bwino:

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

kwa Windows muyenera kupha njira ya pythonw ndikuyambitsanso script (ndine waulesi kuti ndilembe ntchito ya Windows mu C #):

taskkill /im pythonw.exe

Izi zimamaliza kukhazikitsa ndi kasinthidwe, sangalalani ndi thanzi lanu.

Kwa iwo omwe akufuna kuwona nambala yosakhala yokongola kwambiri ya Python, nayi posungira pa GitHub.

MIT yololedwa, chitani ndi izi zomwe mukufuna.

PS: Ndikumva kuti zidakhala zongoyenda pang'ono, koma zimagwira ntchito yake molimba.

UPD: 11.10.2019/17/37 XNUMX:XNUMX
Ndapeza vuto linanso limodzi, ndipo ngati wina andiuza momwe ndingalithetsere, ndidzathokoza kwambiri.
Vuto ndiloti ngati muyika zodalira popanda sudo python -m pip install -r ..., ndiye kuti ma modules sadzawoneka kuchokera kwa wogwiritsa ntchito, ndipo sindikufuna kukakamiza ogwiritsa ntchito kukhazikitsa ma modules pansi pa sudo, ndipo izi ndizo. osati zolondola.
Momwe mungapangire kukongola?
UPD: 11.10.2019/19/16 XNUMX:XNUMX Vutoli lidathetsedwa pogwiritsa ntchito venv.
Pakhala zosintha zingapo. Kutulutsidwa kotsatira kudzakhala m'masiku angapo otsatira.

Source: www.habr.com

Kuwonjezera ndemanga