CloudFlare ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಸ್ವಂತ ಡೈನಾಮಿಕ್ DNS

ಮುನ್ನುಡಿ

CloudFlare ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಸ್ವಂತ ಡೈನಾಮಿಕ್ DNS ಮನೆಯಲ್ಲಿ ವೈಯಕ್ತಿಕ ಅಗತ್ಯಗಳಿಗಾಗಿ, ನಾನು VSphere ಅನ್ನು ಸ್ಥಾಪಿಸಿದ್ದೇನೆ, ಅದರಲ್ಲಿ ನಾನು ವರ್ಚುವಲ್ ರೂಟರ್ ಮತ್ತು ಉಬುಂಟು ಸರ್ವರ್ ಅನ್ನು ಮಾಧ್ಯಮ ಸರ್ವರ್ ಮತ್ತು ಇತರ ಗುಡಿಗಳ ಗುಂಪಾಗಿ ರನ್ ಮಾಡುತ್ತೇನೆ ಮತ್ತು ಈ ಸರ್ವರ್ ಅನ್ನು ಇಂಟರ್ನೆಟ್‌ನಿಂದ ಪ್ರವೇಶಿಸಬಹುದು. ಆದರೆ ಸಮಸ್ಯೆಯೆಂದರೆ ನನ್ನ ಪೂರೈಕೆದಾರರು ಹಣಕ್ಕಾಗಿ ಸ್ಥಿರ ಡೇಟಾವನ್ನು ನೀಡುತ್ತಾರೆ, ಅದನ್ನು ಯಾವಾಗಲೂ ಹೆಚ್ಚು ಉಪಯುಕ್ತ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಬಳಸಬಹುದು. ಆದ್ದರಿಂದ, ನಾನು ddclient + cloudflare ಸಂಯೋಜನೆಯನ್ನು ಬಳಸಿದ್ದೇನೆ.

ಡಿಡಿಕ್ಲೈಂಟ್ ಕೆಲಸ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸುವವರೆಗೂ ಎಲ್ಲವೂ ಸರಿಯಾಗಿತ್ತು. ಸ್ವಲ್ಪ ಸುತ್ತಾಡಿದ ನಂತರ, ಸಮಸ್ಯೆಯನ್ನು ಕಂಡುಹಿಡಿಯಲು ತುಂಬಾ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುವುದರಿಂದ ಊರುಗೋಲು ಮತ್ತು ಸೈಕಲ್‌ಗಳ ಸಮಯ ಬಂದಿದೆ ಎಂದು ನಾನು ಅರಿತುಕೊಂಡೆ. ಕೊನೆಯಲ್ಲಿ, ಎಲ್ಲವೂ ಕೇವಲ ಕೆಲಸ ಮಾಡುವ ಸಣ್ಣ ಡೀಮನ್ ಆಗಿ ಮಾರ್ಪಟ್ಟಿದೆ ಮತ್ತು ನನಗೆ ಬೇರೆ ಏನೂ ಅಗತ್ಯವಿಲ್ಲ.
ಯಾರಾದರೂ ಆಸಕ್ತಿ ಹೊಂದಿದ್ದರೆ, ಬೆಕ್ಕುಗೆ ಸ್ವಾಗತ.

ಬಳಸಿದ ಪರಿಕರಗಳು ಮತ್ತು "ಇದು" ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ

