通过dynv6使用DDNS服务配置教程
创作时间:
作者:
@小白创作中心
通过dynv6使用DDNS服务配置教程
引用
CSDN
1.
https://blog.csdn.net/q764535104/article/details/138899997
本文将详细介绍如何使用dynv6服务配置DDNS,使具备动态IPv6地址的服务器能够通过固定的域名进行访问。文章将从账号注册、token获取到脚本编写和系统服务配置等多个方面进行讲解,帮助读者快速完成DDNS的设置。
背景
为了使具备动态IPv6地址的服务器能够通过固定的域名进行访问,我们需要使用DDNS(动态域名系统)服务。DDNS服务能够将用户的动态IP地址映射到一个固定的域名解析服务上,从而实现通过域名访问动态IP地址的目标。
服务商
本文将使用dynv6作为DDNS服务提供商,其官方网站为:https://dynv6.com/
1. 在dynv6创建一个域名
首先需要在dynv6网站上注册一个账号并创建一个域名。创建域名的过程如下:
- 访问dynv6官网并注册账号
- 登录邮箱验证账号
- 创建一个新的域名
2. 登录邮箱,验证账号
在注册账号后,需要登录注册时使用的邮箱,验证账号。验证邮件通常会包含一个验证链接,点击链接即可完成账号验证。
3. 获取token
3.1 进入APIs页面
登录dynv6账号后,进入APIs页面,获取用于更新DNS记录的token。
3.2 获取token
在APIs页面中,找到HTTP token,点击进去获取token。
在http tokens列表中,点击details按钮获取token。
3.3 方案一:在你的服务器执行curl命令访问api
可以使用curl命令直接更新DNS记录。以下是curl命令的示例:
curl -vv "https://dynv6.com/api/update?hostname=$hostname&ipv6=auto&token=your-token"
注:
$hostname:填第一步你创建的域名,如:test.dynv6.netipv6=auto:会自动获取你的ipv6your-token:改成在3.2获取的token- 命令无误,则打包成脚本,使用crontab定时自动执行
3.4 方案二:写成脚本,封装在systemctl,开机自启
为了实现自动更新DNS记录,可以将更新逻辑写成脚本,并使用systemctl管理该脚本。
3.4.1 写成脚本
创建一个名为update_dns.sh的脚本文件,内容如下:
#!/bin/sh
# Configure
Hostname="test.dynv6.net"
IPVERSION="6" # IPV4=4, IPV6=6
UpdateURL="http://dynv6.com/api/update?hostname=${Hostname}&ipv${IPVERSION}=auto&token=your-token"
# Determine record type based on IP version
if [ "$IPVERSION" = "4" ]; then
RecordType="A"
else
RecordType="AAAA"
fi
while true; do
# Use dig to get the saved IP from the DNS record
SavedIP=$(dig ${RecordType} +short ${Hostname})
# Use dig to get the actual IP
if [ "$IPVERSION" = "4" ]; then
ActualIP=$(dig -4 +short myip.opendns.com @resolver1.opendns.com)
else
ActualIP=$(curl -s http://v6.ipv6-test.com/api/myip.php)
fi
# Check if the IPs are different and update if needed
if [ "$SavedIP" != "$ActualIP" ]; then
response=$(curl -s -o /dev/null -w "%{http_code}" "${UpdateURL}")
date
if [ "$response" -eq 200 ]; then
echo "IP updated successfully: $ActualIP"
else
echo "Failed to update IP"
fi
fi
sleep 600 # run every 30 minutes to reduce server load
done
注:
SavedIP获取域名test.dynv6.net目前的DNS解析IPActualIP获取服务器目前的IP- 先比对动态IP是否有更新,有再访问DDNS的API接口更新IP解析
- 每半小时执行一次
3.4.2 写成systemctl
创建一个systemd服务文件,使脚本在系统启动时自动运行。以下是服务文件的示例:
[Unit]
Description=node_exporter service
After=network-online.target
[Service]
Type=simple
ExecStart=sh /data/program/update_dns.sh
Restart=on-failure
ExecStop=/bin/kill -9 $MAINPID
[Install]
WantedBy=multi-user.target
:wq
systemctl daemon-reload
systemctl start update_dns.service
systemctl status update_dns.service
systemctl enable update_dns.service
注:
ExecStart=sh /data/program/update_dns.sh换成你的脚本的绝对路径
4. 检查是否成功
4.1 dynv6网站检查
登录dynv6网站,进入域名页面,选择Records查看是否是自己服务器的IP。
4.2 命令检查
使用nslookup命令检查域名解析是否正确:
nslookup test.dynv6.net
5. 问题整理
5.1 dynv6确认密码创建账号失败
分析:主要是人机校验没过,而国内的网络偶尔人机校验页面出不来,需要墙一下。
5.2 配置了crontab但没按时执行
分析:
- 检查时间,安装的服务器可能不是中国时间
命令:date
校准命令:timedatectl set-timezone Asia/Shanghai - crontab没正常运行,检查其状态
systemctl status cron
注意,ubuntu是cron,其他系统可能是crond - crontab没有加载新配置
systemctl restart cron
热门推荐
自编码器(Autoencoder)在无监督学习和降维中的应用
跑步是长寿的良药!但过了50岁,跑步一定要牢记“这几个不要”?有科学依据吗?
教堂的管理任务有哪些项目
西游记:牛魔王和太上老君的“青牛”,谁更厉害?
探索土司制度:历史背景、职责与影响
元、明、清时期,武宣有过土司吗?
日常生活中的8个溶剂示例
如何进行基金选择并做出合理投资决策?这些投资决策可能面临哪些挑战?
华科大"醉晚亭"晚会迎来30周年,一场音乐盛宴送别毕业生
房产纠纷中的合同审查
签购房合同之后多久付首付?首付支付相关问题全解析
家中冰箱怎么嵌?零嵌、平嵌与全嵌帮你选!
如何编写高效的单元测试用例实例?【附实例讲解】
苹果手机开热点为什么搜不到?
量化遇瓶颈:Scaling Law无法无限扩展?科学家揭示低精度训练的极限
GTA5加强版和原版区别说明-gta5增强版对比
客厅灯带怎样进行合适选择?选择时要考虑哪些因素?
绩效评价多久进行一次比较合适?
如何理解公司股价的大幅下跌?这种下跌如何评估和应对?
腾冲下午茶打卡指南!集齐本地人最爱
非师范生可以考教师资格证吗 需要哪些条件
Switch手柄连接不上电脑?原因及解决指南
如何了解黄金市场的价格观察途径?这些途径如何满足投资者需求?
明渠式紫外线杀菌器是怎么运行的?工作原理解析
教你几招实用的椅子瑜伽,送给长期伏案的你!办公室一族必收藏
纯碱玻璃低位反弹,机构建议关注跨品种套利机会
神奇的太阳系之旅
扬州·个园——中国四大名园
足球的基本技术
谁发明了地动仪