侧边栏壁纸
博主头像
Miku01博主等级

技术宅拯救世界

  • 累计撰写 17 篇文章
  • 累计创建 26 个标签
  • 累计收到 6 条评论

目 录CONTENT

文章目录

Linux实现ipv6动态域名解析

Violet.DrBlack
2023-10-16 / 0 评论 / 7 点赞 / 225 阅读 / 7210 字

前言

经过长达两年时间的坚持和移动运营商撕逼,家庭宽带仍未能分配到公网IPv4地址。只好将远程访问和NAS共享等需求,推向了另一种解决方案——IPv6。虽然IPv6的分配地址在DHCP租期内可能会发生变化,但至少它为我们提供了一个可以应对这种变化的工具。在IPv6网络中,实现DDNS(动态域名解析服务)成为了一种常见的方法,用以保持连接的稳定性。Linux操作系统可以按照以下步骤来设置IPv6 DDNS以满足你的需求。

下面,我主要介绍IPv6、DDNS以及分享我在Linux上进行IPv6 DDNS的方法。

IPv6

IPv6,即互联网协议第六版(Internet Protocol version 6),是用于互联网的一种网络层协议。它是IPv4(互联网协议第四版)的继任者,主要设计用于解决IPv4中的地址耗尽问题和增强网络性能。

以下是一些关于IPv6的特点和信息:

  1. 更大的地址空间: IPv6扩展了IP地址的位数,将IPv4的32位地址扩展为128位地址,这意味着IPv6可以支持远远多于IPv4的地址数量。这有助于解决IPv4中的地址耗尽问题。

  2. 改进的性能: IPv6设计时考虑了网络性能和效率。它简化了数据包处理过程,减少了路由器上的工作负担,提高了网络速度。

  3. 更好的安全性: IPv6包括内置的安全性功能,如IPSec(Internet Protocol Security),可以提供加密和认证,有助于增强通信的安全性。

  4. 自动地址分配: IPv6引入了一种称为SLAAC(Stateless Address Autoconfiguration)的机制,允许设备自动获取IPv6地址,简化了网络配置。

  5. 改进的QoS支持: IPv6通过增加流标签字段,改进了对服务质量(Quality of Service,QoS)的支持。

  6. 内置支持移动设备: IPv6对移动设备和移动IPv6(Mobile IPv6)提供了更好的支持,使设备可以在不断开连接的情况下切换网络。

  7. 过渡机制: 为了平稳过渡到IPv6,IPv6还包括了与IPv4的互操作性,以便向后兼容。

DDNS

DDNS,全称为动态域名系统(Dynamic Domain Name System),是一种用于动态更新域名与IP地址之间映射关系的系统。DDNS的主要目的是解决拥有动态IP地址的网络设备(如个人计算机、路由器等)需要通过域名进行访问或提供服务的需求。

以下是关于DDNS的主要特点和工作原理:

  1. 动态IP地址问题: 互联网服务提供商(ISP)为了管理IP地址分配,会将IP地址动态分配给用户。这意味着用户的公共IP地址可能会定期更改,这会导致访问网络设备或提供服务的困难。

  2. 域名映射: 许多人想要通过易记的域名来访问他们的设备,而不是记住经常更改的IP地址。DDNS允许用户将域名与其动态IP地址建立映射关系,使他们可以通过域名来访问设备。

  3. 定期更新: DDNS客户端会定期检测用户的公共IP地址是否更改。如果检测到IP地址的变化,DDNS客户端将向DDNS服务器发送更新请求,将新的IP地址与域名相关联。

  4. 应用场景: DDNS广泛应用于需要远程访问网络设备的场景,例如远程桌面连接、网络摄像头、NAS设备、远程桌面和VPN服务器等。

  5. 免费和付费服务: 有多个DDNS服务提供商可以选择,其中一些提供基本的免费服务,而其他一些提供高级功能的付费服务。

