前言
之前介绍过用cloudflare-warp官方客户端为本地提供一个代理服务来解锁Netflix以及其他流媒体,这种方式比较轻便,如果不是IPv6 only的环境还是建议使用官方客户端。 点击查看
本文介绍通过wireguard连接warp服务端,实现类似添加IPv4的功能。缺点是这种模式无法使用docker的bridge模式。
网上有很多一键脚本,Google一搜就能找到,不过生命在于折腾,所以记录一下手动折腾过程,本文使用的环境是Debian 11。
wgcf
安装
首先安装wgcf,因为本机没有ipv4,所以不能直接从GitHub下载。这里使用了本人搭建的ghproxy。当然你也可以自行搭建一个(查看教程)。
cd /usr/local/bin && wget https://gh.yushum.com/https://github.com/ViRb3/wgcf/releases/download/v2.2.11/wgcf_2.2.11_linux_amd64 -O wgcf && chmod +x wgcf
注册
全新注册
可以直接注册新账号
wgcf register
新账号将会保存在当前目录下的wgcf-account.toml
文件中。
使用原有账号
也可以使用原有账户信息,只要修改 wgcf-account.toml
中的license_key
为你的值即可。可以通过邀请新用户的方式添加warp+高级流量,也可以用脚本刷流量,点击前往教程。
手机端可以打开1.1.1.1
APP,点击右上角三条横线的菜单按钮,打开账户
,看到的按键
就是所需要的license_key
有以下两种方式更新账户信息,二选一即可。
1. 修改wgcf-account.toml
文件
vi wgcf-account.toml //填入你的license_key,然后按esc :wq保存退出
wgcf update
2. 通过环境变量修改
WGCF_LICENSE_KEY="123412341234" wgcf update
生成配置文件
现在就可以使用已经设置好的账号生成wireguard配置文件了。
wgcf generate
此时当前目录下就会生成wgcf-profile.conf
文件。
处理配置文件
监听
对于IPv6 only的服务器而言,我们只需要让warp接管ipv4的监听,所以需要删除wgcf-profile.conf
文件中的第十行
AllowedIPs = ::/0
然后将第11行的engage.cloudflareclient.com
修改为IPv6地址,一般都是2606:4700:d0::a29f:c001
,注意IPv6要加括号,所以第11行最终修改为
Endpoint = [2606:4700:d0::a29f:c001]:2408
最大传输单元(MTU)
配置文件中还有一项mtu,对网速的影响很大,可以酌情修改,具体环境自行测试,不能一概而论。
可以参考GitHub中的讨论#40
WireGuard
对于全虚拟化或者独立服务器直接安装wireguard即可,因为wireguard的模块在内核中已经提供;对于半虚拟化不能修改内核,就只能用wireguard-go或者BoringTun作为替代。
全虚拟化和独服
apt install wireguard-tools openresolv -y
半虚拟化
无论是wireguard-go还是BoringTun, 都需要服务器支持tun,如果不支持须联系服务商开启。以下两种方式二选一。
首先安装wireguard
apt install wireguard-tools openresolv -y --no-install-recommends
1. wireguard-go
可以自行编译,嫌麻烦直接用别人编译好的也可以。
自行编译
注意需要本地golang版本高于1.13
git clone https://git.zx2c4.com/wireguard-go.git && cd wireguard-go && make
mv ./wireguard-go /usr/local/bin/
chmod +x /usr/local/bin/wireguard-go
安装好之后可以输入wireguard-go
测试一下,有返回结果即可。
第三方编译
以下二选一即可。
bernardkkt
打开Release页面查看最新版,目前最新版为v0.0.20211016
wget https://gh.yushum.com/https://github.com/bernardkkt/wg-go-builder/releases/download/v0.0.20211016/wireguard-go -P /usr/local/bin && chmod +x
/usr/local/bin/wiregurad-go
P3TERX
打开Release页面查看最新版,目前最新版为0.0.20211016
wget https://gh.yushum.com/https://github.com/P3TERX/wireguard-go-builder/releases/download/0.0.20211016/wireguard-go-linux-amd64.tar.gz
tar xvf wireguard-go-linux-amd64.tar.gz
chmod +x wireguard-go
mv wireguard-go /usr/local/bin
2. BoringTun
BoringTun也需要编译安装,懒得编译的可以直接下载我编译好的到 /usr/local/bin/
目录并给予可执行权限。
cargo
首先安装cargo
apt install cargo -y
编译
mkdir boringtun
cd boringtun
git clone https://gh.yushum.com/https://github.com/cloudflare/boringtun .
cargo build --bin boringtun --release
安装
cp target/release/boringtun /usr/local/bin/
使用
将wgcf生成的wgcf-profile.conf
文件复制到wiregurad配置文件夹中
cp /usr/local/etc/wgcf/wgcf-profile.conf /etc/wiregurad/wgcf.conf
测试
测试一下配置文件有无错误
wg-quick up wgcf
curl ipinfo.io
如果使用了BoringTun
需要在前面加环境变量WG_QUICK_USERSPACE_IMPLEMENTATION=boringtun WG_SUDO=1
没有错误的话就可以停止进程
wg-quick down wgcf
开机自启
systemctl enable wg-quick@wgcf.service
注意如果使用了BoringTun需要在/lib/systemd/system/wg-quick@.service
的Environment=
中加上WG_QUICK_USERSPACE_IMPLEMENTATION=boringtun WG_SUDO=1
, 然后systemctl daemon-reload
结语
OpenVZ建议使用BoringTun,注意调整mtu(重要!),实测效果还是不错的。
Euserv免费IPv6 VPS 不同mtu值speedtest测试结果: