CloudFlare ஐப் பயன்படுத்தி உங்கள் சொந்த டைனமிக் DNS

முன்னுரையில்

CloudFlare ஐப் பயன்படுத்தி உங்கள் சொந்த டைனமிக் DNS வீட்டில் தனிப்பட்ட தேவைகளுக்காக, நான் VSphere ஐ நிறுவியுள்ளேன், அதில் நான் ஒரு மெய்நிகர் திசைவி மற்றும் உபுண்டு சேவையகத்தை மீடியா சேவையகமாக இயக்குகிறேன் மற்றும் பிற இன்னபிற பலவற்றை இயக்குகிறேன், மேலும் இந்த சேவையகம் இணையத்திலிருந்து அணுகக்கூடியதாக இருக்க வேண்டும். ஆனால் பிரச்சனை என்னவென்றால், எனது வழங்குநர் பணத்திற்கான நிலையான தரவை வழங்குகிறார், இது எப்போதும் மிகவும் பயனுள்ள நோக்கங்களுக்காக பயன்படுத்தப்படலாம். எனவே, நான் ddclient + cloudflare கலவையைப் பயன்படுத்தினேன்.

ddclient வேலை செய்வதை நிறுத்தும் வரை எல்லாம் நன்றாக இருந்தது. சிறிது நேரம் சுற்றி பார்த்த பிறகு, சிக்கலைக் கண்டுபிடிக்க அதிக நேரம் எடுக்கும் என்பதால், ஊன்றுகோல் மற்றும் சைக்கிள்களுக்கான நேரம் வந்துவிட்டது என்பதை உணர்ந்தேன். இறுதியில், எல்லாம் வேலை செய்யும் ஒரு சிறிய டீமனாக மாறியது, எனக்கு வேறு எதுவும் தேவையில்லை.
யாராவது ஆர்வமாக இருந்தால், பூனைக்கு வரவேற்கிறோம்.

பயன்படுத்தப்படும் கருவிகள் மற்றும் "அது" எவ்வாறு செயல்படுகிறது

எனவே கிளவுட்ஃப்ளேர் இணையதளத்தில் நான் கண்டுபிடித்த முதல் விஷயம், நீங்கள் தெரிந்து கொள்ள வேண்டிய அனைத்தும் ஏபிஐ. பைத்தானில் உள்ள அனைத்தையும் செயல்படுத்த நான் ஏற்கனவே அமர்ந்திருந்தேன் (பைத்தானைப் பற்றி அறிந்த பிறகு, நான் அதை சில எளிய பணிகளுக்கு அல்லது விரைவாக ஒரு முன்மாதிரி செய்ய வேண்டியிருக்கும் போது), திடீரென்று கிட்டத்தட்ட ஆயத்த செயலாக்கத்தைக் கண்டபோது.
பொதுவாக, ரேப்பர் ஒரு அடிப்படையாக எடுக்கப்பட்டது மலைப்பாம்பு-மேகம்.

DNS ஐப் புதுப்பிப்பதற்கான எடுத்துக்காட்டுகளில் ஒன்றை எடுத்து, ஒரு உள்ளமைவு கோப்பின் பயன்பாடு மற்றும் ஒரு மண்டலத்திற்குள் பல A பதிவுகளை புதுப்பிக்கும் திறன் மற்றும், நிச்சயமாக, வரம்பற்ற மண்டலங்களைச் சேர்த்துள்ளேன்.

தர்க்கம் பின்வருமாறு:

  1. ஸ்கிரிப்ட் உள்ளமைவு கோப்பிலிருந்து மண்டலங்களின் பட்டியலைப் பெறுகிறது மற்றும் அவற்றின் மூலம் சுழல்கிறது
  2. ஒவ்வொரு மண்டலத்திலும், A அல்லது AAAA வகையின் ஒவ்வொரு DNS பதிவிலும் ஸ்கிரிப்ட் சுழன்று, பதிவோடு பொது IPஐச் சரிபார்க்கிறது.
  3. ஐபி வேறுபட்டால், அது அதை மாற்றுகிறது; இல்லையெனில், அது லூப் மறு செய்கையைத் தவிர்த்துவிட்டு அடுத்ததற்குச் செல்லும்.
  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_install.bat

  5. உள்ளமைவு கோப்பை திருத்தவும்
    லினக்ஸுக்கு:

    sudoedit /etc/zen-cf-ddns.conf

    விண்டோஸுக்கு:

    நீங்கள் ஸ்கிரிப்டை நிறுவிய கோப்புறையில் zen-cf-ddns.conf கோப்பைத் திறக்கவும்.

    இது ஒரு வழக்கமான JSON கோப்பு, அமைப்புகளில் ஒன்றும் சிக்கலானது இல்லை - நான் குறிப்பாக அதில் 2 வெவ்வேறு மண்டலங்களை உதாரணமாக விவரித்தேன்.

நிறுவிகளுக்குப் பின்னால் என்ன இருக்கிறது?

Linux க்கான install.sh:

  1. ஹோம் டைரக்டரியை உருவாக்காமல், உள்நுழையும் திறன் இல்லாமல், டீமானை இயக்க ஒரு பயனர் உருவாக்கப்படுகிறார்.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. ஒரு பதிவு கோப்பு /var/log/ இல் உருவாக்கப்பட்டது
  3. புதிதாக உருவாக்கப்பட்ட பயனரை பதிவு கோப்பின் உரிமையாளராக மாற்றவும்
  4. கோப்புகள் அவற்றின் இடங்களுக்கு நகலெடுக்கப்படும் (config in /etc, executable file in /usr/bin, service file in /lib/systemd/system)
  5. சேவை செயல்படுத்தப்பட்டது

Windows க்கான windows_install.bat:

  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

விண்டோஸுக்கு நீங்கள் pythonw செயல்முறையை அழித்து ஸ்கிரிப்டை மீண்டும் இயக்க வேண்டும் (விண்டோஸுக்கான சேவையை C# இல் எழுத நான் மிகவும் சோம்பேறியாக இருக்கிறேன்):

taskkill /im pythonw.exe

இது நிறுவல் மற்றும் உள்ளமைவை நிறைவு செய்கிறது, உங்கள் ஆரோக்கியத்தை அனுபவிக்கவும்.

மிகவும் அழகாக இல்லாத பைதான் குறியீட்டைப் பார்க்க விரும்புவோர், இதோ GitHub இல் களஞ்சியம்.

எம்ஐடி உரிமம் பெற்றுள்ளது, எனவே நீங்கள் விரும்புவதைச் செய்யுங்கள்.

PS: இது ஒரு சிறிய ஊன்றுகோலாக மாறியது என்பதை நான் புரிந்துகொள்கிறேன், ஆனால் அது அதன் வேலையை ஒரு சத்தத்துடன் செய்கிறது.

UPD: 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

கருத்தைச் சேர்