聊聊DDNS

今天早上朋友发消息说copilot服务掉了,我一开始以为是代理出了问题,登录到服务器发现服务没有问题,但是一直没有请求进来,这才意识到是网络问题。这个服务是通过CNAME解析的,而CNAME的源是一个通过DDNS服务提供商提供的域名,我发现DDNS服务域名解析失败导致服务不可用。

什么是 DDNS?

动态域名系统(Dynamic Domain Name System, DDNS)是一种通过动态更新 DNS 记录来实现域名与动态 IP 地址之间映射的技术。它解决了在互联网中,特别是在家庭网络和小型企业中,使用动态 IP 地址时面临的域名访问问题。

为什么需要 DDNS?

在许多情况下,用户的 Internet 服务提供商(ISP)会分配一个动态 IP 地址,这意味着每次路由器重启或网络连接中断时,用户的 IP 地址可能会变化。这样一来,用户想要通过域名访问自己主机的服务(如游戏服务器、FTP 服务器等)时,就会遇到困难,因为域名对应的 IP 地址已经改变。

DDNS 通过自动更新 DNS 记录,使用户能够始终通过同一个域名访问其设备,无论 IP 地址如何变化。

DDNS 的工作原理

DDNS 的工作原理可以概括为以下几个步骤:

  1. 设备连接到互联网:用户的设备(如路由器或服务器)连接到互联网,获取一个动态 IP 地址。
  2. DDNS 客户端:用户在设备上安装 DDNS 客户端(许多路由器内置 DDNS 功能),这个客户端会定期检查当前的 IP 地址。
  3. IP 地址变化检测:如果检测到 IP 地址发生变化,DDNS 客户端会向 DDNS 服务提供商发送更新请求。
  4. 更新 DNS 记录:DDNS 服务提供商接收到更新请求后,会修改其 DNS 数据库中的记录,将域名指向新的 IP 地址。
  5. 生效:DNS 更新通常在几分钟内生效,用户可以通过域名访问其设备。

上代码:

import httpx
import requests

url = "https://ddns.boringhex.top"

# 使用httpx进行请求
with httpx.Client() as client:
    response = client.get(url)
    print("httpx:", response.text)


# 使用requests进行请求
response = requests.get(url)
print("requests:", response.text)

这段代码的输出还挺有意思,有时先输出httpx,有时先输出requests,这是因为httpx是异步请求,而requests是同步请求,所以有时httpx请求先完成,有时requests请求先完成。更有意思的是,有时输出IPv4地址,有时输出IPv6地址,这是因为我服务器支持IPv6,而httpx和requests默认会优先使用IPv6地址。

获取ip地址这个服务也是今天新建的,留作备用,用别人的提供类似服务的还有ip.meifconfig.me等,这些服务都是通过获取请求的IP地址返回给用户,方便用户查看自己的IP地址。

DDNS 的优缺点

优点

  • 易于使用:用户只需设置一次,之后 DDNS 会自动处理 IP 地址的变化。
  • 成本低:许多 DDNS 服务提供商提供免费的基础服务。
  • 灵活性:支持多种设备和平台,可以用于 HTTP、FTP、游戏等多种服务。

缺点

  • 安全性:如果 DDNS 更新请求未加密,可能会被黑客利用,导致域名被指向恶意 IP。
  • 依赖性:如果 DDNS 服务提供商出现故障,可能会影响用户的访问。
  • 延迟:DNS 更新可能会有一定的延迟,尽管通常在几分钟内生效。

如何设置 DDNS

以下是设置 DDNS 的基本步骤:

  1. 选择 DDNS 服务提供商:市场上有很多 DDNS 服务提供商,如 No-IP、DynDNS、DuckDNS 等,国内的花生壳之类,选择一个适合你需求的服务。
  2. 注册账户:在选择的 DDNS 服务网站上注册一个账户。
  3. 创建域名:在 DDNS 服务提供商的网站上创建一个域名。你可以选择免费的子域名或购买自定义域名。
  4. 配置 DDNS 客户端:
    1. 如果你的路由器支持 DDNS,进入路由器的设置界面,根据 DDNS 服务提供商的要求填写相关信息(如用户名、密码和域名)。
    2. 如果路由器不支持 DDNS,可以在计算机上安装 DDNS 客户端软件。
  5. 测试:完成设置后,重启路由器或计算机,查看 DDNS 是否正常工作。可以通过 ping 命令测试域名是否解析到正确的 IP 地址。

结论

DDNS 是解决动态 IP 地址问题的有效工具,它为用户提供了一个便捷的方式来访问其设备和服务。尽管存在一些缺点,但合理配置和使用 DDNS 可以大大提升用户的网络体验。希望本文能帮助你更好地理解和使用 DDNS 技术。

公众号 | FunIO
微信搜一搜 “funio”,发现更多精彩内容。
个人博客 | blog.boringhex.top

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值