{"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\/de\/blog\/administrirovanie\/svoj-dynamic-dns-s-pomoshhyu-cloudflare","title":{"rendered":"DynDNS mit CloudFlare","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>Vorwort<\/h3>\n<p>\n<img decoding=\"async\" alt=\"DynDNS mit CloudFlare\" src=\"\/wp-content\/uploads\/2019\/10\/d1405e23e86048a05e6707bb5e9e215f.jpg\" style=\"display:block;margin: 0 auto;\" \/> F\u00fcr pers\u00f6nliche Zwecke habe ich zu Hause VSphere eingerichtet, auf dem ich einen virtuellen Router und einen Ubuntu-Server als Medienserver sowie viele andere n\u00fctzliche Dinge betreibe. Dieser Server sollte \u00fcber das Internet zug\u00e4nglich sein. Das Problem ist jedoch, dass mein Anbieter f\u00fcr statische IPs Geb\u00fchren verlangt, f\u00fcr die man immer eine sinnvollere Verwendung finden kann. Daher habe ich ddclient + cloudflare verwendet. <\/p>\n<p>Alles lief gut, bis ddclient nicht mehr funktionierte. Nach ein wenig Herumprobieren wurde mir klar, dass es Zeit f\u00fcr Workarounds und kreative L\u00f6sungen war, da ich zu viel Zeit mit der Fehlersuche verbrachte. Am Ende entstand ein kleiner Daemon, der einfach l\u00e4uft, mehr brauche ich nicht. <br \/>\nInteressierte sind herzlich eingeladen, weiterzulesen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Verwendete Werkzeuge und wie \u00bbdas\u00ab funktioniert<\/h3>\n<p>\nAls erstes habe ich auf der CloudFlare-Website alles nachgelesen, was man \u00fcber <noindex><a rel=\"nofollow\" href=\"https:\/\/api.cloudflare.com\/\">API<\/a><\/noindex>wissen muss. Nachdem ich bereits eine Weile mit Python gearbeitet hatte (seit meiner Bekanntschaft mit Python verwende ich es h\u00e4ufiger f\u00fcr einfache Aufgaben oder um schnell Prototypen zu erstellen), stie\u00df ich pl\u00f6tzlich auf eine fast fertige Implementierung.<br \/>\nIm Grunde wurde der Wrapper <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/cloudflare\/python-cloudflare\">python-cloudflare<\/a><\/noindex>.<\/p>\n<p>als Basis genommen. Ich nahm eines der Beispiele zum Aktualisieren von DNS und f\u00fcgte die Verwendung einer Konfigurationsdatei sowie die M\u00f6glichkeit hinzu, mehrere A-Eintr\u00e4ge innerhalb einer Zone und nat\u00fcrlich eine unbegrenzte Anzahl von Zonen zu aktualisieren.<\/p>\n<p>Die Logik ist folgende:<\/p>\n<ol>\n<li>Das Skript liest aus der Konfigurationsdatei eine Liste von Zonen und durchl\u00e4uft sie in einer Schleife.<\/li>\n<li>Innerhalb jeder Zone durchl\u00e4uft das Skript in einer Schleife jede DNS-Eintragung vom Typ A oder AAAA und vergleicht die \u00f6ffentliche IP mit dem Eintrag.<\/li>\n<li>Wenn sich die IP unterscheidet, \u00e4ndert es sie, andernfalls \u00fcberspringt es die aktuelle Iteration und wechselt zur n\u00e4chsten. <\/li>\n<li>Es schl\u00e4ft die Zeit, die in der Konfiguration angegeben ist,<\/li>\n<\/ol>\n<p><\/p>\n<h3>Installation und Konfiguration<\/h3>\n<p>\nVielleicht h\u00e4tte ich auch ein .deb-Paket erstellen k\u00f6nnen, aber damit kenne ich mich nicht aus, und so kompliziert ist es nicht.<br \/>\nDen Prozess habe ich ausf\u00fchrlich in der README.md auf der <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/DzenDyn\/zen-cf-ddns\">Repository-Seite beschrieben.<\/a><\/noindex>.<\/p>\n<p>Aber zur Sicherheit beschreibe ich es auf Russisch in allgemeinen Worten:<\/p>\n<ol>\n<li>Stellen Sie sicher, dass Sie python3 und python3-pip installiert haben. Falls nicht, installieren Sie es (unter Windows wird python3-pip zusammen mit Python installiert).<\/li>\n<li>Klonen oder laden Sie das Repository herunter.<\/li>\n<li>Installieren Sie die ben\u00f6tigten Abh\u00e4ngigkeiten.\n<pre><code class=\"plaintext\">python3 -m pip install -r requirements.txt<\/code><\/pre>\n<p>\n<\/li>\n<li>F\u00fchren Sie das Installationsskript aus.<br \/>\nF\u00fcr Linux:<\/p>\n<pre><code class=\"plaintext\">chmod +x install.sh\nsudo .\/install.sh<\/code><\/pre>\n<p>\nF\u00fcr Windows: windows_install.bat\n<\/li>\n<li>Bearbeiten Sie die Konfigurationsdatei.<br \/>\nF\u00fcr Linux:<\/p>\n<pre><code class=\"plaintext\">sudoedit \/etc\/zen-cf-ddns.conf<\/code><\/pre>\n<p>\nF\u00fcr Windows:<\/p>\n<p>\u00d6ffnen Sie die Datei zen-cf-ddns.conf im Ordner, in den Sie das Skript installiert haben.<\/p>\n<p>Das ist eine gew\u00f6hnliche JSON-Datei, die in den Einstellungen nichts Kompliziertes enth\u00e4lt \u2013 ich habe absichtlich zwei verschiedene Bereiche als Beispiel beschrieben.\n<\/li>\n<\/ol>\n<p><\/p>\n<h4>Was steckt hinter den Installationsprogrammen?<\/h4>\n<p>\ninstall.sh f\u00fcr Linux:<\/p>\n<ol>\n<li>Ein Benutzer wird erstellt, um den Daemon ohne Erstellung eines Home-Verzeichnisses und ohne Anmeldem\u00f6glichkeiten zu starten.\n<pre><code class=\"plaintext\">sudo useradd -r -s \/bin\/false zen-cf-ddns<\/code><\/pre>\n<p>\n<\/li>\n<li>Eine Datei zur Protokollierung wird in \/var\/log\/ erstellt.<\/li>\n<li>Wir machen den neu erstellten Benutzer zum Eigent\u00fcmer der Protokolldatei.<\/li>\n<li>Dateien werden an ihren Platz kopiert (Konfiguration in \/etc, ausf\u00fchrbare Datei in \/usr\/bin, Dienstdatei in \/lib\/systemd\/system).<\/li>\n<li>Der Dienst wird aktiviert.<\/li>\n<\/ol>\n<p>\nwindows_install.bat f\u00fcr Windows:<\/p>\n<ol>\n<li>Kopiert die ausf\u00fchrbare Datei und die Konfigurationsdatei in den vom Benutzer angegebenen Ordner.<\/li>\n<li>Erstellt einen Task im Task Scheduler, um das Skript beim Systemstart auszuf\u00fchren.<br \/>\n<code>schtasks \/create \/tn \"CloudFlare Update IP\" \/tr \"%newLocation%\" \/sc onstart<\/code>\n<\/li>\n<\/ol>\n<p>\nNach der \u00c4nderung der Konfiguration muss das Skript neu gestartet werden. In Linux ist das einfach und vertraut:<\/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>\nF\u00fcr Windows muss ich den Prozess pythonw beenden und das Skript erneut starten (ich habe keine Lust, einen Dienst unter Windows in C# zu schreiben):<\/p>\n<pre><code class=\"plaintext\">taskkill \/im pythonw.exe<\/code><\/pre>\n<p>\nDamit ist die Installation und Konfiguration abgeschlossen, viel Spa\u00df damit.<\/p>\n<p>F\u00fcr diejenigen, die sich den nicht sehr sch\u00f6nen Python-Code ansehen m\u00f6chten, hier ist er. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/DzenDyn\/zen-cf-ddns\">Repository auf GitHub<\/a><\/noindex>.<\/p>\n<p>MIT-Lizenz, also macht, was ihr wollt.<\/p>\n<p>P.S.: Ich verstehe, dass es etwas umst\u00e4ndlich geraten ist, aber es erf\u00fcllt seinen Zweck hervorragend.<\/p>\n<p>UPD: 11.10.2019 17:37<br \/>\nIch habe noch ein Problem gefunden, und wenn jemand einen Tipp zur L\u00f6sung hat, w\u00e4re ich sehr dankbar.<br \/>\nDas Problem ist, dass, wenn man Abh\u00e4ngigkeiten ohne sudo installiert, dann sind die Module f\u00fcr den Servicebenutzer nicht sichtbar. Ich m\u00f6chte die Benutzer nicht zwingen, die Module mit sudo zu installieren, und es ist auch nicht richtig.<br \/>\nWie kann ich es richtig machen, damit es sch\u00f6n aussieht?<br \/>\nUPD: 11.10.2019 19:16 Das Problem wurde durch die Verwendung von venv gel\u00f6st.<br \/>\nEs gab mehrere \u00c4nderungen. Ein weiteres Release wird in den n\u00e4chsten Tagen verf\u00fcgbar sein.<br \/>\n<br \/>Quelle: <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.1.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\/de\/blog\/administrirovanie\/svoj-dynamic-dns-s-pomoshhyu-cloudflare\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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\udd47Eigenes dynamic DNS mit Hilfe von CloudFlare | ProHoster","description":"Vorwort F\u00fcr pers\u00f6nliche Zwecke habe ich es zu Hause eingerichtet.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/svoj-dynamic-dns-s-pomoshhyu-cloudflare","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/38840","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=38840"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/38840\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/29132"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=38840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=38840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=38840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}