Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
| docs:guide-user:services:ddns:client [2020/05/17 16:14] – [freedns.afraid.org] youxiaojie | docs:guide-user:services:ddns:client [2024/12/17 20:58] – [duckdns.org] andrewz | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== DDNS Client | + | ====== DDNS client |
| + | See also: [[docs: | ||
| ===== Introduction ===== | ===== Introduction ===== | ||
| + | DDNS stands for [[wp> | ||
| + | Simply put, using this service gives a name to your IP. | ||
| + | So if you're hosting something on your line, people would not have to bother typing your IP. | ||
| + | They can just type in your domain name! It also helps when your IP changes. | ||
| + | Users won't need to discover what your new IP is, they can simply type your domain name. | ||
| - | DDNS stands for [[wp> | + | This guide will help you configure your DDNS service, so that your router auto-updates |
| + | The simplest method possible would be through [[docs: | ||
| - | This guide will help you configure your DDNS service, so that your router auto-updates your IP to your DDNS provider. The simplest method possible would be through LuCI (the default webUI for OpenWrt). | + | OpenWrt uses [[packages:pkgdata: |
| - | + | There are other scripts and programs available in the web, also some DDNS providers offer their own programs. | |
| - | OpenWrt uses [[packages:pkgdata_lede17_1:ddns-scripts|ddns-scripts]] which are [[wp> | + | All of them are currently not ported and tested on OpenWrt. |
| - | There are other scripts and programs available in the web, also some DDNS providers offer their own programs. All of them are currently not ported and tested on OpenWrt. | + | |
| + | ===== Features ===== | ||
| + | ddns-scripts support other special communication functions: | ||
| + | * Run once, useful for usage with [[docs: | ||
| + | * Set proxy with/ | ||
| + | * Set DNS server to use other than system default. | ||
| + | * Binding to specific network if '' | ||
| + | * Force the usage of either IPv4 or IPv6 communication only. Require either '' | ||
| + | * DNS requests via TCP, require either '' | ||
| ===== Requirements ===== | ===== Requirements ===== | ||
| - | + | First of all, you'll need to pick and register a DNS name with a compatible | |
| - | First of all, you'll need to pick and register a DNS name with a compatible | + | |
| For a list of DDNS providers, see: | For a list of DDNS providers, see: | ||
| - | * [[https:// | + | * [[https:// |
| * [[http:// | * [[http:// | ||
| - | * [[https://dnslookup.me/dynamic-dns/]] | + | * Pick one from the list https://github.com/openwrt/ |
| - | ^ // | + | ^ // |
| - | | [[http:// | + | | [[http:// |
| - | | [[http://core-networks.de/|core-networks.de]] < | + | | [[http://afraid.org/|afraid.org]] < |
| - | | [[http://dnsexit.com/|dnsexit.com]] | [[http://dnshome.de/|dnshome.de]] < | + | | all-inkl.com |
| - | | [[http://dnspark.com/|dnspark.com]] | + | | [[http://changeip.com/|changeip.com]] |
| - | | [[http://duiadns.net/|duiadns.net]] < | + | | [[http://cloudflare.com/|cloudflare.com]] <sup>2) 5) 6)</ |
| - | | dyns.net | + | | [[http://core-networks.de/|core-networks.de]] < |
| - | | [[http://easydns.com/|easydns.com]] | [[http://editdns.net/|editdns.net]] | [[http://goip.de/|goip.de]] < | + | | [[http://ddnss.de/|ddnss.de]] < |
| - | | [[http://dns.he.net/|he.net]] < | + | | ddo.jp |
| - | | [[http://myonlineportal.net/|myonlineportal.net]] < | + | | desec.io | dyndns.it |
| - | | [[http://no-ip.com/|no-ip.com]] <sup>1)</ | + | | [[http://dhis.org/|dhis.org]] <sup>6)</ |
| - | | [[http://ovh.com/|ovh.com]] | + | | [[http://dnsdynamic.org/ |
| - | | [[http://sitelutions.com/|sitelutions.com]] | + | | [[http://dnsexit.com/|dnsexit.com]] | dyns.net |
| - | | [[http://thatip.com/|thatip.com]] | + | | [[http://dnshome.de/|dnshome.de]] < |
| - | | [[http://zoneedit.com/|zoneedit.com]] | + | | [[http://dnsmax.com/|dnsmax.com]] |
| + | | [[http://dnsomatic.com/|dnsomatic.com]] | ||
| - | < | + | - Requires |
| - | < | + | - Needs additional package |
| - | < | + | - Directly |
| - | < | + | - Needs additional package |
| - | < | + | - Requires |
| - | < | + | - Supports |
| - | If you have picked a DDNS service provider and create your host/domain name you need to note additional your username and password.\\ | + | If you have picked a DDNS service provider and create your host/domain name you need to note additional your username and password. |
| - | Now you need to decide if you want to use secure communication with your DDNS provider or not.\\ | + | Now you need to decide if you want to use secure communication with your DDNS provider or not. |
| - | Some provider require secure | + | Some provider require secure [[wp> |
| + | Read their help pages for details and also read provider specific | ||
| + | ===== Web interface instructions ===== | ||
| + | Set up DDNS client service using web interface. | ||
| + | - Navigate to **LuCI -> System -> Software** | ||
| + | - Press the button **Update Lists** to update internal lists of available packages. | ||
| + | - Install the packages [[packages: | ||
| + | - Install the packages [[packages: | ||
| + | - Install the provider specific packages '' | ||
| + | - Refresh the page and navigate to **LuCI -> Services -> Dynamic DNS**. | ||
| + | - Use the instances '' | ||
| + | - Modify the fields you need to change and check the **Enabled** option. | ||
| + | - Click **Save & Apply** button to save changes. | ||
| - | ===== Support | + | ===== Command-line instructions |
| - | If you need support, found an issue or only want to request a new extension for the next release, please post your questions/ | + | Install |
| - | * [[https:// | + | Also provide SSL support with '' |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | A full list of supported settings (some not supported by LuCI webUI): | + | < |
| - | * UCI documentation -> [[docs: | + | |
| - | + | ||
| - | The source code is available at GitHub: | + | |
| - | | CC 15.05 | [[https:// | + | |
| - | | trunk | [[https:// | + | |
| - | + | ||
| - | ===== Installation ===== | + | |
| - | ==== using LuCI ==== | + | |
| - | * Login into your router through your browser. | + | |
| - | * From the menu select ''' | + | |
| - | * Press button [Update Lists] to update internal lists of available packages. | + | |
| - | * Filter for //ddns// and install // | + | |
| - | * You might need to install provider specific packages // | + | |
| - | * After // | + | |
| - | + | ||
| - | ==== via console ==== | + | |
| - | To install // | + | |
| - | You might need to install provider specific packages // | + | |
| - | <code|root@OpenWrt:/# | + | |
| opkg update | opkg update | ||
| opkg install ddns-scripts | opkg install ddns-scripts | ||
| opkg install ddns-scripts_xxxxx | opkg install ddns-scripts_xxxxx | ||
| + | opkg install wget ca-certificates | ||
| + | opkg install curl ca-bundle | ||
| </ | </ | ||
| - | ==== SSL support ==== | + | Proceed with setting up the service using the UCI commands. |
| - | + | ||
| - | By default // | + | |
| - | To perform DDNS updates over https (SSL), you will need to install | + | |
| - | + | ||
| - | If both ''' | + | |
| - | + | ||
| - | You can install either via LuCI (from the menu select ' | + | |
| - | or install via console using following | + | |
| - | < | + | |
| - | opkg update | + | |
| - | opkg install wget # normally you only need | + | |
| - | opkg install curl # either wget or curl | + | |
| - | opkg install ca-certificates | + | |
| - | </ | + | |
| - | + | ||
| - | :!: If you, also for other software, need all certificates in one file or you want to update CA certificates regulary, then do **NOT** install ''' | + | |
| - | ''' | + | |
| - | Install latest CA certificates (in one file) using console: | + | |
| - | < | + | |
| - | mkdir -p -m0755 / | + | |
| - | curl -o / | + | |
| - | wget --no-check-certificate -O / | + | |
| - | </ | + | |
| - | + | ||
| - | **__Since OpenWrt 18.06.0 (and earlier? | + | |
| - | Wget works with '' | + | |
| - | + | ||
| - | ==== other functions ==== | + | |
| - | FIXME //This does not belong to the Installation section. Move it to where it better fits the context.// | + | |
| - | + | ||
| - | // | + | |
| - | * Run once (useful for usage with '' | + | |
| - | * Set proxy with/ | + | |
| - | * Set DNS server to use other than system default | + | |
| - | * Binding to specific network if '' | + | |
| - | * Force the usage of either IPv4 or IPv6 communication only. Require either '' | + | |
| - | * DNS requests via TCP. Require either '' | + | |
| ===== Configuration ===== | ===== Configuration ===== | ||
| - | ==== Basics ==== | + | ddns-scripts are designed to update one host per configuration/ |
| - | ddns-scripts are designed to update one host per configuration/ | + | To update multiple hosts or providers or IPv4 and IPv6 for the same host you need to define separate configurations/ |
| - | To update multiple hosts or providers or IPv4 and IPv6 for the same host you need to define separate configurations/ | + | Some providers offer to update multiple host within one update request. |
| - | Some providers offer to update multiple host within one update request. A possible solution for this option is to use '' | + | A possible solution for this option is to use '' |
| - | Have a look at [[# | + | Have a look at [[# |
| - | The main settings you need to set are (all other normally work fine with the defaults):\\ | + | ==== Web interface instructions ==== |
| - | | Service | + | The main settings you need to set: |
| - | | | + | | |
| - | | Username | username | + | | |
| - | | Password | password | + | | Domain | Usually the same as Lookup Hostname, script will include this name into the update request sent to provider |
| - | | Interface | network | + | | Username | Username |
| + | | | ||
| + | | Interface | Network | ||
| - | :!: **__since DD (trunk)__** the following main settings | + | |
| - | | Service name | the DDNS service | + | |
| - | | Lookup Host | ONE of your defined [[wp> | + | |
| - | | Host/Domain | mostly same as ''' | + | * Don't forget |
| - | | Username | username or other parameter to use as username (send urlencoded) | + | |
| - | | Password | password or other parameter to use as password (send urlencoded) | + | |
| - | | Interface | network name (i.e. wan, wan6) used by OpenWrt hotplug event system | + | |
| - | After fresh installation a configuration/ | + | === SSL support === |
| - | You could delete them and define your own.\\ | + | Options to configure HTTPS communication are only available if '' |
| - | {{: | + | |
| - | | + | * If you have installed |
| - | ***A full list of supported settings (some not supported by LuCI webUI) | + | * If you have installed CA certificates |
| - | ***Always keep in mind the [[# | + | * If you like to use other certificate you need to set here the full path to the certificate including file name, e.g. ''/ |
| - | ***Don't forget to enable your configuration/section!** | + | * If your certificates are stored in a different path, set here the path where your certificates are located, e.g. ''/ |
| - | ***You need minimum one enabled configuration/section for //ddns// service to start!** | + | |
| - | ***You need to enable //ddns// service | + | |
| - | ***__// | + | |
| - | ==== using LuCI ==== | + | === Custom |
| - | * Login into your router through your browser. | + | |
| - | * From the menu select ''' | + | |
| - | * Navigate to the configuration/ | + | |
| - | * Modify the fields you need to change. | + | |
| - | * Don't forget to check the ''' | + | |
| - | * Click [Save & Apply] button to save changes. | + | |
| - | + | ||
| - | To add a new configuration/ | + | |
| - | * Type the new name into the text entry box at the bottom of the page next to [Add] button.\\ :!: **Do not use a '' | + | |
| - | * Click [Add] button. | + | |
| - | * Modify the fields you need to change. | + | |
| - | * Don't forget to check the ''' | + | |
| - | * Click [Save & Apply] button to save changes. | + | |
| - | + | ||
| - | ''' | + | |
| - | + | ||
| - | :!: **You need to enable ddns service!**\\ | + | |
| - | From the menu select ''' | + | |
| - | Set //ddns// service to enabled. | + | |
| - | + | ||
| - | === SSL Support === | + | |
| - | Options to configure HTTPS communication are only available if '' | + | |
| - | + | ||
| - | * Check ''' | + | |
| - | * If you have installed '' | + | |
| - | * If you have installed CA certificates in one file from [[# | + | |
| - | * If you like to use other certificate you need to set here the full path to the certificate including file name. (''/ | + | |
| - | * If your certificates are stored in a different path, set here the path where your certificates are located. (''/ | + | |
| - | * Click [Save & Apply] button to save changes. | + | |
| - | + | ||
| - | === Custom Service | + | |
| If you want to use a DDNS provider currently not listed or you want to update multiple hosts within one configuration/ | If you want to use a DDNS provider currently not listed or you want to update multiple hosts within one configuration/ | ||
| - | * Choose '' | + | * Choose '' |
| - | * Fill in the URL you like to use. :!: Please read URL syntax description [[# | + | * Fill in the URL you like to use. :!: Please read URL syntax description [[# |
| - | * Click [Save & Apply] button to save changes. | + | * Click **Save & Apply** button to save changes. |
| :!: **If you found a DDNS provider not listed or with additional IPv6 support or with changed update URL please open an issue at [[https:// | :!: **If you found a DDNS provider not listed or with additional IPv6 support or with changed update URL please open an issue at [[https:// | ||
| - | ==== via console | + | ==== Command-line instructions |
| - | The easiest way to configure // | + | The easiest way to configure // |
| + | Other editors as '' | ||
| A configuration/ | A configuration/ | ||
| - | <code|/ | + | |
| + | < | ||
| + | # / | ||
| config ' | config ' | ||
| option ' | option ' | ||
| Line 206: | Line 148: | ||
| </ | </ | ||
| - | Alternatively you can use [[docs: | + | Alternatively you can use [[docs: |
| Example input: | Example input: | ||
| - | <code|root@OpenWrt:/# | + | |
| - | uci set ddns.myddns.service_name=" | + | < |
| + | uci set ddns.myddns.service_name=" | ||
| # or / | # or / | ||
| uci set ddns.myddns.domain=" | uci set ddns.myddns.domain=" | ||
| Line 220: | Line 163: | ||
| '' | '' | ||
| - | * ''' | + | * '' |
| - | * ''' | + | * '' |
| - | * ''' | + | * '' |
| * behind the '' | * behind the '' | ||
| Example to create/add a new configuration/ | Example to create/add a new configuration/ | ||
| - | <code|root@OpenWrt:/# | + | |
| + | < | ||
| uci set ddns.newddns=" | uci set ddns.newddns=" | ||
| uci set ddns.newddns.service_name=" | uci set ddns.newddns.service_name=" | ||
| Line 236: | Line 180: | ||
| uci set ddns.newddns.enabled=" | uci set ddns.newddns.enabled=" | ||
| uci commit ddns # don't forget this, otherwise data not written to configuration file | uci commit ddns # don't forget this, otherwise data not written to configuration file | ||
| + | / | ||
| </ | </ | ||
| - | :!: **You need to enable //ddns// service by:** | + | === SSL support === |
| - | < | + | You need to add the following entries to the desired section in '' |
| - | /etc/init.d/ddns enable | + | |
| - | </ | + | |
| - | + | ||
| - | === SSL Support === | + | |
| - | You need to add the following entries to the desired section in '''/ | + | < |
| - | using ''' | + | # / |
| - | <code|/ | + | |
| config ' | config ' | ||
| ... | ... | ||
| Line 253: | Line 193: | ||
| option ' | option ' | ||
| </ | </ | ||
| + | |||
| using single file (ie. as descriped [[# | using single file (ie. as descriped [[# | ||
| - | <code|/ | + | |
| + | < | ||
| + | # / | ||
| config ' | config ' | ||
| ... | ... | ||
| Line 262: | Line 205: | ||
| </ | </ | ||
| - | Above options can also be set via LuCI webUI.\\ | + | Above options can also be set via LuCI. |
| - | The options are only shown if ''' | + | The options are only shown if '' |
| - | === Custom | + | === Custom |
| - | Following changes need to be done if you use a DDNS provider currently not listed or to update multiple hosts within one configuration/ | + | Following changes need to be done if you use a DDNS provider currently not listed or to update multiple hosts within one configuration/ |
| - | Edit '''/ | + | Edit ''/ |
| - | <code|/ | + | |
| + | < | ||
| + | # / | ||
| config ' | config ' | ||
| ... | ... | ||
| Line 274: | Line 219: | ||
| option ' | option ' | ||
| </ | </ | ||
| + | |||
| or use UCI command line interface | or use UCI command line interface | ||
| - | <code|root@OpenWrt:/# | + | |
| + | < | ||
| uci delete ddns.myddns.service_name | uci delete ddns.myddns.service_name | ||
| uci set ddns.myddns.update_url=" | uci set ddns.myddns.update_url=" | ||
| Line 282: | Line 229: | ||
| == URL Syntax == | == URL Syntax == | ||
| - | :!: It's not needful | + | * No need to set '' |
| - | :!: The entries [USERNAME] [PASSWORD] [DOMAIN] [IP] are replaced by // | + | |
| - | [USERNAME] is replaced by content of ''' | + | |
| - | [PASSWORD] is replaced by content of ''' | + | |
| - | [DOMAIN] is replaced by content of ''' | + | |
| - | [IP] is replaced by the current IP address of your OpenWrt system. | + | |
| - | :!: carefully | + | * Carefully |
| - | :!: Have a look at [[# | + | * This entry is the DNS name your OpenWrt system will be reachable from the internet. |
| + | | ||
| :!: **If you found a DDNS provider not listed or with additional IPv6 support or with changed update URL please open an issue at [[https:// | :!: **If you found a DDNS provider not listed or with additional IPv6 support or with changed update URL please open an issue at [[https:// | ||
| - | ==== Detecting | + | ==== Detecting |
| + | Here a list (without preferences) of URLs to detect your current public ip used by your system: | ||
| + | ^ Dual-Stack ^ IPv4-only ^ IPv6-only ^ Server Location ^ | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | http:// | ||
| + | | - | http:// | ||
| + | | - | http:// | ||
| + | | - | http:// | ||
| + | | - | http:// | ||
| + | | - | http:// | ||
| + | | - | http:// | ||
| + | | - | http:// | ||
| + | | - | http:// | ||
| + | | - | http:// | ||
| + | | - | http:// | ||
| + | | - | http:// | ||
| + | | - | http:// | ||
| + | | - | http:// | ||
| + | | - | http:// | ||
| - | Here a list (without preferences) of url's to detect your current public ip used by your system: | + | |
| - | ^ Dual-Stack | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | http:// | + | |
| - | | — | http:// | + | |
| - | | — | http:// | + | |
| - | | — | http:// | + | |
| - | | — | http:// | + | |
| - | | — | http:// | + | |
| - | | — | http:// | + | |
| - | | — | http:// | + | |
| - | | — | http:// | + | |
| - | | — | http:// | + | |
| - | | — | http:// | + | |
| - | | — | http://myip.dtdns.com | + | |
| - | | — | http:// | + | |
| - | | — | http:// | + | |
| - | | — | http:// | + | |
| - | < | + | ==== WAN IP via own PHP script ==== |
| - | < | + | If you don't like to use one of the above you can write your own. Here is a sample script in PHP which can easily be deployed on any web hosting: |
| - | ==== Detecting WAN public | + | < |
| - | If your wan interface has the IP you want to propagate, this approach has the advantage of not depending on external services or even a working DNS resolution. | + | < |
| + | < | ||
| + | <?php | ||
| + | echo $_SERVER[' | ||
| + | ?> | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== Detecting WAN IP with script ==== | ||
| + | If your WAN interface has the IP you want to propagate, this approach has the advantage of not depending on external services or even a working DNS resolution. | ||
| Create the script: | Create the script: | ||
| - | < | + | |
| - | echo "\ | + | < |
| + | cat << | ||
| #!/bin/sh | #!/bin/sh | ||
| . / | . / | ||
| network_flush_cache | network_flush_cache | ||
| - | network_find_wan NET_IF | + | for IPV in 4 6 |
| - | network_find_wan6 NET_IF6 | + | do |
| - | network_get_ipaddr NET_ADDR \"\${NET_IF}\" | + | eval network_find_wan${IPV%4} |
| - | network_get_ipaddr6 NET_ADDR6 \"\${NET_IF6}\" | + | eval network_get_ipaddr${IPV%4} NET_ADDR |
| - | echo \"\${NET_ADDR}\" | + | echo "${NET_ADDR}" |
| - | echo \"\${NET_ADDR6}\" | + | done |
| - | " >| / | + | EOF |
| - | + | chmod +x / | |
| - | chmod ug+x / | + | |
| </ | </ | ||
| + | |||
| Use it in the DDNS configuration by issuing these UCI commands: | Use it in the DDNS configuration by issuing these UCI commands: | ||
| - | < | + | |
| + | < | ||
| uci set ddns.NAMEOFYOURSERVICE.ip_source=" | uci set ddns.NAMEOFYOURSERVICE.ip_source=" | ||
| uci set ddns.NAMEOFYOURSERVICE.ip_script="/ | uci set ddns.NAMEOFYOURSERVICE.ip_script="/ | ||
| </ | </ | ||
| + | |||
| Or by editing these lines in / | Or by editing these lines in / | ||
| - | < | + | |
| + | < | ||
| config service ' | config service ' | ||
| option ip_source ' | option ip_source ' | ||
| option ip_script '/ | option ip_script '/ | ||
| </ | </ | ||
| - | ===== Operation ===== | ||
| - | | {{:meta:icons: | + | ===== Operation ===== |
| + | :!: Enable minimum one configuration/ | ||
| ==== Basics ==== | ==== Basics ==== | ||
| - | Normally no user actions are required because // | + | Normally no user actions are required because // |
| - | // | + | This will happen automatically at system startup when the named interface comes up. |
| + | Event '' | ||
| + | // | ||
| + | If different an update request is sent to DDNS provider. | ||
| - | * Whenever you [Save & Apply] an '' | + | * Whenever you **Save & Apply** an '' |
| - | * If you modify | + | * If you modify ''/ |
| - | To check if // | + | To check if // |
| - | You should find something like ''' | + | |
| - | for every configuration/ | + | |
| - | Inside LuCI also exists a section | + | <code bash> |
| + | pgrep -f -a dynamic | ||
| + | </ | ||
| + | |||
| + | You should find something like '' | ||
| + | |||
| + | Inside LuCI also exists a section | ||
| ==== Run manually ==== | ==== Run manually ==== | ||
| - | === using LuCI === | + | === Web interface instructions |
| - | To **check** running // | + | To **check** running // |
| - | Look for something like '''/ | + | Look for something like ''/ |
| - | To **stop** a desired process press the [Terminate] or [Kill] button.\\ | + | |
| + | To **stop** a desired process press the **Terminate** or **Kill** button. | ||
| The process should remove from the list. | The process should remove from the list. | ||
| - | You can enable/ | + | You can enable/ |
| - | Look for service | + | Look for service '' |
| - | You can additionally enable/ | + | You can additionally enable/ |
| - | + | === Command-line instructions | |
| - | === via console | + | From console command line you could create an '' |
| - | From console command line you could create an ''' | + | This will start all enabled ddns configurations/ |
| - | :!: Keep in mind that also other service processes (i.e. firewall) might be (re-)started via ''' | + | :!: Keep in mind that also other service processes (i.e. firewall) might be (re-)started via '' |
| For INTERFACE, type the specified // | For INTERFACE, type the specified // | ||
| - | <code|root@OpenWrt:/# | + | |
| + | < | ||
| ACTION=ifup INTERFACE=wan / | ACTION=ifup INTERFACE=wan / | ||
| </ | </ | ||
| - | To **start** only one // | + | |
| - | <code|root@OpenWrt:/# | + | To **start** only one // |
| - | / | + | |
| + | < | ||
| + | / | ||
| </ | </ | ||
| - | To **start** all //ddns-scripts// configurations configured for one interface (the interface name from / | + | Note that verbosity can also be increased, which is very useful for debugging when creating your own ddns client |
| - | <code|root@OpenWrt:/# | + | < |
| - | sh | + | / |
| - | . / | + | |
| - | start_daemon_for_all_ddns_sections " | + | |
| - | exit | + | |
| </ | </ | ||
| - | To **stop** one configuration/ | + | see ''/ |
| - | <code|root@OpenWrt:/# | + | |
| - | ps -w | grep dynami[c] | + | To **stop** one configuration/ |
| + | < | ||
| + | pgrep -f -a dynamic | ||
| + | kill <pid of matching dynamic_dns_updater.sh process> | ||
| </ | </ | ||
| - | you will get something like: | + | |
| - | < | + | |
| - | 2493 root 1440 R {dynamic_dns_upd} | + | To **start** all //ddns-scripts// configurations configured for a given interface e.g. '' |
| - | 2494 root 1440 R {dynamic_dns_upd} / | + | <code bash> |
| + | / | ||
| </ | </ | ||
| - | now you need to kill every running process: | + | |
| - | < | + | **All** configured ddns services in ''/ |
| - | kill 2493 # to kill one process | + | < |
| - | kill 2493 2494 # to kill multiple processes | + | service |
| - | </ | + | |
| - | To **stop** all running processes at once ('' | + | |
| - | < | + | |
| - | killall dynamic_dns_updater.sh # | + | |
| - | ps | grep dynami[c] | awk ' | + | |
| - | </code> | + | |
| - | **__Since BB 14.07__** you could '' | + | |
| - | <code|root@OpenWrt:/# | + | |
| - | / | + | |
| - | / | + | |
| - | / | + | |
| - | / | + | |
| - | / | + | |
| </ | </ | ||
| + | === Using scheduler === | ||
| + | Each configuration/ | ||
| - | === using scheduler === | + | To configure your configuration/ |
| - | Each configuration/ | + | Setting |
| + | Inside LuCI set **Force Interval** in **Timer Settings** tab of your desired configuration or edit '' | ||
| - | To configure your configuration/ | + | < |
| - | Inside LuCI set ''' | + | # / |
| - | or edit '''/ | + | |
| - | <code|/ | + | |
| config ' | config ' | ||
| ... | ... | ||
| Line 450: | Line 414: | ||
| </ | </ | ||
| - | If you set //ddns// service to '' | + | If you set //ddns// service to '' |
| - | The configuration/ | + | The configuration/ |
| - | To guarantee that your configurations only run once not looking for an interface event you need to disable //ddns// service.\\ | + | To guarantee that your configurations only run once not looking for an interface event you need to disable //ddns// service. |
| - | To start your configuration via [[docs: | + | To start your configuration via [[docs: |
| - | <code|root@OpenWrt:/# | + | |
| + | < | ||
| / | / | ||
| </ | </ | ||
| Line 461: | Line 426: | ||
| === Syslog === | === Syslog === | ||
| - | The ''' | + | The '' |
| - | ^ Value ^ Reporting | + | ^ Value ^ Reporting ^ |
| - | | 0 | disable | + | | 0 | disable | |
| - | | 1 | info, notice, warning, errors | + | | 1 | info, notice, warning, errors | |
| - | | 2 | notice, warning, errors | + | | 2 | notice, warning, errors | |
| - | | 3 | warning, errors | + | | 3 | warning, errors | |
| - | | 4 | errors | + | | 4 | errors | |
| - | | :!: Critical errors forcing // | + | | :!: Critical errors forcing // |
| === Logfile === | === Logfile === | ||
| - | // | + | // |
| Logfiles are automatically truncated to a settable number of lines (default 250 lines). | Logfiles are automatically truncated to a settable number of lines (default 250 lines). | ||
| - | Inside LuCI you could enable logfile in [Advanced Settings]-tab of desired configuration/ | + | Inside LuCI you could enable logfile in **Advanced Settings** tab of desired configuration/ |
| - | From console you need to edit '''/ | + | From console you need to edit the config file: |
| - | <code|/ | + | |
| + | < | ||
| + | # / | ||
| config ' | config ' | ||
| ... | ... | ||
| Line 484: | Line 451: | ||
| In case your device has enough built in memory or if you are using Extroot, you might want to store the ddns logs persistently. | In case your device has enough built in memory or if you are using Extroot, you might want to store the ddns logs persistently. | ||
| - | To achieve this, you need to change the log file location by adding the following line in the '' | + | To achieve this, you need to change the log file location by adding the following line in the '' |
| - | <code|/ | + | |
| + | < | ||
| + | # / | ||
| config ' | config ' | ||
| ... | ... | ||
| Line 491: | Line 460: | ||
| </ | </ | ||
| - | This option must be defined in the global section of the '''/ | + | This option must be defined in the global section of the ''/ |
| + | If the option is defined at config service level, it will be ignored by the ''/ | ||
| - | To view logfile content from LuCI select the [Log File Viewer]-tab of desired configuration/ | + | To view logfile content from LuCI select the **Log File Viewer** tab of desired configuration/ |
| - | From console you should change to the ddns log directory | + | From console you should change to the ddns log directory, default ''/ |
| You will find a logfile for every configuration/ | You will find a logfile for every configuration/ | ||
| - | <code|root@OpenWrt:/# | + | |
| - | cd / | + | < |
| - | ls -la | + | cat / |
| - | cat myddns_ipv4.log | + | cat / |
| - | cat myddns_ipv6.log | + | |
| </ | </ | ||
| ==== Debugging ==== | ==== Debugging ==== | ||
| + | To debug what's going on, you can run // | ||
| + | Following verbose level are defined: | ||
| - | To debug what's going on, you can run // | ||
| ^ Level ^ Description ^ | ^ Level ^ Description ^ | ||
| - | | 0 | Non verbose | + | | 0 | Non verbose, no output | |
| - | | 1 | Output to console (default) | + | | 1 | Output to console (default) | |
| - | | 2 | Output to console and logfile.\\ Run once WITHOUT retry on error. | + | | 2 | Output to console and logfile, run once WITHOUT retry on error | |
| - | | 3 | Output to console and logfile.\\ Run once WITHOUT retry on error.\\ Sending | + | | 3 | Output to console and logfile, run once WITHOUT retry on error, sending |
| - | Before starting debugging stop all running // | + | Before starting debugging stop all running // |
| - | <code|root@OpenWrt:/# | + | |
| + | < | ||
| / | / | ||
| / | / | ||
| </ | </ | ||
| + | |||
| validate that no // | validate that no // | ||
| - | < | ||
| - | Now you can start one configuration/ | + | <code bash> |
| - | Replace | + | pgrep -f -a dynamic |
| - | <code|root@OpenWrt:/# | + | </ |
| + | |||
| + | Now you can start one configuration/ | ||
| + | To stop/break running script press [CTRL]+C. | ||
| + | Replace '' | ||
| + | |||
| + | < | ||
| / | / | ||
| </ | </ | ||
| - | You will get full description of errors and the output of programs like wget, nslookup etc. used by // | + | You will get full description of errors and the output of programs like wget, nslookup etc. used by // |
| ==== Common errors ==== | ==== Common errors ==== | ||
| - | |||
| === Network and name resolution problems === | === Network and name resolution problems === | ||
| + | Check your communication settings with the following commands: | ||
| - | Check your communication settings with the following commands: | + | < |
| - | <code|root@OpenWrt:/# | + | |
| nslookup google-public-dns-a.google.com | nslookup google-public-dns-a.google.com | ||
| Line 546: | Line 522: | ||
| === HTTPS/SSL problems === | === HTTPS/SSL problems === | ||
| + | Check if your DDNS provider ONLY supports secure requests and enable HTTPS '' | ||
| + | Packages '' | ||
| + | '' | ||
| + | Check certificate installation and run '' | ||
| - | Check if your DDNS provider ONLY supports secure requests and enable HTTPS ('' | + | < |
| - | Packages ''' | + | ls -a -R -l /etc/ssl |
| - | ''' | + | |
| - | Check certificate installation and run ''' | + | |
| - | <code|root@OpenWrt:/# | + | |
| - | ls -la /etc/ssl | + | |
| - | ls -la /etc/ssl/certs | + | |
| wget -d -O / | wget -d -O / | ||
| Line 563: | Line 538: | ||
| curl -v -o / | curl -v -o / | ||
| </ | </ | ||
| - | |||
| ===== Provider specifics ===== | ===== Provider specifics ===== | ||
| - | |||
| ==== Overview ==== | ==== Overview ==== | ||
| - | Remember to read how to [[# | + | Remember to read how to [[# |
| - | At provider specific settings, only parameters that needs to be changed are described.\\ | + | At provider specific settings, only parameters that needs to be changed are described. |
| The relevant parameters to use together with a custom settings are: | The relevant parameters to use together with a custom settings are: | ||
| - | ^ UCI option | ||
| - | | service_name | ||
| - | | update_url | ||
| - | | domain | ||
| - | | username | ||
| - | | password | ||
| - | If you find a FIXME at a provider description below, please support the [[packages: | + | ^ UCI option ^ LuCI description ^ Explanatory note ^ |
| - | Please post a [[# | + | | service_name | DDNS Service provider | Inside LuCI set to **--custom--** or delete from ''/ |
| - | **Thanks!** | + | | update_url | Custom update-URL | Copy from description below, if necessary | |
| + | | domain | Hostname/ | ||
| + | | username | Username | Normally your username but possibly used with different settings | | ||
| + | | password | Password | Normally your password but possibly used with different settings | | ||
| + | |||
| + | If you find a FIXME at a provider description below, please support the [[packages: | ||
| + | Please post a [[# | ||
| + | |||
| + | If you find problem | ||
| + | |||
| + | <code diff> | ||
| + | # / | ||
| + | - http:// | ||
| + | + --user=[USERNAME] --password: | ||
| + | |||
| + | # / | ||
| + | - update_output=$( $retrieve_prog " | ||
| + | + update_output=$( $retrieve_prog $final_url ) | ||
| + | </ | ||
| + | |||
| + | ==== cloudflare.com ==== | ||
| + | Last updated: 2022-09-11 | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | As of OpenWrt version 22.03.0, // | ||
| + | API Tokens provide a new way to authenticate with the Cloudflare API. | ||
| + | |||
| + | [[https:// | ||
| + | You can also " | ||
| + | These allow for scoped and permissioned access to resources and use the RFC compliant [[rfc> | ||
| + | For more information on Token vs Key see the [[https:// | ||
| + | |||
| + | < | ||
| + | service_name cloudflare.com-v4 | ||
| + | domain [Your domain, here: example.com] | ||
| + | username Bearer | ||
| + | password [Your API token] | ||
| + | </ | ||
| + | |||
| + | To use subdomains (CNAME or A records), use the format below when filling your credentials: | ||
| + | |||
| + | < | ||
| + | domain {subdomain}@[zone] | ||
| + | </ | ||
| + | |||
| + | Examples: | ||
| + | * If the hostname is " | ||
| + | * If the hostname is " | ||
| + | * If using Cloudflare' | ||
| - | If you find problem **" | ||
| - | " | ||
| - | to | ||
| - | " | ||
| - | AND change one line in ''/ | ||
| - | update_output=$( $retrieve_prog " | ||
| - | to | ||
| - | update_output=$( $retrieve_prog $final_url ) | ||
| ==== dnsomatic.com ==== | ==== dnsomatic.com ==== | ||
| - | Last updated: | + | Last updated: |
| - | DNS-O-Matic provides you a free and easy way to announce your dynamic IP changes to multiple services with a single update. Using DNS-O-Matic allows you to pick and choose what Dynamic DNS services you want to notify, all from one easy to use interface. [[https:// | + | |
| + | DNS-O-Matic provides you a free, easy and secure | ||
| + | Using DNS-O-Matic allows you to pick and choose what Dynamic DNS services you want to notify, all from one easy to use interface. | ||
| + | [[https:// | ||
| + | |||
| + | DNS-O-Matic authentication is integrated with OpenDNS, so your DNS-O-Matic credentials are the same as your OpenDNS ones. You need to change your OpenDNS password to one that doesn' | ||
| - | You need to change | + | If you would like to make sure your SSL connection is verified, then [[:docs: |
| + | and set the path to **/etc/ssl/certs** | ||
| To update all services registered with DNS-O-Matic in one configuration/ | To update all services registered with DNS-O-Matic in one configuration/ | ||
| - | < | + | < |
| - | #/ | + | # / |
| config service ' | config service ' | ||
| - | option lookup_host | + | option lookup_host |
| option interface | option interface | ||
| option ip_source | option ip_source | ||
| - | option ip_url | + | option ip_url |
| option use_https | option use_https | ||
| + | option cacert | ||
| option service_name | option service_name | ||
| option domain | option domain | ||
| Line 614: | Line 630: | ||
| Alternatively, | Alternatively, | ||
| - | < | + | |
| + | < | ||
| uci add ddns dnsomatic | uci add ddns dnsomatic | ||
| uci set ddns.dnsomatic.lookup_host=' | uci set ddns.dnsomatic.lookup_host=' | ||
| uci set ddns.dnsomatic.interface=' | uci set ddns.dnsomatic.interface=' | ||
| uci set ddns.dnsomatic.ip_source=' | uci set ddns.dnsomatic.ip_source=' | ||
| - | uci set ddns.dnsomatic.ip_url=' | + | uci set ddns.dnsomatic.ip_url=' |
| uci set ddns.dnsomatic.use_https=' | uci set ddns.dnsomatic.use_https=' | ||
| uci set ddns.dnsomatic.service_name=' | uci set ddns.dnsomatic.service_name=' | ||
| Line 629: | Line 646: | ||
| / | / | ||
| </ | </ | ||
| + | |||
| ==== duckdns.org ==== | ==== duckdns.org ==== | ||
| - | Last updated: | + | Last updated: |
| - | [[http:// | + | |
| - | FIXME There is another | + | [[https://www.duckdns.org/ | Homepage]] |
| - | Inside LuCI web UI select **--custom--** and fill in the other options accordingly.\\ | ||
| - | :!: Be sure you install ssl support.\\ | ||
| - | Additional use update_url and settings from below:\\ | ||
| < | < | ||
| - | update_url http:// | + | service_name duckdns.org |
| - | domain [Your | + | domain [Your |
| - | username [Your Host without " | + | username [dummy, |
| - | password [Your token] | + | password [Your |
| - | use_https 1 | + | |
| - | cacert [path to certificate file or directory] | + | |
| </ | </ | ||
| + | |||
| + | If //custom// configuration is required, see [[docs: | ||
| + | |||
| + | Note: this service cannot detect your IPv6 address, it should be included in the DDNS update request. You cannot send updates over IPv6. | ||
| + | |||
| + | |||
| + | ==== dynu.com ==== | ||
| + | Last updated: 2024-10-05 | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | It works out of the box in the standard most common setup with a single user-defined // | ||
| + | |||
| + | In order to update v4 or v6 IP address for a // | ||
| + | |||
| + | < | ||
| + | service_name delete / --custom-- | ||
| + | update_url api.dynu.com/ | ||
| + | domain [your 3rd level domain, like " | ||
| + | param_enc [your alias, like " | ||
| + | username [dummy, | ||
| + | password [your update token] | ||
| + | </ | ||
| + | This will update IPv6 address for '' | ||
| + | |||
| + | The //update token// used as a password in both standard and custom configurations is an MD5/SHA-256 //hash// of "IP Update Password" | ||
| + | |||
| + | The //hash// can be generated [[https:// | ||
| + | |||
| ==== freedns.afraid.org ==== | ==== freedns.afraid.org ==== | ||
| - | Last updated: 2015-07-15\\ | + | Last updated: 2015-07-15 |
| - | [[http:// | + | |
| + | [[http:// | ||
| Option 1: FIXME | Option 1: FIXME | ||
| + | |||
| < | < | ||
| service_name afraid.org-v2-token | service_name afraid.org-v2-token | ||
| Line 658: | Line 701: | ||
| password [Your authorisation token, NOT your account password] | password [Your authorisation token, NOT your account password] | ||
| </ | </ | ||
| - | To find your authorisation token, go to http:// | ||
| - | On the location bar of your browser, copy the authorisation token,\\ | ||
| - | which is the part after %%http:// | ||
| - | and paste it in the password field. | ||
| - | the uri to update ip result in error 404, need to change source code. | ||
| - | Option 2: FIXME ([[https:// | + | To find your authorisation token, go to http:// |
| + | On the location bar of your browser, copy the authorisation token, which is the part after %%http:// | ||
| + | The URL to update IP result in error 404, need to change source code. | ||
| + | |||
| + | Option 2: FIXME ([[https:// | ||
| < | < | ||
| service_name delete / --custom-- | service_name delete / --custom-- | ||
| Line 674: | Line 717: | ||
| Option 3 | Option 3 | ||
| + | |||
| < | < | ||
| service_name afraid.org-v2-basic or afraid.org-basicauth | service_name afraid.org-v2-basic or afraid.org-basicauth | ||
| Line 680: | Line 724: | ||
| password [Your account password] | password [Your account password] | ||
| </ | </ | ||
| - | |||
| Option 4 Prefer | Option 4 Prefer | ||
| + | |||
| < | < | ||
| service_name afraid.org-keyauth | service_name afraid.org-keyauth | ||
| Line 689: | Line 733: | ||
| password [Your authorisation token, NOT your account password] | password [Your authorisation token, NOT your account password] | ||
| </ | </ | ||
| - | |||
| - | |||
| - | |||
| ==== domains.google.com ==== | ==== domains.google.com ==== | ||
| - | Last updated: 2016-04-20\\ | + | Last updated: 2016-04-20 |
| - | Google Domains allows for dynamic names to be set up in the section called Synthetic Records. To access it, log in to https:// | + | Google Domains allows for dynamic names to be set up in the section called Synthetic Records. |
| + | To access it, log in to https:// | ||
| + | It will issue a specific username and password for this hostname. | ||
| + | Google requires HTTPS for updates, so be sure to also install package wget or curl in order to allow this. | ||
| Use the following settings: | Use the following settings: | ||
| + | |||
| < | < | ||
| service_name --custom-- | service_name --custom-- | ||
| Line 709: | Line 754: | ||
| ==== gratisdns.dk ==== | ==== gratisdns.dk ==== | ||
| - | Last updated: 2015-07-20\\ | + | Last updated: 2015-07-20 |
| [[http:// | [[http:// | ||
| Taken from [[https:// | Taken from [[https:// | ||
| - | GratisDNS.dk is only supported by // | + | GratisDNS.dk is only supported by // |
| - | GratisDNS.dk require | + | |
| < | < | ||
| service_name delete / --custom-- | service_name delete / --custom-- | ||
| Line 728: | Line 774: | ||
| ==== he.net ==== | ==== he.net ==== | ||
| - | Last updated: | + | Last updated: |
| [[https:// | [[https:// | ||
| + | [[https:// | ||
| - | FIXME There is another | + | Background (who they are): Hurricane Electric (referred to as HE.net below) |
| + | |||
| + | HE.net is a great option if you //already// have a domain (or sub-domain) you can point at their 5 nameservers (ns[1-5]/ | ||
| + | |||
| + | You can then opt for one of an A (for IPv4) record or an AAAA (for IPv6) record //under// that sub-domain, to be updated dynamically by the ddns-service. | ||
| + | |||
| + | If you don't have an HE.net account, you will need to [[https:// | ||
| + | |||
| + | If you don't already have a domain (or subdomain) pointing to HE.net: | ||
| + | * Go to the [[https:// | ||
| + | * Click on **Add a new domain** (on the left side-bar) | ||
| + | * Enter your domain or subdomain (that should //already// have pointed to their 5 nameservers), | ||
| + | * Next to the //new domain//, click the 2nd icon (the one that looks like classic-windows app + pencil icon) to **Edit** the records for that dns-zone. | ||
| + | * Click the **New A** button (for IPv4) or **New AAAA** button (for IPv6). | ||
| + | * For **Name**, enter only the part part before the first period in the FQDN (the part that goes //before// the domain or subdomain you pointed at HE's nameserver). | ||
| + | * **//MAKE SURE//** you click **Enable entry for dynamic dns** checkbox **ON** | ||
| + | * Click **Submit** | ||
| + | * Click the //icon that looks like a small two-arrows// | ||
| + | * In the popup **Dynamic DNS Record**, here you can either generate a key (up to 16 characters) or specify your own. **You will need this for the password in the example config below** | ||
| + | |||
| + | (src - above steps tested and based on [[https:// | ||
| + | |||
| + | *Note:* In order for a zone to be accepted for addition to HE.net' | ||
| + | |||
| + | Lastly, if you want to (it's optional) protect the update-requests that the ddns-service does, with TLS, you can see the [[client# | ||
| + | The following settings have been tested/ | ||
| + | |||
| + | In the below example config, the (sub-)domain pointing to HE.net nameservers is " | ||
| - | Use the following settings: | ||
| < | < | ||
| - | service_name he.net | + | # / |
| - | domain [Your FQDN] | + | config service ' |
| - | username [Your FQDN] | + | option |
| - | password [Your password] | + | |
| + | option | ||
| + | | ||
| + | option use_ipv6 ' | ||
| + | option | ||
| + | | ||
| + | option ip_source ' | ||
| + | option ip_network ' | ||
| + | option interface ' | ||
| + | option use_syslog ' | ||
| + | option check_unit ' | ||
| + | option force_unit ' | ||
| + | option retry_unit ' | ||
| </ | </ | ||
| + | |||
| + | More info about how this works underneath the covers: https:// | ||
| + | |||
| + | Note: There is another (older) doc here: [[docs: | ||
| + | |||
| ==== mythic-beasts.com ==== | ==== mythic-beasts.com ==== | ||
| - | Last updated: 2015-07-20\\ | + | Last updated: 2015-07-20 |
| [[http:// | [[http:// | ||
| - | FIXME\\ | + | FIXME |
| - | Looking on description at " | + | Looking on description at " |
| - | I have gone in contact with support of mythic-beasts.com. I will update as soon a solution is available.\\ | + | I have gone in contact with support of mythic-beasts.com. |
| + | I will update as soon a solution is available. | ||
| ==== namecheap.com ==== | ==== namecheap.com ==== | ||
| - | Last updated: 2015-07-21\\ | + | Last updated: 2015-07-21 |
| [[https:// | [[https:// | ||
| - | Note that with the namecheap protocol, the username option is translated to the host argument in the update request.\\ | + | Note that with the namecheap protocol, the username option is translated to the host argument in the update request. |
| - | Therefore, it should be the host-part on the DNS record, not the username that you use to log into the namecheap.com site.\\ | + | Therefore, it should be the host-part on the DNS record, not the username that you use to log into the namecheap.com site. |
| - | To update multiple hosts you might need to define separate configuration/ | + | To update multiple hosts you might need to define separate configuration/ |
| - | To get your password, log into the namecheap.com site, enter the management console for the domain, and click the Dynamic DNS menu option.\\ | + | To get your password, log into the namecheap.com site, enter the management console for the domain, and click the Dynamic DNS menu option. |
| - | :!: Currently // | + | :!: Currently // |
| + | Otherwise you will send updates to namecheap.com every " | ||
| + | [[https:// | ||
| + | This may only be an issue for ddns-scripts 2.4. | ||
| - | Let assume you define two FQDN at your domain " | + | Let assume you define two FQDN at your domain " |
| To update only your domain record " | To update only your domain record " | ||
| + | |||
| < | < | ||
| service_name namecheap.com | service_name namecheap.com | ||
| Line 768: | Line 866: | ||
| password [Your password] | password [Your password] | ||
| </ | </ | ||
| + | |||
| To update for example only your " | To update for example only your " | ||
| + | |||
| < | < | ||
| service_name namecheap.com | service_name namecheap.com | ||
| Line 775: | Line 875: | ||
| password [Your password] | password [Your password] | ||
| </ | </ | ||
| + | |||
| To update all to the same IP address: | To update all to the same IP address: | ||
| NOTE: For namecheap updating multiple subdomains is NOT working nowadays, you have to make one request per subdomain, so configure one section per subdomain. https:// | NOTE: For namecheap updating multiple subdomains is NOT working nowadays, you have to make one request per subdomain, so configure one section per subdomain. https:// | ||
| + | |||
| < | < | ||
| service_name namecheap.com | service_name namecheap.com | ||
| Line 787: | Line 889: | ||
| ==== noip.com ==== | ==== noip.com ==== | ||
| - | Last updated: | + | Last updated: |
| - | [[http:// | + | |
| - | :!: **Starting CC 15.05** do not forget to additional install | + | [[http:// |
| - | The default is to use your ''' | + | :!: Install the [[packages: |
| + | |||
| + | The default is to use '' | ||
| If you want to update multiple hosts inside one configuration/ | If you want to update multiple hosts inside one configuration/ | ||
| + | |||
| < | < | ||
| service_name delete / --custom-- | service_name delete / --custom-- | ||
| Line 809: | Line 913: | ||
| ==== spdyn.de (old spdns.de) ==== | ==== spdyn.de (old spdns.de) ==== | ||
| - | Last updated: 2016-08-02\\ | + | Last updated: 2016-08-02 |
| [[http:// | [[http:// | ||
| - | The web-pages of // | + | The web-pages of // |
| - | Currently updates send to // | + | Currently updates send to // |
| Created accounts and domains at // | Created accounts and domains at // | ||
| - | The default is to use your ''' | + | The default is to use your '' |
| - | If you want to use Update-Token, | + | If you want to use Update-Token, |
| Use this settings: | Use this settings: | ||
| + | |||
| < | < | ||
| service_name spdyn.de | service_name spdyn.de | ||
| Line 825: | Line 931: | ||
| password [The token generated for this hostname] | password [The token generated for this hostname] | ||
| </ | </ | ||
| + | |||
| If you want to update multiple hosts inside one configuration/ | If you want to update multiple hosts inside one configuration/ | ||
| + | |||
| < | < | ||
| service_name delete / --custom-- | service_name delete / --custom-- | ||
| Line 839: | Line 947: | ||
| </ | </ | ||
| - | ====tunnelbroker.net==== | + | ==== tunnelbroker.net ==== |
| Hurricane Electric provides a free IPv6inIPv4 tunnel through Tunnel Broker that demands a permanent IP or a real-time updated one. | Hurricane Electric provides a free IPv6inIPv4 tunnel through Tunnel Broker that demands a permanent IP or a real-time updated one. | ||
| - | From its [[https:// | + | From its [[https:// |
| + | To use this service you need to have an IPv6 capable host (IPv6 support is available for most platforms) or router which also has IPv4 (existing Internet) connectivity." | ||
| Apply the following patch to include that service on OpenWRT DDNS | Apply the following patch to include that service on OpenWRT DDNS | ||
| - | < | + | |
| - | [ -z "$(cat / | + | < |
| + | grep -q -e "ipv4\.tunnelbroker\.net" | ||
| + | && echo -e " | ||
| </ | </ | ||
| + | |||
| Now you can configure your tunnelbroker ddns: | Now you can configure your tunnelbroker ddns: | ||
| - | < | + | |
| - | #/ | + | < |
| + | # / | ||
| config service ' | config service ' | ||
| option service_name | option service_name | ||
| Line 864: | Line 976: | ||
| Instead of using a web service, that has the risk of being eventually offline, to detect the public IP, you can detect the [[client# | Instead of using a web service, that has the risk of being eventually offline, to detect the public IP, you can detect the [[client# | ||
| + | |||
| + | ===== Additional forum threads for configuration ===== | ||
| + | |||
| + | https:// | ||
| + | |||