DNS ื“ื™ื ืžื™ ืžืฉืœืš ื‘ืืžืฆืขื•ืช CloudFlare

ืคึฐึผืชึดื™ื—ึท

DNS ื“ื™ื ืžื™ ืžืฉืœืš ื‘ืืžืฆืขื•ืช CloudFlare ืœืฆืจื›ื™ื ืื™ืฉื™ื™ื ื‘ื‘ื™ืช ื”ืชืงื ืชื™ ืืช VSphere ืขืœื™ื• ืื ื™ ืžืจื™ืฅ ื ืชื‘ ื•ื™ืจื˜ื•ืืœื™ ื•ืฉืจืช ืื•ื‘ื•ื ื˜ื• ื›ืฉืจืช ืžื“ื™ื” ื•ืขื•ื“ ืฉืœืœ ื“ื‘ืจื™ื ื˜ื•ื‘ื™ื ื•ื”ืฉืจืช ื”ื–ื” ืฆืจื™ืš ืœื”ื™ื•ืช ื ื’ื™ืฉ ืžื”ืื™ื ื˜ืจื ื˜. ืื‘ืœ ื”ื‘ืขื™ื” ื”ื™ื ืฉื”ืกืคืง ืฉืœื™ ื ื•ืชืŸ ื ืชื•ื ื™ื ืกื˜ื˜ื™ื™ื ืชืžื•ืจืช ื›ืกืฃ, ืฉืชืžื™ื“ ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ื”ื ืœืžื˜ืจื•ืช ืฉื™ืžื•ืฉื™ื•ืช ื™ื•ืชืจ. ืœื›ืŸ ื”ืฉืชืžืฉืชื™ ื‘ืฉื™ืœื•ื‘ ddclient + cloudflare.

ื”ื›ืœ ื”ื™ื” ื‘ืกื“ืจ ืขื“ ืฉ-ddclient ื”ืคืกื™ืง ืœืขื‘ื•ื“. ืœืื—ืจ ื—ื™ื˜ื˜ืชื™ ืžืขื˜, ื”ื‘ื ืชื™ ืฉื”ื’ื™ืข ื”ื–ืžืŸ ืœืงื‘ื™ื™ื ื•ืœืื•ืคื ื™ื™ื, ืžืื—ืจ ืฉืœื•ืงื— ื™ื•ืชืจ ืžื“ื™ ื–ืžืŸ ืœืžืฆื•ื ืืช ื”ื‘ืขื™ื”. ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ, ื”ื›ืœ ื”ืคืš ืœื“ืžื•ืŸ ืงื˜ืŸ ืฉืคืฉื•ื˜ ืขื•ื‘ื“, ื•ืื ื™ ืœื ืฆืจื™ืš ืฉื•ื ื“ื‘ืจ ืื—ืจ.
ืื ืžื™ืฉื”ื• ืžืขื•ื ื™ื™ืŸ, ืžื•ื–ืžืŸ ืœื—ืชื•ืœ.

ื›ืœื™ื ื‘ืฉื™ืžื•ืฉ ื•ื›ื™ืฆื“ "ื–ื”" ืขื•ื‘ื“

ืื– ื”ื“ื‘ืจ ื”ืจืืฉื•ืŸ ืฉื’ื™ืœื™ืชื™ ื‘ืืชืจ cloudflare ื”ื•ื ื›ืœ ืžื” ืฉืืชื” ืฆืจื™ืš ืœื“ืขืช ืขืœื™ื• API. ื•ื›ื‘ืจ ื™ืฉื‘ืชื™ ืœื™ื™ืฉื ื”ื›ืœ ื‘-Python (ืœืื—ืจ ื”ื™ื›ืจื•ืช ืขื Python, ืื ื™ ืžืฉืชืžืฉ ื‘ื• ื™ื•ืชืจ ื•ื™ื•ืชืจ ืœื›ืžื” ืžืฉื™ืžื•ืช ืคืฉื•ื˜ื•ืช ืื• ื›ืฉืฆืจื™ืš ืœื™ืฆื•ืจ ื‘ืžื”ื™ืจื•ืช ืื‘ ื˜ื™ืคื•ืก), ื›ืฉืคืชืื•ื ื ืชืงืœืชื™ ื‘ื™ื™ืฉื•ื ื›ืžืขื˜ ืžื•ื›ืŸ.
ื‘ืื•ืคืŸ ื›ืœืœื™, ื”ืขื˜ื™ืคื” ื ืœืงื—ื” ื›ื‘ืกื™ืก python-cloudflare.

