Skip to content

通过 ddns-go 动态域名解析 实现公网访问内网服务

前言

如今 IPv6 的普及度越来越高,与 IPv4 不同的是,大部分人获取到的 IPv6 是公网 IP 并且每一个设备都有一个属于自己的公网 IPv6,因此我们无需再进行内网穿透、端口转发等操作,直接通过设备的公网 IPv6 就可以成功访问到内网服务。

但是直接记住这么长 IPv6 的地址来访问显然不现实,我们可以将域名通过 AAAA 解析到我们的 IPv6 地址上,这样访问时,只需要输入域名,DNS 就会帮我们解析到响应的 IP 地址了。

即便如此,几天之后你就会发现域名又无法访问了,这是因为运营商分配的 IPv6 地址是动态的,过几天 IPv6 就会变动一次,所以就需要 DDNS 了,它可以定时获取我们当前的 IPv6 地址,并将该地址同步到 DNS 服务商。

安装 ddns-go

ddns-go 是一个使用 Go 语言编写的 DDNS 客户端,支持多种 DNS 服务商,通过 Docker 可以直接安装

sh
docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go

使用 ddns-go

在使用 DDNS 之前,需要确保正常获取到 IPv6,并能正常访问 IPv6,通过 http://[ipv6]:port 的形式,能够访问即可。若访问失败,则需要检查光猫或路由器的 IPv6 防火墙配置是否正确。

在浏览器中打开 http://ip:9876 即可进入到 ddns-go 的管理界面,按照以下步骤依次配置:

  1. 首先,选择对应的 DNS 服务商,本文以 Cloudflare 为例,点击 创建令牌 -> 编辑区域 DNS (使用模板) 跳转到 Cloudflare 创建一个 Token

ddns-go1

  1. 点击 Create Token 创建 Token

ddns-go2

  1. 选择 Edit zone DNS,点击 Use template

ddns-go3

  1. 选择自己需要的域名

ddns-go4

  1. 最后会出现一个 Token,将该值填入到 ddns-go 中即可

ddns-go5

  1. 返回 ddns-go,来到下方的 IPv4 与 IPv6 设置,一般没有公网 IPv4 的可以取消勾选 IPv4,勾选 IPv6,将域名填入下方的 Domains 中,稍等片刻,就可以直接用该域名访问到内网服务了(部分地区80、443端口没有开放,需要使用非标端口)

ddns-go6

你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0

预览:

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3