为IPv6 only的VPS添加IPv4

前言

之前介绍过用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.1APP,点击右上角三条横线的菜单按钮,打开账户,看到的按键就是所需要的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@.serviceEnvironment=中加上WG_QUICK_USERSPACE_IMPLEMENTATION=boringtun WG_SUDO=1, 然后systemctl daemon-reload

结语

OpenVZ建议使用BoringTun,注意调整mtu(重要!),实测效果还是不错的。

Euserv免费IPv6 VPS 不同mtu值speedtest测试结果:

为IPv6 only的VPS添加IPv4
1500
为IPv6 only的VPS添加IPv4
1420
为IPv6 only的VPS添加IPv4
1392
为IPv6 only的VPS添加IPv4
1280
实用教程

命令行查看IP地址

2022-1-10 11:54:05

实用教程

在cloudflare worker搭建ghproxy

2022-1-14 17:34:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索