前言
CloudFlare WARP是CF提供的基于WireGuard的安全VPN通道,但是我们在服务器上用时就能使用它来给我们IPV4 Only或IPV6 Only的VPS添加IPV6/4出口,但是因为WARP提供的IP并不是独立的公网IP,并不能用于VPS入口,所以就别想用WARP的IP来给国内的设备科学上网了;虽然不能用在国内的设备连接上,但是我们还是可以用来给服务器添加IPV4/6支持,用于服务器访问IPV6/4的网站或者解锁流媒体啥的(WARP 对外访问网络的出口 IP 被很多网站视为真实用户)。
安装WireGuard
这里用Ubuntu做说明,其他系统可以根据官方文档来安装。
直接在服务器上运行apt install
就能完成安装了
sudo apt install wireguard
sudo apt install openresolv
配置WireGuard
这里使用wgcf来创建WARP账号并生成WireGuard配置文件
首先安装wgcf
curl -fsSL git.io/wgcf.sh | sudo bash
然后注册WARP账户(将在当前目录生成wgcf-account.toml
,用于保存账户信息)
wgcf register
生成WireGuard配置文件(将在当前目录生成wgcf-profile.conf
)
wgcf generate
两个文件都可以备份一下,之后服务器重装之后可以再次使用
然后输入下面的命令查看engage.cloudflareclient.com解析的IP
nslookup engage.cloudflareclient.com
一般来说上面的域名解析的地址都是162.159.192.1
和2606:4700:d0::a29f:c001
,把结果复制一下,之后会用到。
几种配置方法
IPV4 Only添加IPV6地址
将wgcf-profile.conf
中的 engage.cloudflareclient.com
替换为 162.159.192.1
,并删除 AllowedIPs = 0.0.0.0/0
;然后将DNS = 1.1.1.1
删去或改成DNS = 8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844
(因为WARP使用的1.1.1.1 DNS虽然延迟很低但是解析的结果不尽人意所以需要改一下DNS),完成之后的配置文件如下
[Interface]
PrivateKey = xxxxxxxxxxxxxxx
Address = xxxxxx
Address = xxxxxx
DNS = 8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844
MTU = 1280
[Peer]
PublicKey = xxxxxxxxxxxxxxx
AllowedIPs = ::/0
Endpoint = 162.159.192.1:2408
IPV6 Only添加IPV4地址
将wgcf-profile.conf
中的 engage.cloudflareclient.com
替换为 [2606:4700:d0::a29f:c001]
,并删除 AllowedIPs = ::/0
;然后将DNS = 1.1.1.1
删去或改成DNS = 2001:4860:4860::8888,2001:4860:4860::8844,8.8.8.8,8.8.4.4
(因为WARP使用的1.1.1.1 DNS虽然延迟很低但是解析的结果不尽人意所以需要改一下DNS),完成之后的配置文件如下
[Interface]
PrivateKey = xxxxxxxxxxxxxxx
Address = xxxxxx
Address = xxxxxx
DNS = 2001:4860:4860::8888,2001:4860:4860::8844,8.8.8.8,8.8.4.4
MTU = 1280
[Peer]
PublicKey = xxxxxxxxxxxxxxx
AllowedIPs = 0.0.0.0/0
Endpoint = [2606:4700:d0::a29f:c001]:2408
启用配置
把wgcf-profile.conf
复制到/etc/wireguard/
中,并重命名为wgcf.conf
sudo cp wgcf-profile.conf /etc/wireguard/wgcf.conf
测试配置文件是否正常(命令中的wgcf
对应了wgcf.conf
)
sudo wg-quick up wgcf
正常的话应该显示下面的提示
然后输入ip a
,看看能不能看到名为wgcf
的网络接口
然后再测试一下连通性
curl -6 google.com
如果有东西返回的话那就说明没问题了
然后关闭连接,改用systemd启动服务并添加自启
sudo wg-quick down wgcf
sudo systemctl start wg-quick@wgcf
sudo systemctl enable wg-quick@wgcf