Anemone's BLOG
Cloudflare WARP 为VPS增加v4/v6连通性并解锁流媒体教程
介绍Cloudflare WARP提取为WireGuard并解锁流媒体的方法

2021/08/07 Updates:Netflix于2021/08/03大面积封锁了标注为Hosting用途的IP,WARP也没能幸免,让我们永远怀念它

写在开始

Cloudflare,永远的神!Cloudflare WARP是基于WireGuard开发的一款VPN,且它的使用是完全免费的。所以我们可以利用它来

  • 使纯v6机器拥有v4的联通能力
  • 使纯v4机器用有v6的联通能力
  • 解锁流媒体(仅测试Netflix)

经过实际测试,WARP的v6路由还可以,而且链接稳定性要好于HE的Tunnel Broker,对于仅需要v6联通的话WARP是更好的选择。v4路由并没有测试过不过依托于Cloudflare的大体量应该也不差。

由于WARP的性质,本身IP并不容易被流媒体(仅测试Netflix)封锁,Netflix的解锁情况为按VPS当地的位置,如果是香港地区的VPS就解锁香港的Netflix,是美国的VPS就解锁美国的Netflix,只能说且用且珍惜

注册WARP账号并提取配置

项目地址,作者已经提供了编译好的二进制文件下载,直接用就好

wget -O wgcf https://github.com/ViRb3/wgcf/releases/download/v2.2.2/wgcf_2.2.2_linux_amd64
chmod +x wgcf
./wgcf register	//会询问是否接受Cloudflare的TOS,直接回车即可
./wgcf generate //这一步可能会跳429(一般是IP不太干净),多试几次就好(有可能需要非常多次)

如果上面顺利,在当前文件夹下会存在一个wgcf-profile.conf的文件,需要对它进行一定的编辑才能正常使用,因为默认的配置文件会接管所有的网络流量,VPS就一瞬失联了。

  • 只需要v6,不需要v4

那么将Peer中的AllowedIPs =0.0.0.0/0 这行去掉,这样WireGuard创建路由表时就只会创建v6的路由表

  • 只需要v4,不需要v6

将Peer中AllowedIPs = ::/0这行去掉,就只会有v4的路由送到WireGuard。

如果你特别熟悉WireGuard配置,那么就自行配置吧(((

WireGuard因为不同系统的安装较为不同,这里不做具体介绍,请自行安装完成。

安装完后复制配置文件到文件夹并重命名

mv wgcf-profile.conf /etc/wireguard/wgcf.conf

然后wg-quick up wgcf,顺利的话应该已经通了。

流媒体解锁

注:此部分为v4用户想用WARP v6解锁流媒体

当你已经顺利的用上了WireGuard以后,发现默认不走v6解锁不了Netflix,那就要稍微的配置一下了。

编辑/etc/gai.conf

label  ::1/128       0
label  ::/0          1
label  2002::/16     2
label ::/96          3
label ::ffff:0:0/96  4
precedence  ::1/128       50
precedence  ::/0          40
precedence  2002::/16     30
precedence ::/96          20
precedence ::ffff:0:0/96  10

默认配置,原理可以看看下面给的参考链接,简单点就是提v6优先级(如果本来就是双栈其实默认就是v6优先)

那当然如果嫌v6慢,想让v4优先,编辑/etc/gai.conf

precedence ::ffff:0:0/96 100

就可以让v4优先了。

以下介绍进阶路由控制。

参考 Mengxy,此处做一些仔细的说明

此处介绍如何实现”源进源出”,首先修改自带路由表/etc/iproute2/rt_tables

#
# reserved values
#
255   local
254   main
253   default
252   network
0    unspec
#
# local
#
#1   inr.ruhep

此处添加一张新表network,后通过ip addr,确定绑定外网的网卡名,一般为eth0,后面的命令请参考配置自行修改,需要修改的在后面会有注释。此步必须谨慎,在WireGuard的配置文件的[Interface]部分中加入三行

Table = off
PostUp = /etc/wireguard/up
PostDown = /etc/wireguard/down

Table=off禁用wg-quick自动创建路由,因为要自行路由,PostUp和PostDown后面指向的是放启动和关闭需要执行命令的脚本,请根据情况修改。需要给予执行权限。PostUp执行的文件内容

#!/bin/bash

ip rule add from X.X.X.X/X lookup network 
ip route add table network default via GATEWAY_ADDR dev DEVICE_NAME
ip route del default via GATEWAY_ADDR dev DEVICE_NAME
ip route add 162.159.192.1 dev DEVICE_NAME via GATEWAY_ADDR
ip route add default dev wgcf
ip -6 route add default dev wgcf
  • X.X.X.X/X请直接使用ip addr查询到的绑定情况填写
  • GATEWAY_ADDR使用route -n查看Gateway IP
  • DEVICE_NAME为绑定外网IP的网卡名
  • 162.159.192.1为远端Cloudflare WARP接入IP,一般情况下不需要修改
  • wgcf为wg-quick创建的网卡名,为WireGuard文件名。

PostDown请参考上面的部分修改

#!/bin/bash

ip route add default via GATEWAY_ADDR dev DEVICE_NAME
ip route del table network default via GATEWAY_ADDR dev DEVICE_NAME
ip route del 162.159.192.1 dev DEVICE_NAME via GATEWAY_ADDR
ip rule del from X.X.X.X/X lookup network 

不建议在生产环境中把全部流量送至Cloudflare WARP,毕竟一旦断开就BOOM,另外如果用于优化垃圾落地的话花点功夫白嫖WARP+效果会好一些

这边仅介绍IPv4源进源出,需要v6的请自行画瓢,此处不过多赘述。

最后

上面的内容写的比较简单,弄不明白的可以到这位大佬的博客看看。

参考引用:


Last modified on 2021-06-15