ستاسو خپل متحرک DNS د CloudFlare په کارولو سره

وړاندیز

ستاسو خپل متحرک DNS د CloudFlare په کارولو سره په کور کې د شخصي اړتیاو لپاره ، ما VSphere نصب کړ ، په کوم کې چې زه د میډیا سرور او یو شمیر نورو سامانونو په توګه یو مجازی روټر او د اوبنټو سرور چلوم ، او دا سرور باید د انټرنیټ څخه د لاسرسي وړ وي. مګر ستونزه دا ده چې زما چمتو کونکي د پیسو لپاره جامد معلومات ورکوي، کوم چې تل د ډیرو ګټورو موخو لپاره کارول کیدی شي. له همدې امله ، ما د ddclient + cloudflare ترکیب کارولی.

هرڅه سم وو تر هغه چې ddclient کار ودروي. د لږ څه په شاوخوا کې وهلو وروسته، ما پوهیده چې د کرچونو او بایسکلونو وخت راغلی، ځکه چې دا د ستونزې موندلو لپاره ډیر وخت نیسي. په نهایت کې ، هرڅه په کوچني ډیمون بدل شوي چې یوازې کار کوي ، او زه بل څه ته اړتیا نلرم.
که څوک علاقه لري ، بلی ته ښه راغلاست.

کارول شوي وسیلې او "دا" څنګه کار کوي

نو لومړی شی چې ما په کلاوډ فلیر ویب پا onه کې وموندل هغه هرڅه دي چې تاسو ورته اړتیا لرئ پدې اړه پوه شئ API. او زه لا دمخه په پایتون کې د هرڅه پلي کولو لپاره ناست وم (د پایتون سره آشنا کیدو وروسته ، زه دا په زیاتیدونکي ډول د ځینې ساده کارونو لپاره کاروم یا کله چې زه اړتیا لرم ژر تر ژره پروټوټایپ جوړ کړم) ، کله چې زه ناڅاپه د نږدې چمتو شوي پلي کولو سره مخ شوم.
په عموم کې، لپاس د بنسټ په توګه اخیستل شوی و python- cloudflare.

ما د DNS تازه کولو لپاره یوه بیلګه واخیسته او د ترتیب کولو فایل کارول او په زون کې د څو A ریکارډونو تازه کولو وړتیا اضافه کړه او البته ، د زونونو لامحدود شمیر.

منطق په لاندې ډول دی:

  1. سکریپټ د ترتیب کولو فایل څخه د زونونو لیست ترلاسه کوي او د دوی له لارې لوپ کوي
  2. په هر زون کې، سکریپټ د A یا AAAA ډوله د هر DNS ریکارډ له لارې لوپ کوي او د ریکارډ سره عامه IP ګوري
  3. که IP توپیر ولري، دا بدلوي؛ که نه، دا د لوپ تکرار پریږدي او بل ته حرکت کوي.
  4. په ترتیب کې ټاکل شوي وخت لپاره خوب کیږي

نصب او ترتیب

دا به ممکن وي چې د .deb بسته جوړه کړئ، مګر زه پدې کې ښه نه یم، او دا ټول ستونزمن ندي.
ما دا پروسه په خورا تفصیل سره په README.md کې تشریح کړه ذخیره پاڼه.

مګر یوازې په دې حالت کې، زه به یې په روسیه کې په عمومي اصطلاحاتو کې تشریح کړم:

  1. ډاډ ترلاسه کړئ چې تاسو python3 او python3-pip نصب کړی، که نه، دا نصب کړئ (په وینډوز کې، 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

    د وینډوز لپاره:

    په هغه فولډر کې د زین-cf-ddns.conf فایل خلاص کړئ چیرې چې تاسو سکریپټ نصب کړی.

    دا یو منظم JSON فایل دی، ترتیبات هیڅ پیچلي ندي - ما په ځانګړې توګه په دې کې 2 مختلف زونونه د مثال په توګه بیان کړل.

د نصب کونکو تر شا څه دي؟

د لینکس لپاره install.sh:

  1. یو کارن د ډیمون چلولو لپاره رامینځته شوی ، پرته لدې چې د کور لارښود رامینځته کړي او د ننوتلو وړتیا پرته.
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. د لاګ فایل په /var/log/ کې جوړیږي
  3. نوی جوړ شوی کارن د لاګ فایل مالک جوړ کړئ
  4. فایلونه خپلو ځایونو ته کاپي شوي (په /etc کې config، په /usr/bin کې د اجرا وړ فایل، په /lib/systemd/system کې د خدماتو فایل)
  5. خدمت فعال دی

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 کې ذخیره.

د MIT جواز لري، نو د دې شیانو سره هغه څه وکړئ چې تاسو یې غواړئ.

PS: زه پوهیږم چې دا یو څه د کرچ په څیر وګرځید ، مګر دا خپله دنده په بنګ سره ترسره کوي.

UPD: 11.10.2019/17/37 XNUMX:XNUMX
ما 1 نوره ستونزه وموندله، او که څوک ما ته ووایي چې څنګه یې حل کړم، زه به ډیره مننه وکړم.
ستونزه دا ده چې که تاسو د sudo python -m pip install -r پرته انحصارونه نصب کړئ ، نو ماډلونه به د خدماتو کارونکي څخه څرګند نشي ، او زه نه غواړم کاروونکي مجبور کړم چې د سوډو لاندې ماډلونه نصب کړي ، او دا دی. سمه نه ده
څنګه ښکلی ښکاري؟
UPD: 11.10.2019/19/16 XNUMX:XNUMX ستونزه د venv په کارولو سره حل شوه.
څو بدلونونه راغلي دي. راتلونکی ریلیز به په راتلونکو څو ورځو کې وي.

سرچینه: www.habr.com

Add a comment