CloudFlareን በመጠቀም የራስዎ ተለዋዋጭ ዲ ኤን ኤስ

መቅድም

CloudFlareን በመጠቀም የራስዎ ተለዋዋጭ ዲ ኤን ኤስ በቤት ውስጥ ለግል ፍላጎቶች ቪስፌርን ጫንኩኝ ፣ በእሱ ላይ ቨርቹዋል ራውተር እና ኡቡንቱ አገልጋይ እንደ ሚዲያ አገልጋይ እና ሌሎች ብዙ ጥሩ ነገሮች እሰራለሁ እና ይህ አገልጋይ ከበይነመረብ ተደራሽ መሆን አለበት። ነገር ግን ችግሩ የእኔ አገልግሎት ሰጪ ለገንዘብ የማይለዋወጥ ውሂብን ይሰጣል, ይህም ሁልጊዜ ለበለጠ ጠቃሚ ዓላማዎች ሊውል ይችላል. ስለዚህ፣ እኔ የ ddclient + cloudflare ጥምረት ተጠቀምኩ።

ddclient መስራት እስኪያቆም ድረስ ሁሉም ነገር ጥሩ ነበር። ትንሽ ካዞርኩ በኋላ ችግሩን ለማግኘት ብዙ ጊዜ ስለሚወስድ የክራንች እና የብስክሌት ጊዜ እንደደረሰ ተረዳሁ። በመጨረሻ ፣ ሁሉም ነገር ወደ ሚሰራው ትንሽ ዴሞን ተለወጠ ፣ እና ሌላ ምንም አያስፈልገኝም።
ማንም ፍላጎት ካለው፣ ወደ ድመት እንኳን በደህና መጡ።

ጥቅም ላይ የዋሉ መሳሪያዎች እና "እንዴት" እንደሚሰራ

ስለዚህ በCloudflare ድህረ ገጽ ላይ ያገኘሁት የመጀመሪያው ነገር ማወቅ ያለብዎት ነገር ሁሉ ነው። ኤ ፒ አይ. እና ሁሉንም ነገር በፓይዘን ውስጥ ለመተግበር ተቀምጫለሁ (ከፓይዘን ጋር ካወቅኩኝ በኋላ ለአንዳንድ ቀላል ስራዎች የበለጠ እጠቀማለሁ ወይም በፍጥነት ፕሮቶታይፕ ማድረግ ሲያስፈልገኝ) ፣ በድንገት ዝግጁ የሆነ ትግበራ አገኘሁ።
በአጠቃላይ, መጠቅለያው እንደ መሰረት ተወስዷል python-cloudflare.

ዲ ኤን ኤስን ለማዘመን አንዱን ምሳሌ ወሰድኩ እና የማዋቀሪያ ፋይል አጠቃቀምን እና በዞን ውስጥ ያሉ በርካታ የ A መዛግብትን የማዘመን ችሎታ እና በእርግጥ ያልተገደበ የዞኖች ብዛት ጨምሬያለሁ።

አመክንዮው እንደሚከተለው ነው።

  1. ስክሪፕቱ የዞኖችን ዝርዝር ከማዋቀሪያው ፋይል ይቀበላል እና በእነሱ በኩል ቀለበቶችን ይቀበላል
  2. በእያንዳንዱ ዞን፣ ስክሪፕቱ በእያንዳንዱ የዲ ኤን ኤስ አይነት A ወይም AAAA መዝገብ ውስጥ ይሽከረከራል እና የህዝብ አይፒን ከመዝገቡ ጋር ያረጋግጣል።
  3. አይፒው የተለየ ከሆነ ይቀይረዋል፤ ካልሆነ ግን የ loop ድግግሞሹን ይዘለላል እና ወደሚቀጥለው ይሸጋገራል።
  4. በውቅሩ ውስጥ ለተጠቀሰው ጊዜ ይተኛል።

ጭነት እና ውቅር

ዴብ ፓኬጅ ማድረግ ይቻል ይሆናል, ነገር ግን በዚህ ላይ ጥሩ አይደለሁም, እና ይህ ሁሉ አስቸጋሪ አይደለም.
ሂደቱን በዝርዝር በ README.md በ የማጠራቀሚያ ገጽ.

ግን እንደዚያ ከሆነ ፣ በሩሲያኛ በአጠቃላይ ቃላት እገልፀዋለሁ-

  1. python3 እና python3-pip መጫኑን ያረጋግጡ፣ ካልሆነ ይጫኑት (በዊንዶውስ ላይ፣ python3-pip ከፓይዘን ጋር ተጭኗል)
  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 የተለያዩ ዞኖችን እንደ ምሳሌ ገለጽኩ ።

ከመጫኛዎቹ በስተጀርባ ያለው ምንድን ነው?

install.sh ለሊኑክስ፡

  1. የቤት ማውጫ ሳይፈጥር እና የመግባት ችሎታ ሳይኖረው ተጠቃሚው ዴሞንን ለማስኬድ ተፈጥሯል።
    sudo useradd -r -s /bin/false zen-cf-ddns

  2. የምዝግብ ማስታወሻ ፋይል በ /var/log/ ውስጥ ተፈጥሯል
  3. አዲስ የተፈጠረውን ተጠቃሚ የምዝግብ ማስታወሻው ባለቤት ያድርጉት
  4. ፋይሎቹ ወደ ቦታቸው ይገለበጣሉ (ውቅረት በ / ወዘተ ፣ ተፈጻሚነት ያለው ፋይል በ / 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

ይሄ መጫኑን እና ውቅሩን ያጠናቅቃል, ለጤንነትዎ ይደሰቱ.

በጣም ቆንጆ ያልሆነውን የ Python ኮድ ማየት ለሚፈልጉ፣ ይኸው ነው። በ GitHub ላይ ማከማቻ.

MIT ፍቃድ ተሰጥቶታል፣ ስለዚህ በዚህ ነገር እርስዎ የሚፈልጉትን ያድርጉ።

PS: ትንሽ ወደ ክራንች እንደተለወጠ ተረድቻለሁ, ነገር ግን ስራውን በባንግ ይሠራል.

የተሻሻለው: 11.10.2019/17/37 XNUMX:XNUMX
1 ተጨማሪ ችግር አግኝቻለሁ, እና አንድ ሰው እንዴት መፍታት እንዳለብኝ ቢነግረኝ, በጣም አመስጋኝ እሆናለሁ.
ችግሩ ሱዶ python -m pip install -r ... ያለ ጥገኞችን ከጫኑ ሞጁሎቹ ከአገልግሎት ተጠቃሚው አይታዩም እና ተጠቃሚዎች በሱዶ ስር ሞጁሎችን እንዲጭኑ ማስገደድ አልፈልግም ፣ እና ይህ ትክክል አይደለም.
እንዴት ቆንጆ እንዲሆን ማድረግ ይቻላል?
UPD: 11.10.2019/19/16 XNUMX:XNUMX ችግሩ የተፈታው venv.
በርካታ ለውጦች ተደርገዋል። የሚቀጥለው ልቀት በሚቀጥሉት ጥቂት ቀናት ውስጥ ይሆናል።

ምንጭ: hab.com

አስተያየት ያክሉ