使用dynv6配置DDNS服务的详细教程
创作时间:
作者:
@小白创作中心
使用dynv6配置DDNS服务的详细教程
引用
CSDN
1.
https://blog.csdn.net/q764535104/article/details/138899997
动态DNS(DDNS)服务允许用户将一个固定的域名映射到动态变化的IP地址上,这对于家庭服务器或需要远程访问的设备非常有用。本文将详细介绍如何使用dynv6服务配置DDNS,包括账号注册、API token获取以及脚本和systemctl服务的配置。
背景
当家中有一台具备动态IPv6地址的物理机时,使用DDNS服务可以将动态IP地址映射到一个固定的域名解析服务上,便于远程访问。
服务商
选择dynv6作为DDNS服务提供商,其官网地址为:https://dynv6.com/
配置步骤
1. 在dynv6创建一个域名
访问dynv6官网,注册一个新账号并创建所需的域名。
2. 登录邮箱,验证账号
按照提示完成邮箱验证,并设置密码。
3. 获取token
3.1 进入APIs页面
登录后,进入APIs页面获取token。
3.2 获取token
在HTTP tokens中点击details获取token。
3.3 方案一:使用curl命令访问API
可以使用以下curl命令来更新DNS记录:
curl -vv "https://dynv6.com/api/update?hostname=$hostname&ipv6=auto&token=your-token"
注:
$hostname
:填第一步创建的域名,如:test.dynv6.netipv6=auto
:会自动获取你的IPv6地址your-token
:替换为在3.2获取的token- 命令无误后,可以将其打包成脚本并使用crontab定时执行
3.4 方案二:写成脚本并封装在systemctl中
3.4.1 编写脚本
创建一个名为update_dns.sh
的脚本:
vim 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服务文件:
vim /lib/systemd/system/update_dns.service
[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.1 在dynv6网站检查
登录dynv6网站,进入域名页面,选择Records查看是否是自己服务器的IP。
4.2 使用命令检查
可以使用以下命令检查DNS解析是否正确:
nslookup test.dynv6.net
常见问题及解决方案
5.1 dynv6确认密码创建账号失败
分析:主要是人机校验没过,而国内的网络偶尔人机校验页面出不来,需要使用VPN。
5.2 配置了crontab但没按时执行
分析:
检查系统时间是否正确,确保服务器时间与实际时间一致。
命令:date
校准命令:timedatectl set-timezone Asia/Shanghai
检查crontab服务状态:
systemctl status cron
注意,Ubuntu系统使用cron
,其他系统可能是crond
。如果crontab没有加载新配置,可以重启crontab服务:
systemctl restart cron
热门推荐
Ps:裁剪与切片类工具组
牛油和黄油的区别是什么?一文详解两种牛脂制品
牛油和黄油一样吗 牛油和黄油的区别是什么
独夜不能寐,摄衣起抚琴。
透视公维金使用难题:小区维修不再难?
华硕超频BIOS设置图解指南(轻松实现性能提升的关键步骤)
瑞丽:投资热土上的璀璨明珠
如何妥善处理大门与小门的关系?这种关系对家居有何影响?
如何促进胡子快速生长
车模是什么东西 汽车模型的特点及和玩具的区别介绍
个人卡通形象专利申请指南:从准备到保护全流程详解
湖南这些宝藏温泉,冬天一定要去一次
《死亡之城》第一季结局解析——尼根的未来与《行尸走肉》宇宙联系的洞察
集体供暖的开始和结束日期是什么?
雄激素为什么对毛发来说是双刃剑?
水晶光电深耕AR眼镜,瞄准AI技术新未来
中牟县到海南旅游多少公里啊高速距离及当前费用
【面试后跟进攻略】:如何高效跟进面试反馈与结果
如何实现线程池中异常捕获
恋爱动漫排行榜 好看的恋爱动漫推荐(2024年最新排名前十榜单)
孩子叛逆有因!这个真相让家长恍然大悟
什么是SKU合理化?流程、优势及实施策略详解
儿童下肢发育全解析:从胚胎到成长的奥秘
砒霜:既是毒药,又是解药
诈骗的钱追回来的可能性大吗
如何品尝天山雪莲:美味营养的多种吃法与健康益处
如何解读命中率统计,一篇文章的深入探讨
喜宝是爸爸的大还是叔叔-解析家庭角色和亲情关系对孩子成长的影响
跑者高潮|你体会过“第二次呼吸”吗?
肺结核痊愈后肺结节应该如何处理