ಹಾಗಾಗಿ ಕ್ಲೌಡ್‌ಫ್ಲೇರ್ ವೆಬ್‌ಸೈಟ್‌ನಲ್ಲಿ ನಾನು ಕಂಡುಕೊಂಡ ಮೊದಲ ವಿಷಯವೆಂದರೆ ನೀವು ತಿಳಿದುಕೊಳ್ಳಬೇಕಾದ ಎಲ್ಲವೂ ಎಪಿಐ. ಮತ್ತು ಪೈಥಾನ್‌ನಲ್ಲಿ ಎಲ್ಲವನ್ನೂ ಕಾರ್ಯಗತಗೊಳಿಸಲು ನಾನು ಈಗಾಗಲೇ ಕುಳಿತಿದ್ದೆ (ಪೈಥಾನ್‌ನೊಂದಿಗೆ ಪರಿಚಯವಾದ ನಂತರ, ನಾನು ಅದನ್ನು ಕೆಲವು ಸರಳ ಕಾರ್ಯಗಳಿಗಾಗಿ ಅಥವಾ ನಾನು ತ್ವರಿತವಾಗಿ ಮೂಲಮಾದರಿಯನ್ನು ಮಾಡಬೇಕಾದಾಗ ಅದನ್ನು ಹೆಚ್ಚಾಗಿ ಬಳಸುತ್ತೇನೆ), ನಾನು ಇದ್ದಕ್ಕಿದ್ದಂತೆ ಬಹುತೇಕ ಸಿದ್ಧವಾದ ಅನುಷ್ಠಾನವನ್ನು ಕಂಡಾಗ.
ಸಾಮಾನ್ಯವಾಗಿ, ಹೊದಿಕೆಯನ್ನು ಆಧಾರವಾಗಿ ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ ಹೆಬ್ಬಾವು-ಮೇಘಜ್ವಾಲೆ.

ನಾನು ಡಿಎನ್‌ಎಸ್ ಅನ್ನು ನವೀಕರಿಸಲು ಉದಾಹರಣೆಗಳಲ್ಲಿ ಒಂದನ್ನು ತೆಗೆದುಕೊಂಡಿದ್ದೇನೆ ಮತ್ತು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ನ ಬಳಕೆಯನ್ನು ಮತ್ತು ವಲಯದೊಳಗೆ ಹಲವಾರು ಎ ದಾಖಲೆಗಳನ್ನು ನವೀಕರಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಮತ್ತು ಅನಿಯಮಿತ ಸಂಖ್ಯೆಯ ವಲಯಗಳನ್ನು ಸೇರಿಸಿದೆ.

ತರ್ಕವು ಹೀಗಿದೆ:

  1. ಸ್ಕ್ರಿಪ್ಟ್ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ನಿಂದ ವಲಯಗಳ ಪಟ್ಟಿಯನ್ನು ಪಡೆಯುತ್ತದೆ ಮತ್ತು ಅವುಗಳ ಮೂಲಕ ಲೂಪ್ ಮಾಡುತ್ತದೆ
  2. ಪ್ರತಿ ವಲಯದಲ್ಲಿ, ಸ್ಕ್ರಿಪ್ಟ್ A ಅಥವಾ AAAA ಪ್ರಕಾರದ ಪ್ರತಿಯೊಂದು DNS ದಾಖಲೆಯ ಮೂಲಕ ಲೂಪ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ದಾಖಲೆಯೊಂದಿಗೆ ಸಾರ್ವಜನಿಕ IP ಅನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ
  3. ಐಪಿ ವಿಭಿನ್ನವಾಗಿದ್ದರೆ, ಅದು ಅದನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ; ಇಲ್ಲದಿದ್ದರೆ, ಅದು ಲೂಪ್ ಪುನರಾವರ್ತನೆಯನ್ನು ಬಿಟ್ಟು ಮುಂದಿನದಕ್ಕೆ ಚಲಿಸುತ್ತದೆ.
  4. ಸಂರಚನೆಯಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಸಮಯಕ್ಕೆ ನಿದ್ರಿಸುತ್ತದೆ

ಸ್ಥಾಪನೆ ಮತ್ತು ಸಂರಚನೆ

ಬಹುಶಃ .deb ಪ್ಯಾಕೇಜ್ ಮಾಡಲು ಸಾಧ್ಯವಿದೆ, ಆದರೆ ನಾನು ಇದರಲ್ಲಿ ಉತ್ತಮವಾಗಿಲ್ಲ, ಮತ್ತು ಇದು ಕಷ್ಟಕರವಲ್ಲ.
ನಾನು README.md ನಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಹೆಚ್ಚು ವಿವರವಾಗಿ ವಿವರಿಸಿದ್ದೇನೆ ಭಂಡಾರ ಪುಟ.

