{"id":38840,"date":"2019-10-31T22:26:17","date_gmt":"2019-10-31T19:26:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/svoj-dynamic-dns-s-pomoshhyu-cloudflare\/"},"modified":"2019-10-31T22:26:17","modified_gmt":"2019-10-31T19:26:17","slug":"svoj-dynamic-dns-s-pomoshhyu-cloudflare","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/svoj-dynamic-dns-s-pomoshhyu-cloudflare","title":{"rendered":"DNS dinamic personal cu ajutorul CloudFlare","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>Prefa\u021b\u0103<\/h3>\n<p>\n<img decoding=\"async\" alt=\"DNS dinamic personal cu ajutorul CloudFlare\" src=\"\/wp-content\/uploads\/2019\/10\/d1405e23e86048a05e6707bb5e9e215f.jpg\" style=\"display:block;margin: 0 auto;\" \/> Am instalat VSphere pentru uz personal acas\u0103, pe care rulez un router virtual \u0219i un server Ubuntu ca server media, \u00eempreun\u0103 cu multe alte servicii utile, iar acest server trebuie s\u0103 fie accesibil din Internet. Problema este c\u0103 providerul meu ofer\u0103 IP static doar contra cost, ceea ce poate fi folosit pentru alte scopuri mai utile. A\u0219a c\u0103 am folosit o combina\u021bie ddclient + cloudflare. <\/p>\n<p>Totul a fost bine, p\u00e2n\u0103 c\u00e2nd ddclient a \u00eencetat s\u0103 mai func\u021bioneze. Dup\u0103 ce am investigat pu\u021bin, am realizat c\u0103 a venit momentul s\u0103 caut solu\u021bii rapide, deoarece timpul dedicat g\u0103sirii problemei devenise prea mare. \u00cen cele din urm\u0103, totul s-a transformat \u00eentr-un mic daemon care pur \u0219i simplu func\u021bioneaz\u0103, \u0219i asta e tot ce am nevoie. <br \/>\nCine este interesat - bine a\u021bi venit sub cat.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Instrumentele utilizate \u0219i cum func\u021bioneaz\u0103 \u201eacest lucru\u201d<\/h3>\n<p>\nA\u0219adar, mai \u00eent\u00e2i am aflat de pe site-ul cloudflare tot ce trebuie s\u0103 \u0219tiu despre <noindex><a rel=\"nofollow\" href=\"https:\/\/api.cloudflare.com\/\">API<\/a><\/noindex>. M-am a\u0219ezat s\u0103 implementez totul \u00een Python (dup\u0103 ce m-am familiarizat cu Python, \u00eel folosesc din ce \u00een ce mai des pentru sarcini simple sau c\u00e2nd trebuie s\u0103 creez rapid un prototip), c\u00e2nd, dintr-o dat\u0103, am dat peste o implementare aproape gata.<br \/>\n\u00cen general, am folosit wrapper-ul <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/cloudflare\/python-cloudflare\">python-cloudflare<\/a><\/noindex>.<\/p>\n<p>Am luat unul dintre exemplele pentru actualizarea DNS \u0219i am ad\u0103ugat utilizarea unui fi\u0219ier de configurare \u0219i capacitatea de a actualiza mai multe \u00eenregistr\u0103ri A \u00een cadrul zonei \u0219i, evident, un num\u0103r nelimitat de zone.<\/p>\n<p>Logica este urm\u0103toarea:<\/p>\n<ol>\n<li>Scriptul ob\u021bine din fi\u0219ierul de configurare o list\u0103 de zone \u0219i le parcurge \u00eentr-un ciclu<\/li>\n<li>\u00cen fiecare zon\u0103, scriptul parcurge fiecare \u00eenregistrare DNS de tip A sau AAAA \u0219i compar\u0103 IP-ul public cu \u00eenregistrarea<\/li>\n<li>Dac\u0103 IP-ul este diferit - \u00eel schimb\u0103; dac\u0103 nu, trece la itera\u021bia urm\u0103toare a ciclului \u0219i continu\u0103. <\/li>\n<li>Se opre\u0219te pentru perioada specificat\u0103 \u00een configura\u021bie.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Instalare \u0219i configurare<\/h3>\n<p>\nProbabil c\u0103 ar fi fost posibil s\u0103 fac un pachet .deb, dar nu m\u0103 pricep bine la asta \u0219i nu e foarte complicat.<br \/>\nAm descris procesul destul de detaliat \u00een README.md de pe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/DzenDyn\/zen-cf-ddns\">pagina repository-ului<\/a><\/noindex>.<\/p>\n<p>Dar, pentru orice eventualitate, voi explica \u00een rom\u00e2n\u0103 \u00een termeni generali:<\/p>\n<ol>\n<li>Asigura\u021bi-v\u0103 c\u0103 ave\u021bi instalat python3 \u0219i python3-pip; dac\u0103 nu, instala\u021bi-le (\u00een Windows, python3-pip se instaleaz\u0103 \u00eempreun\u0103 cu Python)<\/li>\n<li>Clona\u021bi sau desc\u0103rca\u021bi repository-ul<\/li>\n<li>Instala\u021bi dependen\u021bele necesare.\n<pre><code class=\"plaintext\">python3 -m pip install -r requirements.txt<\/code><\/pre>\n<p>\n<\/li>\n<li>Rula\u021bi scriptul de instalare<br \/>\nPentru Linux:<\/p>\n<pre><code class=\"plaintext\">chmod +x install.sh\nsudo .\/install.sh<\/code><\/pre>\n<p>\nPentru Windows: windows_install.bat\n<\/li>\n<li>Edita\u021bi fi\u0219ierul de configurare<br \/>\nPentru Linux:<\/p>\n<pre><code class=\"plaintext\">sudoedit \/etc\/zen-cf-ddns.conf<\/code><\/pre>\n<p>\nPentru Windows:<\/p>\n<p>Deschide\u021bi fi\u0219ierul zen-cf-ddns.conf \u00een folderul \u00een care a\u021bi instalat scriptul.<\/p>\n<p>Acesta este un fi\u0219ier JSON obi\u0219nuit, f\u0103r\u0103 configura\u021bii complicate \u2013 am descris special dou\u0103 zone diferite ca exemplu.\n<\/li>\n<\/ol>\n<p><\/p>\n<h4>Ce se ascunde \u00een spatele instalatorilor?<\/h4>\n<p>\ninstall.sh pentru Linux:<\/p>\n<ol>\n<li>Se creeaz\u0103 un utilizator pentru a rula demonul, f\u0103r\u0103 a crea un director acas\u0103 \u0219i f\u0103r\u0103 posibilitatea de logare.\n<pre><code class=\"plaintext\">sudo useradd -r -s \/bin\/false zen-cf-ddns<\/code><\/pre>\n<p>\n<\/li>\n<li>Se creeaz\u0103 un fi\u0219ier pentru a scrie loguri \u00een \/var\/log\/<\/li>\n<li>Facem proprietar al fi\u0219ierului de log utilizatorul creat recent<\/li>\n<li>Se copiaz\u0103 fi\u0219ierele \u00een loca\u021biile corespunz\u0103toare (config \u00een \/etc, fi\u0219ier executabil \u00een \/usr\/bin, fi\u0219ier de serviciu \u00een \/lib\/systemd\/system)<\/li>\n<li>Se activeaz\u0103 serviciul<\/li>\n<\/ol>\n<p>\nwindows_install.bat pentru Windows:<\/p>\n<ol>\n<li>Copiaz\u0103 fi\u0219ierul executabil \u0219i fi\u0219ierul de configurare \u00een folderul specificat de utilizator<\/li>\n<li>Creeaz\u0103 o sarcin\u0103 \u00een planificator pentru a rula scriptul la pornirea sistemului<br \/>\n<code>schtasks \/create \/tn \"CloudFlare Update IP\" \/tr \"%newLocation%\" \/sc onstart<\/code>\n<\/li>\n<\/ol>\n<p>\nDup\u0103 modificarea configura\u021biei, scriptul trebuie repornit, \u00een Linux este simplu \u0219i familiar:<\/p>\n<pre><code class=\"plaintext\">sudo service zen-cf-ddns start\nsudo service zen-cf-ddns stop\nsudo service zen-cf-ddns restart\nsudo service zen-cf-ddns status\n<\/code><\/pre>\n<p>\npentru Windows va trebui s\u0103 omori procesul pythonw \u0219i s\u0103 reporne\u0219ti scriptul (mi-e foarte greu s\u0103 scriu un serviciu pentru Windows \u00een C#):<\/p>\n<pre><code class=\"plaintext\">taskkill \/im pythonw.exe<\/code><\/pre>\n<p>\nAceasta \u00eencheie instalarea \u0219i configurarea, folosi\u021bi-o cu pl\u0103cere.<\/p>\n<p>Pentru cei care doresc s\u0103 vad\u0103 un cod Python nu foarte frumos, iat\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/DzenDyn\/zen-cf-ddns\">repository-ul de pe GitHub<\/a><\/noindex>.<\/p>\n<p>Licen\u021ba MIT, a\u0219a c\u0103 face\u021bi ce dori\u021bi cu acest lucru.<\/p>\n<p>P.S.: \u00cen\u021beleg c\u0103 a ie\u0219it pu\u021bin improvizat, dar \u00ee\u0219i \u00eendepline\u0219te sarcina excelent.<\/p>\n<p>UPD: 11.10.2019 17:37<br \/>\nAm g\u0103sit \u00eenc\u0103 o problem\u0103, \u0219i dac\u0103 cineva ar putea sugera cum s\u0103 o rezolv, a\u0219 fi foarte recunosc\u0103tor.<br \/>\nProblema este c\u0103, dac\u0103 instalezi dependen\u021bele f\u0103r\u0103 sudo python -m pip install -r &#8230;, modulele nu vor fi vizibile din contul utilizatorului serviciului, iar eu nu a\u0219 vrea s\u0103 for\u021bez utilizatorii s\u0103 instaleze module sub sudo, \u0219i nici nu este corect.<br \/>\nCum se poate face corect, astfel \u00eenc\u00e2t s\u0103 arate bine?<br \/>\nUPD: 11.10.2019 19:16 Problema a fost rezolvat\u0103 prin utilizarea venv.<br \/>\nAu fost c\u00e2teva modific\u0103ri. Un nou release va fi disponibil \u00een zilele urm\u0103toare.<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/471102\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435 \u0414\u043b\u044f \u043b\u0438\u0447\u043d\u044b\u0445 \u043d\u0443\u0436\u0434 \u0434\u043e\u043c\u0430 \u043f\u043e\u0434\u043d\u044f\u043b VSphere, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u0440\u0443\u0447\u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440 \u0438 Ubuntu \u0441\u0435\u0440\u0432\u0435\u0440 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0435\u0434\u0438\u0430-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0435\u0449\u0435 \u043a\u0443\u0447\u0438 \u0432\u0441\u044f\u043a\u0438\u0445 \u0432\u043a\u0443\u0441\u043d\u044f\u0448\u0435\u043a, \u0438 \u044d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0438\u0437 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442. \u041d\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u043e\u0439 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u0434\u0430\u0435\u0442 \u0441\u0442\u0430\u0442\u0438\u043a\u0443 \u0437\u0430 \u0434\u0435\u043d\u044c\u0433\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0441\u0432\u044f\u0437\u043a\u043e\u0439 ddclient + [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29132,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38840","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435 \u0414\u043b\u044f \u043b\u0438\u0447\u043d\u044b\u0445 \u043d\u0443\u0436\u0434 \u0434\u043e\u043c\u0430 \u043f\u043e\u0434\u043d\u044f\u043b.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/svoj-dynamic-dns-s-pomoshhyu-cloudflare\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0432\u043e\u0439 dynamic DNS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CloudFlare | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435 \u0414\u043b\u044f \u043b\u0438\u0447\u043d\u044b\u0445 \u043d\u0443\u0436\u0434 \u0434\u043e\u043c\u0430 \u043f\u043e\u0434\u043d\u044f\u043b.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/svoj-dynamic-dns-s-pomoshhyu-cloudflare\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:26:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:26:17+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47DNS-ul dinamic propriu cu ajutorul CloudFlare | ProHoster","description":"Prefa\u021b\u0103 Pentru nevoile personale am ridicat-o acas\u0103.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/svoj-dynamic-dns-s-pomoshhyu-cloudflare","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0432\u043e\u0439 dynamic DNS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CloudFlare | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435 \u0414\u043b\u044f \u043b\u0438\u0447\u043d\u044b\u0445 \u043d\u0443\u0436\u0434 \u0434\u043e\u043c\u0430 \u043f\u043e\u0434\u043d\u044f\u043b.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/svoj-dynamic-dns-s-pomoshhyu-cloudflare","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:26:17+00:00","article:modified_time":"2019-10-31T19:26:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38840","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 23:37:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:01:36","updated":"2026-01-23 23:37:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/38840","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=38840"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/38840\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/29132"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=38840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=38840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=38840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}