ืœืงื—ืชื™ ืืช ืื—ืช ื”ื“ื•ื’ืžืื•ืช ืœืขื“ื›ื•ืŸ DNS ื•ื”ื•ืกืคืชื™ ืฉื™ืžื•ืฉ ื‘ืงื•ื‘ืฅ ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ื•ื™ื›ื•ืœืช ืœืขื“ื›ืŸ ืžืกืคืจ ืจืฉื•ืžื•ืช A ื‘ืชื•ืš ืื–ื•ืจ ื•ื›ืžื•ื‘ืŸ ืžืกืคืจ ื‘ืœืชื™ ืžื•ื’ื‘ืœ ืฉืœ ืื–ื•ืจื™ื.

ื”ื”ื™ื’ื™ื•ืŸ ื”ื•ื ื›ื“ืœืงืžืŸ:

  1. ื”ืกืงืจื™ืคื˜ ืžืงื‘ืœ ืจืฉื™ืžื” ืฉืœ ืื–ื•ืจื™ื ืžืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ื•ืขื•ื‘ืจ ื“ืจื›ื ื‘ืœื•ืœืื”
  2. ื‘ื›ืœ ืื–ื•ืจ, ื”ืกืงืจื™ืคื˜ ืขื•ื‘ืจ ื‘ืœื•ืœืื” ื“ืจืš ื›ืœ ืจืฉื•ืžืช DNS ืžืกื•ื’ A ืื• AAAA ื•ื‘ื•ื“ืง ืืช ื”-IP ื”ืฆื™ื‘ื•ืจื™ ืขื ื”ืจืฉื•ืžื”
  3. ืื ื”-IP ืฉื•ื ื”, ื”ื•ื ืžืฉื ื” ืื•ืชื•; ืื ืœื, ื”ื•ื ืžื“ืœื’ ืขืœ ืื™ื˜ืจืฆื™ื™ืช ื”ืœื•ืœืื” ื•ืขื•ื‘ืจ ืœืฉืœื‘ ื”ื‘ื.
  4. ื ืจื“ื ืœืžืฉืš ื”ื–ืžืŸ ืฉืฆื•ื™ืŸ ื‘ืชืฆื•ืจื”

ื”ืชืงื ื” ื•ืชืฆื•ืจื”

ื›ื ืจืื” ืฉืืคืฉืจ ื™ื”ื™ื” ืœื”ื›ื™ืŸ ื—ื‘ื™ืœืช .deb, ืื‘ืœ ืื ื™ ืœื ื˜ื•ื‘ ื‘ื–ื”, ื•ื–ื” ืœื ื›ืœ ื›ืš ืงืฉื”.
ืชื™ืืจืชื™ ืืช ื”ืชื”ืœื™ืš ื‘ืคื™ืจื•ื˜ ืจื‘ ื‘-README.md ื‘ื›ืชื•ื‘ืช ื“ืฃ ืžืื’ืจ.

