给IPv6的VPS接入IPv4的一次经历

低情商:废物利用

高情商:循环经济:实现可持续发展的 IPv6 Only VPS 利用方式

前情提要

在之前经人介绍嫖了台 Hax.co.id 的免费 VPS,虽然是 IPv6 Only 的,但对于我们这种互联网垃圾佬来说,一切都不是问题

目前主流的能白嫖的给纯 IPv6 网络接入 IPv4 的方式有三种,NAT64/DNS64、Cloudflare Warp(使用 wgcf 生成配置)、使用代理

不过我觉得第三种可以直接划掉了,毕竟代理又不能白嫖

NAT64/DNS64

这种方式是目前较为普遍的给 IPv6 接入 IPv4 网络的方式,具体可参考维基百科

用人话来说就是,如果你是纯 IPv6 网络,使用 DNS64 就可以给一些只支持 IPv4 的网站解析成 IPv6 网站(通过 NAT64 来转换 IPv4 网站)

不过此种方式也有缺点,如图片上所写的

在有域名解析的情况下才有作用,例如你访问的是 https://1.1.1.1 ,那么 DNS64 就无效了

由于返回的解析结果跟域名所有者指定的解析结果不同,DNSSEC 校验可能会失败

由于采用了 NAT64 转换,不可避免的会出现网络延迟。如果 NAT64 服务器与你的网络延迟较高的话……(希望人没事

NAT64 的出口 IP 是有限的,有可能会被你所访问的网站识别为滥用导致频繁需要人机验证

网络吞吐量会受限于 NAT64 服务器的吞吐量

但是 NAT64 相比于 Cloudflare Warp 也有优势,就是配置简单这配置简单多是一件美逝啊

只需要修改下系统的 DNS 即可

一些公共 NAT64/DNS64 服务

Public NAT64 Services - nat64.xyz 收集了一些公共的 NAT64 服务,并整理出了一个列表,可以作为 NAT64 服务的参考。

修改系统 DNS

我的服务器是德国的,选择 Christian Dresel 作为 NAT64 上游服务

复制其 DNS64 服务器,然后填写到系统的 DNS 里

以 Debian 为例

1
nano /etc/resolv.conf

将复制的 DNS 地址填写上,然后 Ctrl O 保存,Ctrl X 退出。

此时可以 Ping 一下延迟(例如全球最大的同性交友社区 GitHub)

可以看到延迟很低

Traceroute 的结果也很令人满意

除了纯 IPv4 没办法访问外,都挺好

Cloudflare Warp

Cloudflare 可以说是一个老牌良心厂商了,无论是旗下的 CDN,还是 Tunnel 服务(内网穿透),都透漏出了一股大厂风范(建议其他厂跟进下,要不然就是xx小厂了

在 2019 年的愚人节这天,当其他互联网大厂还在以捉弄用户为 April Fool 为乐时,默默无闻的 Cloudflare 推出了 Warp 服务

而这项服务的底层服务,是号称最先进加密技术的 WireGuard

但目前 Cloudflare Warp 虽然已经可以在 Linux 上工作,但是在纯 IPv6 连接下还是没办法进行注册,自然也无法使用

所以这里采用另一个方案,wgcf+WireGuard

wgcf

wgcf 是一个 Cloudflare Warp 的非官方、跨平台的 CLI(此处为该项目 About)

项目地址为 https://github.com/ViRb3/wgcf

在这里主要用其注册 Warp 隧道,并生成配置

在项目的 release 下载相应的版本(例如 linux_amd64)

1
2
3
4
5
6
7
8
wget https://github.com/ViRb3/wgcf/releases/download/v2.2.12/wgcf_2.2.12_linux_amd64
chmod +x wgcf_2.2.12_linux_amd64
#注册 Warp
./wgcf_2.2.12_linux_amd64 register
#生成配置
./wgcf_2.2.12_linux_amd64 generate
#编辑配置
nano wgcf-profile.conf

将以下两项删掉

1
2
Address = fd01:5ca1:ab1e:::::/128(删除IPv6地址这一行,可能会略有不同)
AllowedIPs = ::/0

然后将 Endpoint 的地址改为

1
[2606:4700:d0::a29f:c001]:2408

改成这个样子就可以了

WireGuard

以 KVM 虚拟化的 Debian 11 VPS 为例,其它系统建议参考 Installation - WireGuard

1
2
apt install sudo net-tools openresolv wireguard
cp wgcf-profile.conf /etc/wireguard/cfwarp.conf

一般情况下,服务商应该已经为 Debian 配置了 unstable 源,如果你的服务商没有配置 unstable 源,建议用搜索引擎搜索关键词:Debian 添加 unstable 源

临时测试 Warp 隧道可以用这个命令

1
sudo wg-quick up cfwarp

此时 Ping 一下延迟

Traceroute 也是正常的

测试完毕可以用这个命令关掉

1
sudo wg-quick down cfwarp

将隧道持久化(开机自启)

1
2
3
4
5
6
#创建一个配置文件 cfwarp.conf 开机自启的 service
systemctl enable wg-quick@cfwarp.service
#重载 systelctl 的配置
systemctl daemon-reload
#启动配置文件 cfwarp.conf 的 service
systemctl start wg-quick@cfwarp

结语

Warp 的优势有很多,但 NAT64 也不错。对于配置较低的 VPS 来讲,Warp 会吃掉较多性能,尤其是在进行大量数据传输时。此时 NAT64 就显得很有优势了,主要原因应该就是 Warp 的底层协议 WireGuard 在传输数据时有加解密操作,比较考验 CPU 性能。

说到底,这些毕竟是公共服务,且用且珍惜吧,不要将公共的资源肆意滥用

参考内容

  1. NAT64 - 维基百科,自由的百科全书 (wikipedia.org)

  2. IPv6过渡机制 - 维基百科,自由的百科全书 (wikipedia.org)

  3. Public NAT64 Services - nat64.xyz

  4. Introducing WARP: Fixing Mobile Internet Performance and Security (cloudflare.com)

  5. WireGuard: fast, modern, secure VPN tunnel

  6. 【WGCF】连接CF WARP为服务器添加IPv4/IPv6网络 – Luminous’ Home (luotianyi.vc)

  7. ViRb3/wgcf: 🚤 Cross-platform, unofficial CLI for Cloudflare Warp (github.com)

  8. Installation - WireGuard