NAT VPS自建DDNS的几种方法

一、Cloudflare API

这种方法应该是用的最多的。

前提条件:

  • 自有域名
  • 域名已接入Cloudflare

1.获取Global API Key

登入Clooudflare查看:https://dash.cloudflare.com/profile/api-tokens

2.设置DDNS域名

在Cloudflare DNS面板中新建A 记录,例如myddns 指向1.1.1.1 并关闭CF代理开关让云朵灰色。

3.下载cf-ddns脚本

wget -N --no-check-certificate https://raw.githubusercontent.com/yulewang/cloudflare-api-v4-ddns/master/cf-v4-ddns.sh

也可以用GitHub另外2个脚本:

https://github.com/jeessy2/ddns-go

https://github.com/NewFuture/DDNS

4.编辑cf-ddns脚本

vi cf-v4-ddns.sh

或者

​nano cf-v4-ddns.sh

修改脚本中,对应的信息。

# API key, see https://www.cloudflare.com/a/account/my-account,
# incorrect api-key results in E_UNAUTH error
CFKEY=您的Global API Key

# Username, eg: [email protected]
CFUSER=您Cloudflare的帐户名称

# Zone name, eg: example.com
CFZONE_NAME=您的域名

# Hostname to update, eg: homeserver.example.com
CFRECORD_NAME=你的二级域名

保存并退出编辑界面

5.修改cf-ddns脚本权限

chmod +x cf-v4-ddns.sh

6.测试运行脚本

./cf-v4-ddns.sh

##如果上面的步骤无误,您会看到Cloudflare DNS面板中。

##刚才您新建的A 记录IP已更新为VPS的公网IP

7.设定定时任务自动更新ddns的IP

crontab -e

##有些系统会提示让您选择vi或nano编辑定时脚本,选择您熟悉的编辑工具即可

##插入下面一下,表示每分钟更新ddns

*/1 * * * * /root/cf-v4-ddns.sh >/dev/null 2>&1

保存退出。

二、he.net DDNS

he.net的DDNS非常方便,不需要任何脚本,curl请求即可,添加crontab定时任务。

具体参考:https://dns.he.net/docs.html

crontab参考:

*/1 * * * * curl -4 "https://dyn.example.com:[email protected]/nic/update?hostname=dyn.example.com"

he.net会获取当前vps的IP地址更新到dns记录。

三、Dynu.com、ChangeIP.com等

这种很简单,直接注册,然后根据官方提供的脚本更新DNS记录即可。

上面三种方法,都会有一个问题,DDNS生效时间和DNS缓存时间,会导致NAT更换IP后中断几分钟不等。比如cloudflare免费用户DNS TTL是1分钟,he.net是5分钟,dynu是30s。

所以就有了第四种方法,也是最优解决方案。

四、Cloudflare Tunnel

借助cloudflare tunnel实现内网穿透,不受ddns影响,而且完全免费。

cloudflare runnel功能很强大,具体参考官方教程:https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/

本文链接: https://www.168itw.com/web-server/nat-vps-ddns/
转载请注明转载自:168itw

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注