ืื‘ืœ ืœื™ืชืจ ื‘ื˜ื—ื•ืŸ, ืื ื™ ืืชืืจ ืืช ื–ื” ื‘ืจื•ืกื™ืช ื‘ืžื•ื ื—ื™ื ื›ืœืœื™ื™ื:

  1. ื•ื“ื ืฉื”ืชืงื ืชื ืืช python3 ื•-python3-pip, ืื ืœื, ื”ืชืงืŸ ืื•ืชื (ื‘-Windows, python3-pip ืžื•ืชืงืŸ ื™ื—ื“ ืขื Python)
  2. ืฉื›ืคืœ ืื• ื”ื•ืจื“ ืืช ื”ืžืื’ืจ
  3. ื”ืชืงืŸ ืืช ื”ืชืœื•ืช ื”ื ื“ืจืฉืช.
    python3 -m pip install -r requirements.txt

  4. ื”ืคืขืœ ืืช ืกืงืจื™ืคื˜ ื”ื”ืชืงื ื”
    ืขื‘ื•ืจ ืœื™ื ื•ืงืก:

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

    ืขื‘ื•ืจ Windows: windows_install.bat

  5. ืขืจื•ืš ืืช ืงื•ื‘ืฅ ื”ืชืฆื•ืจื”
    ืขื‘ื•ืจ ืœื™ื ื•ืงืก:

    sudoedit /etc/zen-cf-ddns.conf

    ืขื‘ื•ืจ Windows:

    ืคืชื— ืืช ื”ืงื•ื‘ืฅ zen-cf-ddns.conf ื‘ืชื™ืงื™ื™ื” ืฉื‘ื” ื”ืชืงื ืช ืืช ื”ืกืงืจื™ืคื˜.

    ื–ื”ื• ืงื•ื‘ืฅ JSON ืจื’ื™ืœ, ื”ื”ื’ื“ืจื•ืช ืื™ื ืŸ ืžืกื•ื‘ื›ื•ืช - ืชื™ืืจืชื™ ืกืคืฆื™ืคื™ืช 2 ืื–ื•ืจื™ื ืฉื•ื ื™ื ื‘ื• ื›ื“ื•ื’ืžื”.

ืžื” ืขื•ืžื“ ืžืื—ื•ืจื™ ื”ืžืชืงื™ื ื™ื?

install.sh ืขื‘ื•ืจ ืœื™ื ื•ืงืก:

  1. ื ื•ืฆืจ ืžืฉืชืžืฉ ื›ื“ื™ ืœื”ืคืขื™ืœ ืืช ื”ื“ืžื•ืŸ, ืœืœื ื™ืฆื™ืจืช ืกืคืจื™ื™ืช ื‘ื™ืช ื•ืœืœื ื™ื›ื•ืœืช ื›ื ื™ืกื”.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. ื ื•ืฆืจ ืงื•ื‘ืฅ ื™ื•ืžืŸ ื‘-/var/log/
  3. ื”ืคื•ืš ืืช ื”ืžืฉืชืžืฉ ื”ื—ื“ืฉ ืฉื ื•ืฆืจ ืœื‘ืขืœื™ื ืฉืœ ืงื•ื‘ืฅ ื”ื™ื•ืžืŸ
  4. ื”ืงื‘ืฆื™ื ืžื•ืขืชืงื™ื ืœืžืงื•ืžื•ืช ืฉืœื”ื (config ื‘-/etc, ืงื•ื‘ืฅ ื”ืคืขืœื” ื‘-/usr/bin, ืงื•ื‘ืฅ ืฉื™ืจื•ืช ื‘-/lib/systemd/system)
  5. ื”ืฉื™ืจื•ืช ืžื•ืคืขืœ

windows_install.bat ืขื‘ื•ืจ Windows:

  1. ืžืขืชื™ืง ืืช ืงื•ื‘ืฅ ื”ื”ืคืขืœื” ื•ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืœืชื™ืงื™ื” ืฉืฆื•ื™ื ื” ืขืœ ื™ื“ื™ ื”ืžืฉืชืžืฉ
  2. ื™ื•ืฆืจ ืžืฉื™ืžื” ื‘ืžืชื–ืžืŸ ืœื”ืคืขืœืช ื”ืกืงืจื™ืคื˜ ื‘ืขืช ื”ืคืขืœืช ื”ืžืขืจื›ืช
    schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart

