纯IPv6的小鸡,GitHub连不上,Telegram也用不了。不用WARP,464XLAT就行。
原理
DNS64把IPv4域名合成IPv6地址,NAT64网关做翻译,本机跑个clatd,程序无感知:
你的程序 → CLAT(本机) → IPv6网络 → PLAT(公网网关) → IPv4互联网
安装
apt-get update && apt-get install -y clatd
配置
备份DNS,换上DNS64(nat64.net的):
cp /etc/resolv.conf /tmp/resolv.conf.bak
echo "nameserver 2a00:1098:2b::1" > /etc/resolv.conf
配置PLAT前缀(跟DNS64配对的):
echo "plat-prefix=2a00:1098:2b:0:0:1::/96" > /etc/clatd.conf
启动
后台启动,MTU设1280(IPv6最小值,避免分片丢包):
setsid clatd >/tmp/clatd.log 2>&1 &
sleep 3
ip link set clat mtu 1280
ip addr show clat
测试
IPv4域名,期望200:
curl -w "%{http_code} %{time_total}s\n" -o /dev/null https://github.com
Telegram裸IP,404是正常的(说明TCP通了),超时或000才是没通:
curl -w "%{http_code} %{time_total}s\n" -o /dev/null http://149.154.167.51
确认IPv6没搞坏,期望200:
curl -6 -w "%{http_code}\n" -o /dev/null https://cdn.jsdelivr.net
排错
cat /tmp/clatd.log
cat /etc/resolv.conf
ping -6 -c 3 2a00:1098:2b:0:0:1:808:808
开机自启
cat > /etc/systemd/system/clatd.service << 'EOF'
[Unit]
Description=464XLAT CLAT daemon
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/sbin/clatd
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload && systemctl enable --now clatd
清理
pkill -f clatd
cp /tmp/resolv.conf.bak /etc/resolv.conf
apt-get remove -y clatd
rm -f /etc/clatd.conf /tmp/clatd.log /tmp/resolv.conf.bak
备选
nat64.net挂了换这两个:
Trex 芬兰:
DNS: 2001:67c:2b0::4
PLAT: 2001:67c:2b0:db32:0:1::/96
level66 德国:
DNS: 2001:67c:2960::64
PLAT: 2001:67c:2960:6464::/96
实际上warp一个v4出口就行,没那么麻烦
@C2H6O-god #1 没用过warp
依旧需要第三方服务器来支持。
我的方案是tailscale组网,然后另一个机器开个S5代理
公共NAT64普遍又慢又难用
总会有一台带IPv4服务器吧
有就开个Socks5代理一劳永逸
IPv6_Only的IPv4请求重定向到代理
@zha8 #5 懂了。感谢第一次玩ipv6
还是warp方便 本质都是要第三方中转
@C2H6O-god #1 @madolche #7 老哥我想问一下单单套个warp出口会变慢吗?
@yuan1228 #8 大概率不会,比你这种方式速度要快
@C2H6O-god #9 好感谢🙏
我刚刚叫ai连ssh帮我跑了一下好像比v6还快回头再试试warp
巴黎机器测速结果出来了:
延迟
下载速度(50MB 文件)
带宽都跑满了,没区别。结论:NAT64 只加延迟(约 9ms),不影响下载速度