其实客户端 ipv4-only 也能访问的。比如让 Cloudflare 代理,这样你的 ipv6-only ddns 就能双栈访问了。
假设你域名的 dns ,是由 Cloudflare 接管解析的,并且你能在群晖上运行以下代码(我没有群晖,不知道能不能直接运行 bash 代码,但楼上有人提到 Docker 就可借鉴,模拟一个 ubuntu 环境):
#------>
#!/bin/bash
# Cloudflare 信息
YOUR_DOMAIN="
example.com" # 请替换为你的域名
SUBDOMAIN="
sub.example.com" # 请替换为你的子域名
YOUR_EMAIL="your_email@example.com" # 请替换为你的 Cloudflare 邮箱地址
YOUR_GLOBAL_API_KEY="your_api_key" # 请替换为你的 Cloudflare Global API Key
# 请替换为你的网络设备信息,可以用 ip a 查看
bindDevice="enp45s0"
# 获取 IPv6 地址
IPV6_ADDR=$(ip -6 addr show $bindDevice | grep "inet6" | awk '{print $2}' | grep "^2" | cut -d'/' -f1 | head -n 1)
# 获取 Cloudflare Zone ID
ZONE_ID=$(curl -s -X GET "
https://api.cloudflare.com/client/v4/zones?name=$YOUR_DOMAIN" \
-H "X-Auth-Email: $YOUR_EMAIL" \
-H "X-Auth-Key: $YOUR_GLOBAL_API_KEY" \
-H "Content-Type: application/json" | jq -r '.result[0].id')
# 获取 DNS 记录 ID
DNS_RECORD_ID=$(curl -s -X GET "
https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records?type=AAAA&name=$SUBDOMAIN" \
-H "X-Auth-Email: $YOUR_EMAIL" \
-H "X-Auth-Key: $YOUR_GLOBAL_API_KEY" \
-H "Content-Type: application/json" | jq -r '.result[0].id')
# 更新 DNS 记录
curl -s -X PUT "
https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$DNS_RECORD_ID" \
-H "X-Auth-Email: $YOUR_EMAIL" \
-H "X-Auth-Key: $YOUR_GLOBAL_API_KEY" \
-H "Content-Type: application/json" \
--data '{"type":"AAAA","name":"'$SUBDOMAIN'","content":"'${IPV6_ADDR}'","ttl":120,"proxied":true}' | jq
# 输出结果
echo "Updated $SUBDOMAIN with IPv6 address: $IPV6_ADDR"
#<------
这里有两点比较重要:
1."proxied":true 意思是让 Cloudflare 代理
2.你可能得手动安装 jq