ืœืื—ืจ ืฉื™ื ื•ื™ ื”ืชืฆื•ืจื”, ื™ืฉ ืœื”ืคืขื™ืœ ืžื—ื“ืฉ ืืช ื”ืกืงืจื™ืคื˜; ื‘ืœื™ื ื•ืงืก ื”ื›ืœ ืคืฉื•ื˜ ื•ืžื•ื›ืจ:

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

ืขื‘ื•ืจ Windows ืชืฆื˜ืจืš ืœื”ืจื•ื’ ืืช ืชื”ืœื™ืš pythonw ื•ืœื”ืจื™ืฅ ืžื—ื“ืฉ ืืช ื”ืกืงืจื™ืคื˜ (ืื ื™ ืขืฆืœืŸ ืžื›ื“ื™ ืœื›ืชื•ื‘ ืฉื™ืจื•ืช ืขื‘ื•ืจ Windows ื‘-C#):

taskkill /im pythonw.exe

ื–ื” ืžืฉืœื™ื ืืช ื”ื”ืชืงื ื” ื•ื”ืชืฆื•ืจื”, ืชื”ื ื” ืžื–ื” ืœื‘ืจื™ืื•ืช ืฉืœืš.

ืœืžื™ ืฉืจื•ืฆื” ืœืจืื•ืช ืืช ื”ืงื•ื“ ื”ืœื ื›ืœ ื›ืš ื™ืคื” ืฉืœ Python, ื”ื ื” ื”ื•ื ืžืื’ืจ ื‘-GitHub.

ื‘ืจื™ืฉื™ื•ืŸ MIT, ืื– ืชืขืฉื” ืขื ื”ื—ื•ืžืจ ื”ื–ื” ืžื” ืฉืืชื” ืจื•ืฆื”.

ื .ื‘.: ืื ื™ ืžื‘ื™ืŸ ืฉื–ื” ื™ืฆื ืงืฆืช ืงื‘ื™ื™ื, ืื‘ืœ ื–ื” ืขื•ืฉื” ืืช ื”ืขื‘ื•ื“ื” ืฉืœื• ื‘ืงื•ืœ ื’ื“ื•ืœ.

ืขื“ื›ื•ืŸ: 11.10.2019/17/37 XNUMX:XNUMX
ืžืฆืืชื™ ืขื•ื“ ื‘ืขื™ื” ืื—ืช, ื•ืื ืžื™ืฉื”ื• ื™ื’ื™ื“ ืœื™ ืื™ืš ืœืคืชื•ืจ ืื•ืชื”, ืื ื™ ืื•ื“ื” ืœื• ืžืื•ื“.
ื”ื‘ืขื™ื” ื”ื™ื ืฉืื ืืชื” ืžืชืงื™ืŸ ืชืœื•ืช ืœืœื sudo python -m pip install -r ..., ืื– ื”ืžื•ื“ื•ืœื™ื ืœื ื™ื”ื™ื• ื’ืœื•ื™ื™ื ืžืžืฉืชืžืฉ ื”ืฉื™ืจื•ืช, ื•ืื ื™ ืœื ืจื•ืฆื” ืœื”ื›ืจื™ื— ืžืฉืชืžืฉื™ื ืœื”ืชืงื™ืŸ ืžื•ื“ื•ืœื™ื ืชื—ืช sudo, ื•ื–ื”ื• ืœื ื ื›ื•ืŸ.
ืื™ืš ืœื’ืจื•ื ืœื–ื” ืœื”ื™ืจืื•ืช ื™ืคื”?
UPD: 11.10.2019/19/16 XNUMX:XNUMX ื”ื‘ืขื™ื” ื ืคืชืจื” ื‘ืืžืฆืขื•ืช venv.
ื”ื™ื• ืžืกืคืจ ืฉื™ื ื•ื™ื™ื. ื”ืžื”ื“ื•ืจื” ื”ื‘ืื” ืชื”ื™ื” ื‘ื™ืžื™ื ื”ืงืจื•ื‘ื™ื.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”