使用Cloudflare Warp为IPv6 only的机器添加IPv4

随着全球IPv4资源的枯竭,VPS商家衍生了一种新的IPv6 only VPS,由于不占用商家的IPv4资源,因此可以压低价格。然而,VPS上面如果希望运行一些服务,那么势必需要IPv4的接入,我们可以通过Cloudflare的CDN让只有IPv4的用户访问,但如果机器需要访问如Github等,只有IPv4的网站该怎么办呢?一些大佬想到了使用Cloudflare的Warp服务来实现,本文介绍自己在配置的成功方案。

STEP 1. 安装Wireguard

执行uname -a查看内核,内核版本5+可以使用wireguard-tools, 否则请使用 wireguard-go

确认内核版本后,如果选择升级至5+,请执行:

sudo apt -t $(lsb_release -sc)-backports install linux-image-$(dpkg --print-architecture) linux-headers-$(dpkg --print-architecture) --install-recommends -y

内核在5+后,执行下列命令,安装Wireguard:

sudo apt install net-tools resolvconf -y
sudo apt install wireguard-tools --no-install-recommends
# If can't find `wiregurad-tools`, execute this and retry
echo "deb http://deb.debian.org/debian $(lsb_release -sc)-backports main" | sudo tee /etc/apt/sources.list.d/backports.list

STEP 2. 安装第三方工具wgcf

wgcf is an unofficial, cross-platform CLI for Cloudflare Warp

wgcf 自动安装

执行命令,下载wgcf工具:

curl -fsSL git.io/wgcf.sh | sudo bash

wgcf 手工安装

如果服务器起始状态就没有IPv4,那么访问git.io也是不可能的,我这里提供一个v2.2.10版本的文件给大家临时使用

wget -O /usr/local/bin/wgcf "https://cdn.arc-light.fun/pg2Edc/wgcf_2.2.10_linux_amd64"
chmod -x /usr/local/bin/wgcf

开始使用

完成后,首先进行注册:

wgcf register

过程中需要同意Cloudflare Warp协议,选择“Yes”,

成功生成后,再执行:

wgcf generate

执行成功,会在当前目录生成一个wgcf.conf,我们将它复制到Wireguard目录下:

cp wgcf.conf /etc/wireguard/wgcf.conf

STEP 3. 修改wgcf.conf

编辑wgcf.conf文件,使其与下面的例子相似:

[Interface]
PrivateKey = YOUR_GENERATED_KEY_HERE
Address = *.*.*.*/32
#Address = *:*:*:*:*:*:*:*/128
DNS = 2001:4860:4860::8888
MTU = 1280
PostUp = ip -6 rule add from [ipv6 addr] lookup main
PostDown = ip -6 rule delete from [ipv6 addr] lookup main
[Peer]
PublicKey = YOUR_GENERATED_KEY_HERE
AllowedIPs = 0.0.0.0/0
#AllowedIPs = ::/0
Endpoint = [2606:4700:d0::a29f:c001]:2408

2001:4860:4860::8888 可以替换为 Google DNS 或 Cloudflare 的IPv6 DNS服务器。

STEP 4. 利用Crontab让Wireguard与ssh服务按顺序启动

如果启用了Wireguard的自启动,ssh服务就不能正常开启,因此,使用crontab,增加重启时自动启动Wireguard和SSH

crontab -e

增加以下配置:

@reboot mkdir -p -m0755 /run/sshd
@reboot systemctl start wg-quick@wgcf # wgcf是配置文件的名称
@reboot /etc/init.d/ssh start

Finish

重启,之后我们可以测试一下能否ping通Github,如果能ping通,意味着Warp配置成功,服务器能够正常访问IPv4 only的地址。

使用Cloudflare Warp为IPv6 only的机器添加IPv4
本文作者
spark1e
发布于
2021-05-06
许可协议
转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!
评论区 - Powered by Giscus