ಆದರೆ ಒಂದು ವೇಳೆ, ನಾನು ಅದನ್ನು ಸಾಮಾನ್ಯ ಪರಿಭಾಷೆಯಲ್ಲಿ ರಷ್ಯನ್ ಭಾಷೆಯಲ್ಲಿ ವಿವರಿಸುತ್ತೇನೆ:

  1. ನೀವು python3 ಮತ್ತು python3-pip ಅನ್ನು ಸ್ಥಾಪಿಸಿರುವಿರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ, ಇಲ್ಲದಿದ್ದರೆ, ಅದನ್ನು ಸ್ಥಾಪಿಸಿ (Windows ನಲ್ಲಿ, ಪೈಥಾನ್ ಜೊತೆಗೆ python3-pip ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿದೆ)
  2. ರೆಪೊಸಿಟರಿಯನ್ನು ಕ್ಲೋನ್ ಮಾಡಿ ಅಥವಾ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ
  3. ಅಗತ್ಯವಿರುವ ಅವಲಂಬನೆಗಳನ್ನು ಸ್ಥಾಪಿಸಿ.
    python3 -m pip install -r requirements.txt

  4. ಅನುಸ್ಥಾಪನಾ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ರನ್ ಮಾಡಿ
    Linux ಗಾಗಿ:

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

    ವಿಂಡೋಸ್‌ಗಾಗಿ: windows_install.bat

  5. ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸಿ
    Linux ಗಾಗಿ:

    sudoedit /etc/zen-cf-ddns.conf

    ವಿಂಡೋಸ್‌ಗಾಗಿ:

    ನೀವು ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿದ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ zen-cf-ddns.conf ಫೈಲ್ ಅನ್ನು ತೆರೆಯಿರಿ.

    ಇದು ಸಾಮಾನ್ಯ JSON ಫೈಲ್ ಆಗಿದೆ, ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಏನೂ ಸಂಕೀರ್ಣವಾಗಿಲ್ಲ - ನಾನು ನಿರ್ದಿಷ್ಟವಾಗಿ ಅದರಲ್ಲಿ 2 ವಿಭಿನ್ನ ವಲಯಗಳನ್ನು ಉದಾಹರಣೆಯಾಗಿ ವಿವರಿಸಿದ್ದೇನೆ.

ಸ್ಥಾಪಕಗಳ ಹಿಂದೆ ಏನು?

ಲಿನಕ್ಸ್‌ಗಾಗಿ install.sh:

  1. ಹೋಮ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ರಚಿಸದೆ ಮತ್ತು ಲಾಗಿನ್ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವಿಲ್ಲದೆ ಡೀಮನ್ ಅನ್ನು ಚಲಾಯಿಸಲು ಬಳಕೆದಾರರನ್ನು ರಚಿಸಲಾಗಿದೆ.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. ಲಾಗ್ ಫೈಲ್ ಅನ್ನು /var/log/ ನಲ್ಲಿ ರಚಿಸಲಾಗಿದೆ
  3. ಹೊಸದಾಗಿ ರಚಿಸಲಾದ ಬಳಕೆದಾರರನ್ನು ಲಾಗ್ ಫೈಲ್‌ನ ಮಾಲೀಕರನ್ನಾಗಿ ಮಾಡಿ
  4. ಫೈಲ್‌ಗಳನ್ನು ಅವುಗಳ ಸ್ಥಳಗಳಿಗೆ ನಕಲಿಸಲಾಗುತ್ತದೆ (/etc ನಲ್ಲಿ ಕಾನ್ಫಿಗರ್, /usr/bin ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್, /lib/systemd/system ನಲ್ಲಿ ಸೇವಾ ಫೈಲ್)
  5. ಸೇವೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ

Windows ಗಾಗಿ windows_install.bat:

  1. ಬಳಕೆದಾರ-ನಿರ್ದಿಷ್ಟ ಫೋಲ್ಡರ್‌ಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಮತ್ತು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ನಕಲಿಸುತ್ತದೆ
  2. ಸಿಸ್ಟಮ್ ಪ್ರಾರಂಭದಲ್ಲಿ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ರನ್ ಮಾಡಲು ಶೆಡ್ಯೂಲರ್‌ನಲ್ಲಿ ಕಾರ್ಯವನ್ನು ರಚಿಸುತ್ತದೆ
    schtasks /create /tn "CloudFlare Update IP" /tr "%newLocation%" /sc onstart

