NAT VPS配置DDNS

介绍

NAT VPS逐渐流行,对于动态IP,总不可能换一次IP就更改一次。于是DDNS就派上了用场。
这里采用南琴浪大佬制作的脚本,结合CloudFlare实现IP的动态解析

配置DDNS

Centos安装unzip:

yum install unzip

Debian/Ubuntu安装unzip:

apt-get install unzip

下载文档

 

wget -N --no-check-certificate https://lula.fun/usr/uploads/2018/06/795788678.zip
unzip 795788678.zip
mkdir /home/CloudFlare_DDNS
cp -f /root/config.conf /home/CloudFlare_DDNS

登陆CloudFlare

获取API KEY

如图选择第一个Google Chrome_2018-06-09_15-44-39.png

Google Chrome_2018-06-09_15-47-10.png

获取zone_id

点击域名,下方会显示此域名的zone_id

Google Chrome_2018-06-09_15-51-53.png

解析域名

前缀填写自己想要的,IP随意,记得关闭小彩云

Google Chrome_2018-06-09_15-51-31.png

编辑config.conf

vi /home/CloudFlare_DDNS/config.conf

Fuck_2018-08-04_16-02-46.png
输入i进行编辑,先填写上面三项,注意:不要有空格邮箱填写CloudFlare的注册邮箱
编辑完成后输入ESC退出编辑,然后输入:wq回车保存

获取record_id

命令行输入

bash CloudFlare_DDNS_Setter.sh

输入1

Xshell_2018-06-09_16-13-00.png
你会得到一段代码,找到里面对应DDNS域名解析id,即为record_id

接下来继续编辑config.conf

vi /home/CloudFlare_DDNS/config.conf

填写后面的三项,域名填写你刚才解析的域名例如ddns.yourdomain.com
ttl填写120即可

解析NAT VPS IP

命令行输入

bash CloudFlare_DDNS_Setter.sh --ddns

登陆CloudFlare查看IP是否自动修改为服务器的IP
如果同步失败请检查API_kEY是否正确[清除缓存后查看]

Google Chrome_2018-06-09_16-27-13.png

配置Crontab任务

服务器IP变动后需要即时解析IP,这不废话么
Crontab一般自带,如果没有

Crontab安装教程

1.centos安装crontab

yum install vixie-cron crontabs   #安装Crontab
chkconfig crond on   #设置开机启动Crontab
service crond start   #启动Crontab

2.debian安装crontab

apt-get install cron   #安装Crontab
/etc/init.d/cron restart   #重启Crontab

配置任务

使用crontab -e进入任务编辑,i进入编辑模式

输入

*/5 * * * * bash CloudFlare_DDNS_Setter.sh --ddns

Fuck_2018-08-04_15-59-43.png

脚本设置为5分钟运行一次,保存退出

ESC退出编辑模式,:wq保存,此时再去CloudFlare修改一下IP地址(自定义一个不是当前服务器的IP),静心等待5分钟,看看IP是否更新

相关参考链接

南琴浪博客

GitHub

文章名: 《NAT VPS配置DDNS》

本文链接:https://lula.fun/ddns.html

除特别注明外,文章均由 Lula(噜啦) 原创

 原创文章 转载时请注明 出处 以及文章链接
最后修改:2019 年 10 月 30 日 07 : 21 PM

发表评论

13 条评论

  1. xytdyg

    把我的操作过程贴出来,暂时无法验证是否有效。要等服务器换IP才知道。
    安装好crontab以后,输入crontab -e
    这是我的vps会出现一个选项:
    Select an editor. To change later, run 'select-editor'.

    /bin/nano <---- easiest/usr/bin/vim.basic/usr/bin/vim.tiny
    看网上文章说是选择编辑器,这次选择3。之前我都是选择1了,但是编辑完是无效的,我也不知道是哪里的问题。

    进入后按下a键进入到编辑模式。
    将光标用方向键调到内容最后,然后回车新开一行。
    输入/3 * bash CloudFlare_DDNS_Setter.sh --ddns
    按下ctrl+c退出编辑模式,按下shift+: 输入wq 退出 crontab。

    1. xytdyg
      @xytdyg

      今天服务器再次更换IP,已经可以自动更新dns了。

    2. 噜啦
      @xytdyg

      可以私信评论你的联系方式,给你看一下

      1. xytdyg
        @噜啦

        不过,我刚刚使用你文里的测试方法,好像成功了。哈哈哈,等下次换IP的时候就知道是不是真的有效啦。谢谢你!!!

        1. 噜啦
    3. 噜啦
      @xytdyg

      博文里有测试流程呀。先把它自定义成一个IP,运行脚本以后改变了(服务器IP)就是说明是正确的。不需要等待服务器IP变动的。
      至于编辑器怎么使用那是你自己的问题了

  2. xytdyg

    懂了懂了。
    /3 * bash CloudFlare_DDNS_Setter.sh --ddns
    这条命令是插入到
    vi /home/CloudFlare_DDNS/config.conf 当中。
    跟crontab半毛关系都没有,我上一次插入到crontab当中去了。

    1. 噜啦
      @xytdyg

      我不再赘述的内容是关于怎么编辑和保存内容
      然而我觉得你可能还没有懂,/3 * bash …… 是写在crontab里面的,目的是定时运行脚本(自动运行,难道你每3分钟执行一次命令嘛?脚本的意义何在?)检测IP变化并调用Cloudflare API更新IP实现DDNS。
      配置文件中的变量填写完毕,测试可行后就不要再改配置文件了,写在config.conf里面是什么鬼

      1. xytdyg
        @噜啦

        脚本的意义我大概清楚,就是对Debian系统特别小白。

        1. 噜啦
          @xytdyg

          多使使就会了

      2. xytdyg
        @噜啦

        今天服务器换IP,果然没有自动更新。
        请问写在crontab里面是使用 crontab -e 这个命令吗?

        1. 噜啦
          @xytdyg

          博文没有写crontab怎么用,自己搜一下吧,你说的是对的

  3. xytdyg

    麻烦请您补充上“编辑器使用方法和前面一样,不赘述”的内容,小白忙活一通,到这最后一步傻眼了。