为 macOS 固定 IPV6 后缀,设置 DDNS 及防火墙
说明:测试环境为 macOS 10.14.6
在 /etc/sysctl.conf
配置文件中添加:
net.inet6.send.opmode=0
用以关闭随机地址(目录无此文件可同文件夹就近复制重命名一个 conf 文件并清空内容以避免权限问题)。
重启 macOS,运行命令:
$ sysctl -a | grep opmode
检查 net.inet6.send.opmode
的值是否为 0
,运行命令:
$ ifconfig -a | grep -E 'inet.*?autoconf'
得到两个 IPV6 地址,检查非隐私拓展 IPV6 地址是否符合 EUI64 标准。
例如,MAC 地址为 68:8c:29:d7:7a:bb
,则 IPV6 后缀 :6a8c:29ff:fed7:7abb
配置网关防火墙规则,提取 IPV6 后缀与掩码组成本地地址,形如::0:0:0:0/::ffff:ffff:ffff:ffff
。
例如,IPV6 地址为2409:8a21:a814:b830:6a8c:29ff:fed7:7abb
,华硕路由器传入防火墙规则的本地 IP 地址为::6a8c:29ff:fed7:7abb/::ffff:ffff:ffff:ffff
。
配置 IPV6 DDNS 解析,此处需要用到 dynv6 提供的服务。申请好 ZONE
和 API KEY
,添加 AAAA
记录,数据填写 MAC 地址,并使用命令(注意替换[your_domain]
和 [your_token]
):
$ curl "https://ipv6.dynv6.com/api/update?ipv6prefix=auto&zone=[your_domain]&token=[your_token]"
更新前缀,即可拼接出 macOS 完整 IPV6 地址。
例如,ZONE
为example.dns.army
,添加 AAAA
记录 Name
为 macos
,Data
为 68:8c:29:d7:7a:bb
,即可生成 IPV6 后缀 ::6a8c:29ff:fed7:7abb
,利用命令:
$ curl "https://ipv6.dynv6.com/api/update?ipv6prefix=auto&zone=example.dns.army&token=[your_token]"
即可更新 IPV6 前缀2409:8a21:a814:b830::
,最后 dynv6 自动拼接出完整 IPV6 EUI64 地址2409:8a21:a814:b830:6a8c:29ff:fed7:7abb
,对应 DDNS 域名为macos.example.dns.army
。
这么做的好处是访问 macOS 地址相对固定,防火墙设置简单,DDNS 相对稳定,又不影响使用隐私扩展地址对外进行访问,隐私性得到保证,同局域网下其他符合 EUI64 标准的 IPV6 地址可一次性批量生成和更新。
1
titanium98118 2022-02-06 20:28:10 +08:00 via iPhone
自从用了 tailscale ,基本不管 ddns 了
|