ಸಂರಚನೆಯನ್ನು ಬದಲಾಯಿಸಿದ ನಂತರ, ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕಾಗಿದೆ; Linux ನಲ್ಲಿ ಎಲ್ಲವೂ ಸರಳ ಮತ್ತು ಪರಿಚಿತವಾಗಿದೆ:

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 ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಾಶಪಡಿಸಬೇಕು ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಮರು-ರನ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ (C# ನಲ್ಲಿ ವಿಂಡೋಸ್‌ಗಾಗಿ ಸೇವೆಯನ್ನು ಬರೆಯಲು ನಾನು ತುಂಬಾ ಸೋಮಾರಿಯಾಗಿದ್ದೇನೆ):

taskkill /im pythonw.exe

ಇದು ಅನುಸ್ಥಾಪನೆ ಮತ್ತು ಸಂರಚನೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸುತ್ತದೆ, ನಿಮ್ಮ ಆರೋಗ್ಯವನ್ನು ಆನಂದಿಸಿ.

ಅಷ್ಟೊಂದು ಸುಂದರವಲ್ಲದ ಪೈಥಾನ್ ಕೋಡ್ ಅನ್ನು ನೋಡಲು ಬಯಸುವವರಿಗೆ, ಅದು ಇಲ್ಲಿದೆ GitHub ನಲ್ಲಿ ರೆಪೊಸಿಟರಿ.

MIT ಪರವಾನಗಿ ಪಡೆದಿದೆ, ಆದ್ದರಿಂದ ಈ ವಿಷಯವನ್ನು ನೀವು ಏನು ಮಾಡಬೇಕೆಂದು ಮಾಡಿ.

ಪಿಎಸ್: ಇದು ಸ್ವಲ್ಪ ಊರುಗೋಲು ಎಂದು ನಾನು ಅರ್ಥಮಾಡಿಕೊಂಡಿದ್ದೇನೆ, ಆದರೆ ಅದು ತನ್ನ ಕೆಲಸವನ್ನು ಬ್ಯಾಂಗ್‌ನೊಂದಿಗೆ ಮಾಡುತ್ತದೆ.

ಯುಪಿಡಿ: 11.10.2019/17/37 XNUMX:XNUMX
ನಾನು ಇನ್ನೂ 1 ಸಮಸ್ಯೆಯನ್ನು ಕಂಡುಕೊಂಡಿದ್ದೇನೆ ಮತ್ತು ಅದನ್ನು ಹೇಗೆ ಪರಿಹರಿಸಬೇಕೆಂದು ಯಾರಾದರೂ ನನಗೆ ಹೇಳಿದರೆ, ನಾನು ತುಂಬಾ ಕೃತಜ್ಞನಾಗಿದ್ದೇನೆ.
ಸಮಸ್ಯೆಯೆಂದರೆ ನೀವು sudo python -m pip install -r ... ಇಲ್ಲದೆ ಅವಲಂಬನೆಗಳನ್ನು ಸ್ಥಾಪಿಸಿದರೆ, ಸೇವಾ ಬಳಕೆದಾರರಿಂದ ಮಾಡ್ಯೂಲ್‌ಗಳು ಗೋಚರಿಸುವುದಿಲ್ಲ ಮತ್ತು sudo ಅಡಿಯಲ್ಲಿ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸಲು ಬಳಕೆದಾರರನ್ನು ಒತ್ತಾಯಿಸಲು ನಾನು ಬಯಸುವುದಿಲ್ಲ, ಮತ್ತು ಇದು ಸರಿಯಲ್ಲ.
ಅದನ್ನು ಸುಂದರವಾಗಿ ಕಾಣುವಂತೆ ಮಾಡುವುದು ಹೇಗೆ?
UPD: 11.10.2019/19/16 XNUMX:XNUMX venv ಬಳಸಿ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲಾಗಿದೆ.
ಹಲವಾರು ಬದಲಾವಣೆಗಳಾಗಿವೆ. ಮುಂದಿನ ಬಿಡುಗಡೆಯು ಕೆಲವೇ ದಿನಗಳಲ್ಲಿ ಆಗಲಿದೆ.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