Littleyu科学上网
技术分享

利用cloudfare的dynamic dns绑定动态ip

背景:

今天在anyhk VPS供应商购得一款没有公网ip的主机,外网访问必须通过公网ip共享端口nat访问到内网主机,所以这里我必须把内网ip绑定到一个固定域名(动态ip就是随时会变化的ip地址),通过域名访问内网主机

解决思路:

域名API密匙获取

1,首先登录cloudfare官网,将自己的域名(比如我的站点域名:www.yugogo.xyz)托管由cloudfare解析。

2,其次,点击页面右上角的个人账户,点击个人资料即可详见下页。https://www.cloudflare.com/a/profile

3,点击“view”按钮,即可获取当前域名的API密匙,(注意:API不可泄漏给他人)

shell脚本获取

首先,利用ssh登录vps终端,将其下列命令复制粘贴到终端运行。

如果运行报错,检查vps是否没有装curl命令,没有装,请百度搜搜。

shell脚本配置

1,将下载好的脚本(/usr/local//usr/local/bin/cf-ddns.sh),进行配置更改,

2,找到一下代码将其改为自己的配置,

auth_email=改为自己在cloudfare账户邮箱,auth_key=改为cloudfare的API密匙,zone_name=改为解析的一级域名,(注意:不是二级域名,比如我的一级域名:yugogo.xyz),record_name=改为即将解析的二级域名(比如我的二级域名:www.yugogo.xyz)
修改好配置,输入英文的冒号+wq保存退出即可。

shell脚本运行

如果运行脚本后,提示:IP changed to: X.X.X.X,说明脚本运行成功,域名能够解析到此ip。

crontab定时运行

在终端输入crontab -e,此时进入vi编辑界面,添加以下代码:

每隔20分钟,自动运行cf-ddns.sh脚本。这样当动态ip变化后,系统将会在20分钟内自动把ip告知域名解析服务器,完成动态ip的解析。
输入:service crond status即可看到crond运行状态。

日志状态

脚本获取IP更改CloudFlare的DNS记录后,会在目录中生成ip.txt、cloudflare.ids和cloudflare.log三个文件。ip.txt记录的是本机的IP。脚本自动获取到IP后,会先与ip.txt中的IP进行比较,当不一致时(检测到IP发生变化),才会更新CloudFlare的DNS记录,并且把新IP写入ip.txt文件中。如果IP没变化,运行脚本会提示IP has not changed。如果要强制运行脚本更新DNS记录,可以rm /usr/local/bin/ip.txt删除掉ip.txt。

如果运行忽然出问题,可以试试rm /usr/local/bin/cloudflare.ids把cloudflare.ids文件和ip.txt文件删除掉,再重新运行脚本。

赞(1) 打赏,请点Google广告
需转载请注明引用出处:Littleyu科学上网技术 » 利用cloudfare的dynamic dns绑定动态ip

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Littleyu油管频道电报交流群