{"id":252,"date":"2021-02-20T19:29:45","date_gmt":"2021-02-20T18:29:45","guid":{"rendered":"https:\/\/alexskra.com\/blog\/?p=252"},"modified":"2024-01-21T15:58:19","modified_gmt":"2024-01-21T14:58:19","slug":"dynamc-dnsddns-with-openwrt-and-cloudflare","status":"publish","type":"post","link":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/","title":{"rendered":"Dynamic DNS(DDNS) with OpenWRT and Cloudflare"},"content":{"rendered":"\n<p>Do you want to update your DNS when your IP changes? Are you using a router running OpenWRT and Cloudflare? Then this short guide is perfect for you!<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Let&#8217;s dive right into it. The OpenWRT router needs to modify your DNS settings on Cloudflare, so we need to create an API token. We could use the global API token, but we&#8217;ll use an API token with more limited access instead. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Creating a token on Cloudflare<\/h2>\n\n\n\n<p>Head to Cloudflare and go to <strong>My profile<\/strong> -&gt; <strong>API Tokens<\/strong> -&gt; <strong>Create Token<\/strong> -&gt; <strong>Create custom token<\/strong>.<\/p>\n\n\n\n<p>Give your token a name, e.g., OpenWRT DDNS and add the following permissions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Zone, Zone: Read<\/li>\n\n\n\n<li>Zone, DNS: Edit<\/li>\n<\/ul>\n\n\n\n<p>Under Zone Resources, select Include, then Specific Zone and choose your domain, e.g., example.com. Hit Continue to summary and then Create Token.<\/p>\n\n\n\n<p>Remember to take note of this token as you&#8217;ll need it later.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configuring OpenWRT<\/h2>\n\n\n\n<p>Next up is configuring OpenWRT to work with Cloudflare. We&#8217;ll mostly use the Web GUI, but we&#8217;ll also SSH into the router to make a small change to how authentication is done with Cloudflare.<\/p>\n\n\n\n<p>In the Web GUI, do the following:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>System <\/strong>-&gt; <strong>Software <\/strong>and press <strong>Update lists<\/strong>.<\/li>\n\n\n\n<li>Enter &#8220;ddns&#8221; into the filter field, and press <strong>Install <\/strong>on the <code>ddns-scripts-cloudflare<\/code> and the <code>luci-app-ddns<\/code> packages.<\/li>\n\n\n\n<li>Log out of the GUI and back in. You should now have a <strong>Services<\/strong> -&gt; <strong>Dynamic DNS<\/strong> option. Go to it.<\/li>\n\n\n\n<li>Press Edit on <code>myddns_ipv4<\/code>.<\/li>\n\n\n\n<li>Set <strong>DDNS Service provider<\/strong> to <code>cloudflare.com-v4<\/code> and click <strong>Switch service<\/strong>.<\/li>\n\n\n\n<li>Then set <strong>Lookup Hostname<\/strong> and <strong>Domain<\/strong> to the domain you want to update, e.g., <code>example.com<\/code>. Check the <strong>Enable<\/strong> and the <strong>Use HTTP Secure<\/strong> checkbox, set <strong>Path to CA-Certificate<\/strong> to <code>\/etc\/ssl\/certs<\/code>.<\/li>\n\n\n\n<li>Finally, set the <strong>Username <\/strong>to <code>Bearer<\/code> and paste the Cloudflare token you created into the <strong>Password<\/strong> field and hit <strong>Save<\/strong> and then <strong>Save &amp; Apply.<\/strong><\/li>\n<\/ol>\n\n\n\n<p>If you want to update a subdomain instead, use the following format in the Domain field: <code>sub@example.com<\/code> and <code>sub.example.com<\/code> in the Lookup field.<\/p>\n\n\n\n<p>The settings should now look something like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"670\" height=\"809\" src=\"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/09\/settings.png\" alt=\"Example of how the page might look when you have entered your settings.\" class=\"wp-image-308\" srcset=\"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/09\/settings.png 670w, https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/09\/settings-248x300.png 248w\" sizes=\"auto, (max-width: 670px) 100vw, 670px\" \/><figcaption class=\"wp-element-caption\">Example of how the page might look when you have entered your settings.<\/figcaption><\/figure>\n\n\n\n<p>Great work. We&#8217;re almost done. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Change how your current IP is determined<\/h3>\n\n\n\n<p>If you head to <strong>Network <\/strong>-&gt; <strong>Interfaces <\/strong>and you can see an IPV4-address under WAN, then OpenWRT knows what your current IP is, and you can skip this step.<\/p>\n\n\n\n<p>However, if you don&#8217;t see an IP address there, you&#8217;ll have to go to <strong>Services<\/strong> -&gt;<strong> Dynamic DNS<\/strong> -&gt; press <strong>Edit<\/strong> on myddns_ipv4 -&gt; Go to <strong>Advanced Settings<\/strong> tab and change <strong>IP address source<\/strong> to something else.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Start using it<\/h2>\n\n\n\n<p>Now, head to <strong>Services<\/strong> -&gt; <strong>Dynamic DNS<\/strong> and press <strong>Restart DDns<\/strong>.<\/p>\n\n\n\n<p>Congratulations! \ud83c\udf89 It should now be up and running. You can press <strong>Edit<\/strong> -&gt; <strong>Log file viewer<\/strong> to view the log of what it&#8217;s doing.<\/p>\n\n\n\n<p>If you have any questions, feel free to ask! \ud83d\ude42<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Questions and answers<\/h2>\n\n\n\n<p>Not all situations are the same, so here are some hopefully helpful answers where the problem is slightly different.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What if I&#8217;m using Cloudflare to proxy traffic for the domain I&#8217;m using with DDNS?<\/h3>\n\n\n\n<p>The setup above works by using DNS to check what IP the domain <code>example.com<\/code> points to. If the domain doesn&#8217;t point to your current IP, then it&#8217;s updated.<\/p>\n\n\n\n<p>But what if you&#8217;re also using Cloudflare to proxy requests? When Cloudflare is proxying the requests, <code>example.com<\/code> no longer points at your IP address directly. Instead, <code>example.com<\/code> points to Cloudflare, and Cloudflare becomes a middleman between your IP and the user.<\/p>\n\n\n\n<p>Proxying can be helpful for multiple things: It hides your IP address from the user, and Cloudflare can cache things like images for you.<\/p>\n\n\n\n<p>The issue arises when you now compare the IP of <code>example.com<\/code> with your IP. Since you&#8217;ll no longer get your own IP when checking the DNS record of <code>example.com<\/code>, OpenWRT will think that the IP for the domain is wrong and start interacting with Cloudflare to update it.<\/p>\n\n\n\n<p>The thing is that the IP is most likely correct, but it can&#8217;t know for sure without using Cloudflare&#8217;s API to check.<\/p>\n\n\n\n<p>It goes something like this:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>OpenWRT gets the IP of <code>example.com<\/code>, and Cloudflare returns its own IP&#8217;s as the real IP is hidden behind Cloudflare.<\/li>\n\n\n\n<li>OpenWRT thinks that DNS needs to be updated as you got Cloudflare&#8217;s IP and not your own. <\/li>\n\n\n\n<li>It connects to Cloudflare using the API and gains access to see the real IP the domain points to through Cloudflare.<\/li>\n\n\n\n<li>If the real IP is wrong, it&#8217;s updated to your current IP.<\/li>\n<\/ol>\n\n\n\n<p>So, as you can see, it will still work, but you&#8217;ll have unnecessary interactions with the Cloudflare API.<\/p>\n\n\n\n<p>So you might wonder: How do we avoid unnecessary interactions with Cloudflare? <\/p>\n\n\n\n<p>There is a clever solution to this problem that is possible thanks to Cloudflare supporting CNAME flattening. Let me show you how.<\/p>\n\n\n\n<p>First, create a new subdomain that is mostly random by going to <strong>DNS<\/strong> settings for your domain on Cloudflare. If you want to hide your IP, the domain should not be guessable. I&#8217;m going to use the subdomain <code>top-secret.example.com<\/code> in this example. Replace it with your own.<\/p>\n\n\n\n<p>Press the <strong>Add record<\/strong> -&gt; choose <strong>Type A<\/strong> -&gt; enter <code>top-secret.example.com<\/code> in the Name field -&gt; enter a incorrect IP like <code>123.123.123.123<\/code> in the IPv4 field. Make sure it&#8217;s <strong>not proxied<\/strong> and press <strong>Save<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"987\" height=\"138\" src=\"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/07\/image.png\" alt=\"How to add the subdomain on Cloudflare.\" class=\"wp-image-280\" srcset=\"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/07\/image.png 987w, https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/07\/image-300x42.png 300w, https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/07\/image-768x107.png 768w\" sizes=\"auto, (max-width: 987px) 100vw, 987px\" \/><\/figure>\n\n\n\n<p>Next, remove the record for the proxied domain. In my case, that&#8217;s <code>example.com<\/code>. Now, create a new DNS record, for <code>example.com<\/code>, but this time with the <strong>Type CNAME<\/strong>. Point it to <code>top-secret.example.com<\/code> and <strong>enable proxying<\/strong>, then <strong>Save<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"984\" height=\"136\" src=\"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/07\/image-1.png\" alt=\"How to add the root domain back to Cloudflare.\" class=\"wp-image-281\" srcset=\"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/07\/image-1.png 984w, https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/07\/image-1-300x41.png 300w, https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/07\/image-1-768x106.png 768w\" sizes=\"auto, (max-width: 984px) 100vw, 984px\" \/><\/figure>\n\n\n\n<p>Adding this CNAME will make Cloudflare redirect <code>example.com<\/code> to <code>top-secret.example.com<\/code> internally, without exposing the actual IP of your server.<\/p>\n\n\n\n<p>You&#8217;re now done with the Cloudflare part. The only thing you need to do now is to make two small changes to your DDNS settings in OpenWRT.<\/p>\n\n\n\n<p>Go to the Basic settings for DDNS, change the <strong>Lookup Hostname<\/strong> to <code>top-secret.example.com<\/code>, and set the <strong>Domain <\/strong>to <code>top-secret@example.com<\/code> (note the @). Click <strong>Save and Apply<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"616\" height=\"396\" src=\"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/09\/Skjermbilde-2021-09-09-071239.png\" alt=\"Changing the DDNS lookup hostname and Domain in OpenWRT.\" class=\"wp-image-309\" srcset=\"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/09\/Skjermbilde-2021-09-09-071239.png 616w, https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/09\/Skjermbilde-2021-09-09-071239-300x193.png 300w\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" \/><\/figure>\n\n\n\n<p>Now, head to <strong>Services <\/strong>-&gt; <strong>Dynamic DNS<\/strong> and press the <strong>Start\/Stop<\/strong> button <strong>twice <\/strong>to restart the service.<\/p>\n\n\n\n<p>This way, DDNS will interact with the secret subdomain(<code>top-secret.example.com<\/code>) to keep your DNS updated, while the actual domain(<code>example.com<\/code>) points to the subdomain without exposing the domain or real IP.<\/p>\n\n\n\n<p>You should now have a setup that only talks to Cloudflare when the IP has changed, even if you&#8217;re using proxying. Congratulations!\u2b50<\/p>\n\n\n\n<p>Note that it, by default, might take up to 10 minutes to update the IP. You can view the logs to see what&#8217;s going on. (<strong>Dynamic DNS<\/strong> -&gt; <strong>Log File Viewer<\/strong> tab)\ud83d\ude0a<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Do you want to update your DNS when your IP changes? Are you using a router running OpenWRT and Cloudflare? Then this short guide is perfect for you!<\/p>\n","protected":false},"author":1,"featured_media":259,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[27,28,26],"class_list":["post-252","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-cloudflare","tag-ddns","tag-openwrt"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Dynamic DNS(DDNS) with OpenWRT and Cloudflare - ALEXSKRA<\/title>\n<meta name=\"description\" content=\"Do you have a changing IP? Want to use DDNS with OpenWRT and Cloudflare? Then this guide will walk you through the steps to set it up.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dynamic DNS(DDNS) with OpenWRT and Cloudflare - ALEXSKRA\" \/>\n<meta property=\"og:description\" content=\"Do you have a changing IP? Want to use DDNS with OpenWRT and Cloudflare? Then this guide will walk you through the steps to set it up.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/\" \/>\n<meta property=\"og:site_name\" content=\"ALEXSKRA\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-20T18:29:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-21T14:58:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/02\/featured-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"888\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Alex\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/\"},\"author\":{\"name\":\"Alex\",\"@id\":\"https:\/\/alexskra.com\/blog\/#\/schema\/person\/461ae6ff3c2afab92c7629553db749b8\"},\"headline\":\"Dynamic DNS(DDNS) with OpenWRT and Cloudflare\",\"datePublished\":\"2021-02-20T18:29:45+00:00\",\"dateModified\":\"2024-01-21T14:58:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/\"},\"wordCount\":1120,\"commentCount\":17,\"publisher\":{\"@id\":\"https:\/\/alexskra.com\/blog\/#\/schema\/person\/461ae6ff3c2afab92c7629553db749b8\"},\"image\":{\"@id\":\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/02\/featured-image.png\",\"keywords\":[\"cloudflare\",\"ddns\",\"openwrt\"],\"articleSection\":[\"Linux\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/\",\"url\":\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/\",\"name\":\"Dynamic DNS(DDNS) with OpenWRT and Cloudflare - ALEXSKRA\",\"isPartOf\":{\"@id\":\"https:\/\/alexskra.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/02\/featured-image.png\",\"datePublished\":\"2021-02-20T18:29:45+00:00\",\"dateModified\":\"2024-01-21T14:58:19+00:00\",\"description\":\"Do you have a changing IP? Want to use DDNS with OpenWRT and Cloudflare? Then this guide will walk you through the steps to set it up.\",\"breadcrumb\":{\"@id\":\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#primaryimage\",\"url\":\"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/02\/featured-image.png\",\"contentUrl\":\"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/02\/featured-image.png\",\"width\":1200,\"height\":888,\"caption\":\"DDNS with Cloudflare and OpenWRT\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/alexskra.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dynamic DNS(DDNS) with OpenWRT and Cloudflare\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/alexskra.com\/blog\/#website\",\"url\":\"https:\/\/alexskra.com\/blog\/\",\"name\":\"Alexskra\",\"description\":\"Web development, tech and thinkering\",\"publisher\":{\"@id\":\"https:\/\/alexskra.com\/blog\/#\/schema\/person\/461ae6ff3c2afab92c7629553db749b8\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/alexskra.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/alexskra.com\/blog\/#\/schema\/person\/461ae6ff3c2afab92c7629553db749b8\",\"name\":\"Alex\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/alexskra.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f899714899a7def0ae7532e94314afc60539b04dc007630f2d6de6fa08382347?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f899714899a7def0ae7532e94314afc60539b04dc007630f2d6de6fa08382347?s=96&d=mm&r=g\",\"caption\":\"Alex\"},\"logo\":{\"@id\":\"https:\/\/alexskra.com\/blog\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dynamic DNS(DDNS) with OpenWRT and Cloudflare - ALEXSKRA","description":"Do you have a changing IP? Want to use DDNS with OpenWRT and Cloudflare? Then this guide will walk you through the steps to set it up.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/","og_locale":"en_US","og_type":"article","og_title":"Dynamic DNS(DDNS) with OpenWRT and Cloudflare - ALEXSKRA","og_description":"Do you have a changing IP? Want to use DDNS with OpenWRT and Cloudflare? Then this guide will walk you through the steps to set it up.","og_url":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/","og_site_name":"ALEXSKRA","article_published_time":"2021-02-20T18:29:45+00:00","article_modified_time":"2024-01-21T14:58:19+00:00","og_image":[{"width":1200,"height":888,"url":"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/02\/featured-image.png","type":"image\/png"}],"author":"Alex","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Alex","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#article","isPartOf":{"@id":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/"},"author":{"name":"Alex","@id":"https:\/\/alexskra.com\/blog\/#\/schema\/person\/461ae6ff3c2afab92c7629553db749b8"},"headline":"Dynamic DNS(DDNS) with OpenWRT and Cloudflare","datePublished":"2021-02-20T18:29:45+00:00","dateModified":"2024-01-21T14:58:19+00:00","mainEntityOfPage":{"@id":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/"},"wordCount":1120,"commentCount":17,"publisher":{"@id":"https:\/\/alexskra.com\/blog\/#\/schema\/person\/461ae6ff3c2afab92c7629553db749b8"},"image":{"@id":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#primaryimage"},"thumbnailUrl":"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/02\/featured-image.png","keywords":["cloudflare","ddns","openwrt"],"articleSection":["Linux"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/","url":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/","name":"Dynamic DNS(DDNS) with OpenWRT and Cloudflare - ALEXSKRA","isPartOf":{"@id":"https:\/\/alexskra.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#primaryimage"},"image":{"@id":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#primaryimage"},"thumbnailUrl":"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/02\/featured-image.png","datePublished":"2021-02-20T18:29:45+00:00","dateModified":"2024-01-21T14:58:19+00:00","description":"Do you have a changing IP? Want to use DDNS with OpenWRT and Cloudflare? Then this guide will walk you through the steps to set it up.","breadcrumb":{"@id":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#primaryimage","url":"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/02\/featured-image.png","contentUrl":"https:\/\/alexskra.com\/blog\/wp-content\/uploads\/2021\/02\/featured-image.png","width":1200,"height":888,"caption":"DDNS with Cloudflare and OpenWRT"},{"@type":"BreadcrumbList","@id":"https:\/\/alexskra.com\/blog\/dynamc-dnsddns-with-openwrt-and-cloudflare\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/alexskra.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Dynamic DNS(DDNS) with OpenWRT and Cloudflare"}]},{"@type":"WebSite","@id":"https:\/\/alexskra.com\/blog\/#website","url":"https:\/\/alexskra.com\/blog\/","name":"Alexskra","description":"Web development, tech and thinkering","publisher":{"@id":"https:\/\/alexskra.com\/blog\/#\/schema\/person\/461ae6ff3c2afab92c7629553db749b8"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/alexskra.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/alexskra.com\/blog\/#\/schema\/person\/461ae6ff3c2afab92c7629553db749b8","name":"Alex","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/alexskra.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f899714899a7def0ae7532e94314afc60539b04dc007630f2d6de6fa08382347?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f899714899a7def0ae7532e94314afc60539b04dc007630f2d6de6fa08382347?s=96&d=mm&r=g","caption":"Alex"},"logo":{"@id":"https:\/\/alexskra.com\/blog\/#\/schema\/person\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/alexskra.com\/blog\/wp-json\/wp\/v2\/posts\/252","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alexskra.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alexskra.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alexskra.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alexskra.com\/blog\/wp-json\/wp\/v2\/comments?post=252"}],"version-history":[{"count":15,"href":"https:\/\/alexskra.com\/blog\/wp-json\/wp\/v2\/posts\/252\/revisions"}],"predecessor-version":[{"id":353,"href":"https:\/\/alexskra.com\/blog\/wp-json\/wp\/v2\/posts\/252\/revisions\/353"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alexskra.com\/blog\/wp-json\/wp\/v2\/media\/259"}],"wp:attachment":[{"href":"https:\/\/alexskra.com\/blog\/wp-json\/wp\/v2\/media?parent=252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alexskra.com\/blog\/wp-json\/wp\/v2\/categories?post=252"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alexskra.com\/blog\/wp-json\/wp\/v2\/tags?post=252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}