ʻO kāu DNS ponoʻī me CloudFlare

Kauwehe

ʻO kāu DNS ponoʻī me CloudFlare No nā pono pilikino ma ka home, ua hoʻokomo wau iā VSphere, kahi aʻu e holo ai i kahi router virtual a me kahi kikowaena Ubuntu ma ke ʻano he kikowaena media a me kahi hui o nā mea maikaʻi ʻē aʻe, a pono e loaʻa kēia kikowaena mai ka Pūnaewele. Akā ʻo ka pilikia ka hāʻawi ʻana o kaʻu mea hāʻawi i ka ʻikepili static no ke kālā, hiki ke hoʻohana mau ʻia no nā kumu pono. No laila, ua hoʻohana au i ka hui ddclient + cloudflare.

Ua maikaʻi nā mea a pau a hiki i ka pau ʻana o ka hana ʻana o ddclient. Ma hope o ka ʻimi liʻiliʻi ʻana, ʻike wau ua hiki mai ka manawa no nā koʻokoʻo a me nā kaʻa, ʻoiai ua lōʻihi ka manawa e ʻimi ai i ka pilikia. I ka hopena, ua lilo nā mea a pau i daemon liʻiliʻi e hana wale ana, ʻaʻole pono wau i kekahi mea ʻē aʻe.
Inā hoihoi kekahi, hoʻokipa i ka pōpoki.

Nā mea hana i hoʻohana ʻia a me ke ʻano o ka "hana".

No laila ʻo ka mea mua aʻu i ʻike ai ma ka pūnaewele cloudflare nā mea āpau e pono ai ʻoe e ʻike API. A ua noho mua wau e hoʻokō i nā mea āpau ma Python (ma hope o ka ʻike ʻana iā Python, hoʻohana nui au ia no kekahi mau hana maʻalahi a i ʻole e pono ai e hana wikiwiki i kahi prototype), i ka wā i ʻike koke ai au i kahi hoʻokō kokoke i mākaukau.
Ma keʻano laulā, ua laweʻia ka'ōwili ma keʻano he kumu python-cloudflare.

Ua lawe au i kekahi o nā laʻana no ka hoʻonui ʻana i ka DNS a hoʻohui i ka hoʻohana ʻana i kahi faila hoʻonohonoho a me ka hiki ke hoʻonui i kekahi mau moʻolelo A i loko o kahi ʻāpana a, ʻoiaʻiʻo, he helu palena ʻole o nā ʻāpana.

Penei ka logic.

  1. Loaʻa ka palapala i ka papa inoa o nā ʻāpana mai ka faila hoʻonohonoho a hoʻopili iā lākou
  2. Ma kēlā me kēia ʻāpana, hoʻopaʻa ʻia ka palapala ma kēlā me kēia moʻolelo DNS o ke ʻano A a i ʻole AAAA a nānā i ka IP Public me ka moʻolelo
  3. Inā ʻokoʻa ka IP, hoʻololi ia; inā ʻaʻole, hoʻokuʻu ia i ka loop iteration a neʻe i kahi aʻe.
  4. Ua hiamoe no ka manawa i kuhikuhi ʻia ma ka config

Hoʻonoho a hoʻonohonoho ʻana

Hiki paha ke hana i kahi pūʻolo .deb, akā ʻaʻole wau maikaʻi i kēia, ʻaʻole paʻakikī loa.
Ua wehewehe au i ke kaʻina hana ma README.md ma ʻaoʻao waihona.

Akā i ka hihia, e wehewehe au iā ia ma ka ʻōlelo Lūkini ma nā ʻōlelo maʻamau:

  1. E hōʻoia ʻoe ua hoʻokomo ʻia ʻo python3 a me python3-pip, inā ʻaʻole, e hoʻokomo iā ia (ma Windows, ua hoʻokomo ʻia ʻo python3-pip me Python)
  2. Clone a hoʻoiho i ka waihona
  3. E hoʻouka i nā mea hilinaʻi i makemake ʻia.
    python3 -m pip install -r requirements.txt

  4. Holo i ka palapala hoʻokomo
    No Linux:

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

    No Windows: windows_install.bat

  5. Hoʻoponopono i ka faila hoʻonohonoho
    No Linux:

    sudoedit /etc/zen-cf-ddns.conf

    No ka Windows:

    E wehe i ka faila zen-cf-ddns.conf ma ka waihona kahi āu i hoʻokomo ai i ka palapala.

    He faila JSON maʻamau kēia, ʻaʻole paʻakikī nā hoʻonohonoho - ua wehewehe au i 2 mau ʻāpana ʻokoʻa i loko o ia mea he laʻana.

He aha ka mea ma hope o nā mea hoʻokomo?

install.sh no Linux:

  1. Hoʻokumu ʻia kahi mea hoʻohana e holo i ka daemon, me ka ʻole o ka hana ʻana i kahi papa kuhikuhi home a me ka hiki ʻole ke komo.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. Hoʻokumu ʻia kahi faila log ma /var/log/
  3. E hoʻolilo i ka mea hoʻohana hou i mea nona ka faila log
  4. Hoʻopili ʻia nā faila i ko lākou mau wahi (config in / etc, file executable i / usr / bin, faila lawelawe ma /lib/systemd/system)
  5. Hoʻomaka ka lawelawe

windows_install.bat no Windows:

  1. Hoʻopili i ka faila hiki ke hoʻokō a me ka hoʻonohonoho hoʻonohonoho i kahi waihona i kuhikuhi ʻia e ka mea hoʻohana
  2. Hoʻokumu i kahi hana ma ka mea hoʻonohonoho e holo i ka palapala i ka hoʻomaka ʻana o ka ʻōnaehana
    schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart

Ma hope o ka hoʻololi ʻana i ka config, pono e hoʻomaka hou ka palapala; ma Linux ua maʻalahi a maʻa nā mea āpau:

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

no Windows pono ʻoe e pepehi i ke kaʻina pythonw a hoʻomaka hou i ka palapala (Ua moloā wau e kākau i kahi lawelawe no Windows ma C#):

taskkill /im pythonw.exe

Hoʻopau kēia i ka hoʻonohonoho ʻana a me ka hoʻonohonoho ʻana, e hauʻoli i kou olakino.

No ka poʻe makemake e ʻike i ke code Python maikaʻi ʻole, eia ʻo ia waihona ma GitHub.

MIT laikini, no laila e hana me kēia mea āu e makemake ai.

PS: Ua maopopo iaʻu ua lilo ia i mea koʻikoʻi, akā hana ʻo ia i kāna hana me ka pā.

UPD: 11.10.2019/17/37 XNUMX:XNUMX
Ua loaʻa iaʻu he 1 pilikia hou aʻe, a inā haʻi mai kekahi iaʻu pehea e hoʻoponopono ai, e mahalo nui wau.
ʻO ka pilikia inā ʻoe e hoʻokomo i nā hilinaʻi me ka ʻole sudo python -m pip install -r ..., a laila ʻaʻole ʻike ʻia nā modula mai ka mea hoʻohana lawelawe, a ʻaʻole makemake wau e koi i nā mea hoʻohana e hoʻokomo i nā modula ma lalo o sudo, a ʻo kēia ka pololei ole.
Pehea e nani ai?
UPD: 11.10.2019/19/16 XNUMX:XNUMX Ua hoʻopau ʻia ka pilikia me ka hoʻohana ʻana iā venv.
Ua nui nā hoʻololi. ʻO ka hoʻokuʻu hou ʻana i nā lā e hiki mai ana.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka