OpenWRT中DDNS的配置建议(也适用Linux Router)

很多配备了 OpenWRT 路由器的朋友们都少不了要折腾一下内网穿透. 比如我就是其中一员. 内网穿透有很多的好处

家用宽带的公网 IPv4 地址都是动态分配的, 也就是说你不在家的时候,你得知道家里的路由器的 IPv4 地址, 才可以触达这些服务. 所以我们就需要DDNS服务了, 作用就是当IP地址发生变化的时候去 DNS Server上更新指定域名的IP地址, 这样在外你只需要记得这个域名就可以触达家里的服务了. OpenWRT的自有插件就带了 DDNS 服务

插件位置:

1LuCI ------>
2    Applications --->
3        <*> luci-app-ddns..........LuCI Support for Dynamic DNS Client (ddns-scripts)

插件里有一些默认的 ddns server的 script, 还有一些没有开启的, 可以从这里开启

1Network --->
2    IP Address and Names --->
3        <*> ddns-scripts
4        <*> ddns-scripts_aliyun
5        <*> ddns-scripts_dnspod
6        .....

配置好, 可以在服务 -> 动态DNS 里配置

DDNS

我为什么选择使用 duckdns.org 呢?

  • 免费
  • 不需要提升用户名密码 (token即可), 这是重点

注: 如果是桥接, 在添加的时候, 高级设置里的IP地址来源, 就可以直接选择 WAN 网卡. 如果是光猫拔号, 这里选择 URL. 当你使用了 URL, 那需要把 http://checkip.dyndns.com 域名加到“科学”的不走代理的list里. 要不然拿到的就是 远程的IP 地址

不过国内的域名, 最好还是使用国内的解析. 可是 DDNS插件里的dnspod和aliyun都是需要提供用户名和密码的, 我不习惯提供用户名和密码. 所以上网找一个脚本, 当然你也可以自己写, 不过这种脚本本身是开源的, 你看一下代码, 如果没有什么问题, 就直接使用就好了

推荐一个兄弟的脚本 dnspod_ddns.sh 感谢这位兄弟的奉献.

配置脚本之前, 先到 dnspod 控制台 里创建一下密钥. 在 我的 -> API 密钥 -> DNSPod Token. IDToken 记下来, 填入 dnspod.sh 最上面的变量里.

 1#CONF START
 2# 在 dnspod的工作台里创建的
 3API_ID=123456
 4API_Token=abcdefghijklmnopq2333333
 5# 你的域名
 6domain=example.com
 7# 二级域名
 8sub_domain=myhome
 9### 使用 url 获取 url
10CHECKURL="https://www.cloudflare.com/cdn-cgi/trace"
11#OUT="pppoe"
12#CONF END

再在 crotab里添加一个定时脚本, 每三分钟更新一次.

1*/3 * * * * /bin/bash /home/zmhu/bin/dnspod_ddns.sh

注意, 脚本的路径替换成你自己的