OpenWRT中DDNS的配置建议(也适用Linux Router)
很多配备了 OpenWRT 路由器的朋友们都少不了要折腾一下内网穿透. 比如我就是其中一员. 内网穿透有很多的好处
- 把网盘服务放家里. 现在网盘都要收费了, 云上安全与否我不敢说, 但是家里的电脑只要不送修应该是安全的
- 人在家外,想使用 “科学” , 可以先把流量转到家里. (分流,房DNS泄漏什么的做一套就好了)
- 出差在酒店里,想看个电视. 可以看家里的
IPTV
, 详细配置 《使用软路由播放上海电信IPTV,完美去掉这个很丑的盒子》 , 《IPTV单线复用——在Linux系统上配置》 - ... 如果还有场景, 请补充
家用宽带的公网 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 里配置
我为什么选择使用 duckdns.org
呢?
- 免费
- 不需要提升用户名密码 (token即可), 这是重点
注: 如果是桥接, 在添加的时候, 高级设置里的IP地址来源, 就可以直接选择 WAN 网卡. 如果是光猫拔号, 这里选择 URL. 当你使用了 URL, 那需要把
http://checkip.dyndns.com
域名加到“科学”的不走代理的list里. 要不然拿到的就是 远程的IP 地址
不过国内的域名, 最好还是使用国内的解析. 可是 DDNS插件里的dnspod和aliyun都是需要提供用户名和密码的, 我不习惯提供用户名和密码. 所以上网找一个脚本, 当然你也可以自己写, 不过这种脚本本身是开源的, 你看一下代码, 如果没有什么问题, 就直接使用就好了
推荐一个兄弟的脚本 dnspod_ddns.sh 感谢这位兄弟的奉献.
配置脚本之前, 先到 dnspod 控制台 里创建一下密钥. 在 我的 -> API 密钥 -> DNSPod Token. ID
和 Token
记下来, 填入 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
注意, 脚本的路径替换成你自己的