PEANUT996

Cloudflare WARP提取WireGuard配置文件

· Peanuts

简介

Cloudflare WARP是一种虚拟私人网络(VPN)服务,建立在Cloudflare的全球网络基础设施之上。它旨在为移动设备和计算机提供更安全的连接,以保护用户的隐私和数据,并加速和优化互联网流量。WARP使用的是WireGuard协议,所以也可以将其配置文件导出,并在其他支持该协议的代理工具中使用(如Clash, ShadowRocket等)。本文将介绍如何提取配置文件,寻找可用的接入点,并将其导入到其他代理工具中。

准备材料

  • WARP+ / Teams 账户 (可选)

提取配置文件

在线平台提取(推荐)

以下是两个部署在replit平台上的在线执行脚本,可直接执行:

脚本提供三种不同的WARP账户类型,WARP免费账户、WARP+账户(需要License Key)以及Teams账户,如果不清楚请直接选择免费账户即可

选择账号类型 输入对应的选项并按下回车,接下来等待片刻后会输出对应的配置文件信息:


[Interface]

PrivateKey = KGXJzEsWdIZe5onnbmXOC+F1FxEMF9dyiK2H5/1weo=
Address = 172.16.0.2/32
Address = 2606:4700:110:8a19:9766:c297:c5b1:aac0/128
DNS = 1.1.1.1
MTU = 1280

  

[Peer]

PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
AllowedIPs = 0.0.0.0/0
AllowedIPs = ::/0
Endpoint = engage.cloudflareclient.com:2408

这样配置文件就提取完成了,但是需要注意的是这时默认的Endpoint无法成功连接,仍然需要手动寻找可用的IP。

获取优选IP

https://github.com/peanut996/CloudflareWarpSpeedTest

该工具基于CloudflareSpeedTest改造而来,在测速部分,将原来默认的TCP测速改为了wireguard的握手包测速,并基于RTT的时长进行排序,最终就得到了这个工具。

在测速前需要关闭所有的代理工具和VPN,避免测速结果的不准确。下载后解压,找到对应操作平台对应的可执行文件直接运行(unix系统下需要赋予正确的权限),就会生成一个 result.csv , 内容是按照从小到大排序的ip+端口,选择第一个作为endpoint即可。

代理工具配置

除去官方推出的GUI客户端外,现在也有部分的代理工具已经支持wireguard的使用,比如Clash、ShadowRocket等,下面就简单介绍如何将得到的配置文件导入代理工具中.

WireGuard官方客户端

官方维护了常见操作系统的客户端的直接下载链接,包括Windows、MacOS、Linux以及移动端平台。工具简洁,且操作几乎一致,这里直接以MacOS平台下演示为主:

MacOS可直接从AppStore下载安装,打开应用后,点击左下方的 + 号后选择 Add Empty Tunnel ,这里填入已经修改好的配置即可(需要覆盖默认生成的公私钥):

wireguard-client

点击 Save 保存配置文件,之后点击Activate 连接即可。

需要注意的是这份配置文件会默认转发所有的请求,如果需要修改则需要改动 AllowedIPs ,格式为以逗号分隔的包含CIDR掩码的IP地址列表

Clash

Clash Core最新版本现在已经支持了WireGuard,但并不是所有的Clash的GUI客户端使用的内核都使用的是最新版本内核。 常见的Clash客户端对于WireGuard支持如下:

  • ✔️ Clash For Windows
  • ❌ Clash For Android
  • ✔️ Clash X Pro
  • ❌ Clash X

需要注意的是Clash允许直接调用内核态WireGuard的接口,也允许用户态使用WireGuard(基于wireguard-go实现),使用效率就会有所差别,这里只展示用户态的配置示例:

proxies:
  - name: "WARP+"
    type: wireguard
    server: 162.159.195.20
    port: 945
    ip: "172.16.0.2"
    ipv6: "2606:4700:110:8bc9:6cdc:8147:ee76:c3d5"
    private-key: "KGXJzEsWdIZe5onnbmXOC+F1FxEMF9dyiK2H5/1weo=" 
    public-key: "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo="   
    udp: true        
    mtu: 1280
    dialer-proxy: "dns"
    remote-dns-resolve: true 
    dns: [ 1.1.1.1, 8.8.8.8 ]

上面的配置文件只展示WireGuard的节点配置,完整配置可参考Clash配置文件

ShadowRocket

iOS的ShadowRocket也已经支持了WireGuard,但是经过测试,在小火箭中使用wg的速度出奇的慢,唯一的优点可能也就是支持分流,但是这点Clash会比小火箭做的更好,所以放在这里只是供参考使用,并不推荐(甚至不如去使用官方的WARP App)

导入方法:点击右上角 + 按钮,选择类型-WireGuard,接下来输入对应的地址、端口、公钥、私钥、子网IP,勾选上UDP转发,保存即可。

shadowrocket-config.png

sing-box

    {
      "server": "162.159.192.12",
      "server_port": 1701,
      "tag": "WARP+",
      "type": "wireguard",
      "local_address": [
        "172.16.0.2/32"
      ],
      "private_key": "KGXJzEsWdIZe5onnbmXOC+F1FxEMF9dyiK2H5/1weo=",
      "peer_public_key": "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=",
      "mtu": 1280
    },

详细配置参见官方文档

附件

1️⃣ Clash配置文件

2️⃣ ShadowRocket配置(二维码)