打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
『脚本』使用修改版CloudFlare脚本实现DDNS,含Lightsail被墙自动换ip

为什么需要脚本

动态DNS(英语:Dynamic DNS,简称DDNS)是域名系统(DNS)中的一种自动更新名称服务器(Name server)内容的技术。根据互联网的域名订立规则,域名必须跟从固定的IP地址。但动态DNS系统为动态网域提供一个固定的名称服务器(Name server),透过即时更新,使外界用户能够连上动态用户的网址。 (转自:wikipedia

在域名托管商(如:CloudFlare)处,每一个A记录均唯一对应一个ipv4地址,但是一个ipv4地址可以对应多个域名。在中国大陆,实际大陆拥有的ipv4地址是很少的,而且绝大部分握在中国电信手中,中国联通占少半块,中国移动几乎没多少份额。这一点从个人家庭用户向运营商索要公网ip的难度也可以看得出来。

如果您的入户光纤是分配的固定公网ip,那很好,您并不需要本脚本,只需要创建一条A记录指向您的公网ip就可以即刻体验物联网生活。但是如果是动态公网ip,现在常见的是每次路由器拨号就会更换ip,那显然,一条A记录已经不能满足需求了,这也是本脚本存在的意义

事前准备

一个 CloudFlare 账号,一个linux环境的路由器(或者vps),一个AWS Lightsail账号(可选)。

开始使用

首先获取 CloudFlare 的 Zone ID 和 Global API key 。登陆后,Home→你的根域名→Overview→Zone ID,然后Get your API key→API keys→View,输上密码就可以得到API key,如图

然后在刚才的Overview右侧的DNS栏,创建一条A记录,Name填自己能记得住的,IPv4 address填1.1.1.1即可,以后会自动更新,Add record,这就算创建好了一条A记录。

root身份登陆路由器或者vps,执行




4
mkdir /home/CloudFlare_DDNS
wget https://raw.githubusercontent.com/dovela/CloudFlare_DNS_Record/Setter/config.conf -O /home/CloudFlare_DDNS/config.conf
wget https://raw.githubusercontent.com/dovela/CloudFlare_DNS_Record/Setter/CloudFlare_DDNS_Setter.sh
vim /home/CloudFlare_DDNS/config.conf

脚本配置









email=  #CloudFlare账户的邮箱
zone_id=  #上文提到的 Zone ID
api_key=  #上文提到的 Global API key
domain=  #创建的A记录名,类似 blog.mcgrady.site
ttl=  #单位秒,建议值120,路由器性能不佳时可以酌情调大,建议不超过600
lightsail_switich=false  #如果本机是 AWS 的 Lightsail,可以用“true”开启本功能
lightsail_ipname=  #创建的静态ip的名称,写个喜欢的就好。名称仅可以包含字母和数字;可以使用连字符 (-) 和下划线 (_) 字符来分隔单词
lightsail_instance=  #本机的实例名称,类似 CentOS-512MB-Oregon-1

举例








email=example@gmail.com
zone_id=3456dfdhfi465ff4ae263ef35esd060f api_key=84058228se28e28898b6ds3ej78yuf2136654
domain=example.example.net
ttl=120
lightsail_switich=true
lightsail_ipname=ip-of-tokyo
lightsail_instance=CentOS-1GB-Tokyo-1

运行脚本

如果是第一次运行,建议执行一次


bash CloudFlare_DDNS_Setter.sh install

之后执行


bash CloudFlare_DDNS_Setter.sh

会有以下选项

1.get domain record_id

  • 第一次执行脚本时运行,目的是获取A记录对应的record_id,如果修改修改二级域名后也须执行一次,该过程是自动完成的。

2.create new domain record

  • (注:本功能详见南琴浪博客,本博主并未使用过此功能…似乎是可以自动创建A记录)

3.*configure lightsail if necessary

  • 如果config中“lightsail_switich”项为true,须执行一次本选项。本文最后会给出介绍,现在略过。

执行过一次 get domain record_id 后,config中会自动添加一条record记录,同时以root的身份向crontabs添加了一条
*/3 * * * * bash CloudFlare_DDNS_Setter.sh –ddns

目的是每3分钟执行一次自动更新ddns,不过为了保险起见,先手动执行一次

1
bash CloudFlare_DDNS_Setter.sh --ddns

如果返回值为result什么什么的,就说明成功了,去Cloudflare检查发现ip也由1.1.1.1更新为了公网ip。如果需要修改自动执行频率,请执行crontab -e

关于Lightsail被墙自动换ip

首先需要去AWS Access keys 获取访问密钥并保存下来,执行 configure lightsail if necessary 后,填入获取的密钥,地域代码须正确填写本机地域,第四项format留空即可。如果之前正确填写了config,此功能将会随ddns一同运行。

地域表

北美

  • us-east-1 弗吉尼亚州
  • us-east-2 俄亥俄州
  • us-west-2 俄勒冈州
  • ca-central-1 加拿大

欧洲

  • eu-west-1 爱尔兰
  • eu-west-2 英国
  • eu-west-3 法国
  • eu-central-1 德国

亚洲

  • ap-northeast-1 日本
  • ap-northeast-2 韩国
  • ap-southeast-1 新加坡
  • ap-southeast-2 澳大利亚
  • ap-south-1 印度

致谢

nanqinlang-script,脚本的创作者,博主在此基础上做了步骤简化和优化。

屌鸡 tg@Unknow000 ,本开源项目使用了他的ipcheck service

皮皮虾窝 ,在加入lightsail自动换ip功能过程中提供了重要的参考。

项目地址https://github.com/dovela/CloudFlare_DNS_Record

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
群晖NAS搭建DDNS服务操作和步骤(使用dnspod域名解析)
最简单最稳定的DDNS图文教程,黑白群通用
免费好用的IPv6之DDNS服务
NAS那些事儿 篇一:纯IPV4访问纯IPV6且内网穿透
揭秘在线DDoS攻击平台(下)
号称全球最快的公共 DNS 服务—— 1.1.1.1
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服