DDNS允许用户通过静态的域名来访问其拥有动态IP地址的设备,从而增加了网络的可访问性和便利性。用户只需注册一个DDNS域名,配置DDNS客户端,系统会自动处理IP地址的更新,确保域名始终映射到正确的IP地址。这对于那些需要从远程地方访问或管理设备的用户来说尤其有用。

腾讯云域名在Linux上面的IPV6-DDNS

找到GitHub大佬开发的DDNS开源项目,感兴趣可以参考原文GitHub - NewFuture/DDNS: :triangular_flag_on_post: 自动更新域名解析到本机IP(支持dnspod,阿里DNS,CloudFlare,华为云,DNSCOM...)

环境部署及资源下载

在终端中下载DDNS-master.zip

wget https://miku01.cc/upload/DDNS-master.zip

P·S.使用该项目要有python环境
安装Python 3的命令在不同的Linux发行版中略有不同。以下是在Ubuntu、CentOS、Rocky Linux 和 Arch Linux 中安装 Python 3 的命令:

Ubuntu:

在 Ubuntu 中,默认情况下可能已经安装了 Python 3。你可以使用以下命令来确保它已经安装并获取最新版本:

sudo apt update sudo apt install python python3 -y

CentOS 和 Rocky Linux:

在 CentOS 和 Rocky Linux 中,你可以使用 yum 包管理器来安装 Python 3。以下是安装 Python 3 的命令:

 yum install python python3 -y

Arch Linux:

在 Arch Linux 中,你可以使用 pacman 包管理器来安装 Python 3。以下是安装 Python 3 的命令:

pacman -S python python3

修改配置文件

解压DDNS-master.zip

unzip DDNS-master.zip

先运行一次run.py生成config.json配置文件

python3 run.py

修改config.json文件时可以参照下述配置文件示例

{
  "$schema": "https://ddns.newfuture.cc/schema/v2.8.json",
  "id": "12345",
  "token": "mytokenkey",
  "dns": "dnspod 或 dnspod_com 或 alidns 或 dnscom 或 cloudflare 或 he 或 huaweidns 或 callback",
  "ipv4": ["ddns.newfuture.cc", "ipv4.ddns.newfuture.cc"],
  "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"],
  "index4": 0,
  "index6": "public",
  "ttl": 600,
  "proxy": null,
  "debug": false
}
  • "id":腾讯云DNSPod 点击DNSPod ToKen,点击创建密钥即可,复制ID在这里替换

  • "token":生成Token的时候将Toeken复制粘贴到此处,ToKen生成后仅展示一次

  • "dns":腾讯云默认输入dnspod即可,其他厂商的域名可在上述示例中查找对应DNS

  • "ipv4":你需要动态解析ipv4地址的域名全称(无需求可删除)

  • "ipv6":你需要动态解析ipv6地址的域名全称

  • "index4":(无需求可删除)

其他未提及的参数保持默认即可

保存后,再次运行run.py若ID、ToKen无误将会出现下述提示

WARNING:root:Cache file is out of dated.

Mon Oct 16 15:31:48 2023 ddns.newfuture.cc(AAAA) ==> 2409:9999:8888:7777::4ae [via DIRECT]

观察DNSPod控制台,已经生成解析记录了。

开机启动以及持久运行

  • 使用init.d和crontab运行目录下task.sh文件(未尝试,Ubuntu、CentOS建议使用下面的systemd):

sudo ./task.sh

创建/usr/share/DDNS目录和/etc/DDNS目录,将DDNS-master/复制到/usr/share/DDNS目录中,将config.json复制到/etc/DDNS中后运行下面的命令

#安装服务:
sudo ./systemd.sh install
#卸载服务:
sudo ./systemd.sh uninstall

设置开机自启动,并查看ddns.service进程状态

#设置开启自启动
systemctl enable ddns.service --now
#查看服务状态
systemctl status ddns.service

有需要帮助的地方可以在评论区留言

7
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区