Oracle cloud 大方的提供了永久免费的服务器, 一只玩Raspberry PI所以对它的免费ARM服务器很感兴趣, 4核心16GB内存真是业界良心, 相对来说 AWS 跟 Google 这是小气吧啦了。

Route48是一家新的提供IPV6 Tunnels 通道的免费服务商, 如果用过HE.NET的话应该对IPV6 通道很熟悉。 IPV6 通道的存在给那些本来只有IPV4的服务器提供的双栈通信的可能。 配置基本上跟HE.NET的通道差不多, 不过提供了更多的终端所以更加方便选择延迟低的服务器。 最大的好处就是route48直接提供了包括GRE/SIT 以外的协议 (包括Wireguard, ZeroTier)。特别是GRE/SIT 对 Oracle Cloud 这类 NAT网络方式的服务器真的是支持不是很好, 感谢Wireguard真是无脑方便的配置,省下很多时间。

下面来记录一下配置过程

  • 注册一个route48的账号。
  • 在IPV6 Tunnels 的服务选择新建一个通道
  • 选择Tunnel Type : Wireguard
  • 选择服务器,靠近你需要IPV6的服务器延迟低的。
  • Remote IPV4 Address 选择自己服务器的公有IP

创建完成后就可以看到分配到的/48的IPV6地址段, 以及远程服务器的IPV4的IP和Wireguard端口。
进入具体配置页面就可以看到Wireguard的客户端配置文件(类似一下的配置)

Interface] 
PrivateKey = xxxxxxxxxxxx 
Address = 2a06:a003:xxxx::2/48  

[Peer] PublicKey = xxxxxxxxxxx 
AllowedIPs = ::/1, 8000::/1 
Endpoint = sin-sg.node.route48.org:52019 
PersistentKeepAlive = 60
OTHER

安装常规配置安装wireguard ,然后生成文件/etc/wireguard/wgroute48.conf 并把上面的配置
然后执行指令运行一个新的虚拟网卡, 需要注意的是Oracle cloud的服务器重启的时候不知道是不是因为wireguard原因不能正确获取sin-sg.node.route48.org的ip地址, 所以我修改了wireguard配置文件直接替换成了它的IPv4, 另外需要特别注意的是Oracle Cloud 启用了安全组策略,所以还是需在策略组允许必要的防火墙规则。

wg-quick up wgroute48

wgroute48: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 8920         
    inet6 2a06:a003:xxxx::2  prefixlen 48  scopeid 0x0<global>         u
    nspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)         
    RX packets 653312  bytes 188005716 (188.0 MB)         
    RX errors 0  dropped 0  overruns 0  frame 0         
    TX packets 682787  bytes 76932792 (76.9 MB) 
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
OTHER

尝试ping6 g.co 应该可以正确的识别ipv6地址了。
因为route48 分配的是整个/48通道地址, 所以理论上你可以像HE.NET一样配置/48的地址段给你的服务器, 那可是 256 个/56段。 64000+ 个/64段 的地址。 或者准确的说是 1,208,925,819,614,629,174,706,176 个IPv6的地址。