MoeCEO

MoeCEO

优雅的使用 Cloudflare WARP

2024-05-31

WARP到底是啥

WARP官方介绍

Cloudflare WARP是由Cloudflare提供的一项网络安全服务,用于增强移动设备和计算机的在线隐私和安全性。WARP的目标是通过使用更安全的互联网连接来保护用户的网络流量,防止恶意活动和提供更快的互联网体验。

其具有一下特点:

  1. VPN服务:WARP充当虚拟专用网络(VPN),可为用户提供更加安全和私密的互联网连接。它可以加密用户设备和互联网之间的通信,使得恶意第三方难以截取用户的数据。

  2. 移动和桌面支持:WARP最初是作为移动应用推出的,支持iOS和Android平台。后来,Cloudflare还推出了WARP+,该服务提供更快的连接速度,并在2020年推出了WARP for Desktop,使用户可以在桌面计算机上享受相似的保护和性能优势。

  3. 免费和付费版:Cloudflare提供WARP的免费版本,以及WARP+的付费版本。WARP+通过使用Cloudflare的全球网络来加速用户的连接,提供更快的互联网体验。

  4. 安全性和隐私:Cloudflare声称不会记录用户的浏览历史或个人信息,以保护用户的隐私。此外,WARP采用了一些安全性措施,如DNS over HTTPS(DoH),以增加用户的在线安全性。

WARP的VPN服务介绍

VPN(虚拟专用网络)是一种通过公共网络在不安全的环境中创建私密连接的技术。它通过加密通信,隐藏用户的真实IP地址,使其在互联网上的活动更加安全和私密。VPN可用于访问受限制的内容、保护数据免受网络威胁,并在公共Wi-Fi等不安全网络上提供安全连接。企业和个人用户广泛使用VPN,以维护隐私、保护敏感信息,并实现远程访问和安全连接。

VPN协议WireGuard

WireGuard作为一种开源的VPN协议,其被广泛的应用与很多开源或商业的VPN服务中。如著名的Tailscale异地组网程序,其使用的就是WireGuard。

WireGuard更是因为其简洁的代码和快速连接建立、出色的性能和更简单的部署,而被加入到Linux内核当中。作为一种轻量、高效、安全且易于配置的现代VPN协议,其现在内核级别的地位可谓是非常出彩。

由于Cloudflare WARP是基于WireGuard开发的。那么,自然就可以通过某些手段得到使用Cloudflare WARP服务时的配置信息。从而脱离Cloudflare WARP的官方应用,使用开源第三方应用来进行连接。

Cloudflare尴尬境地

当然Cloudflare WARP的应用并非不能用,而是因为在特殊的环境下,并不好用。尤其是在很多人发现可以使用Cloudflare WARP进行匿名访问某些网站后。原本在内地就堪忧的Cloudflare节点,现在更加难以使用。甚至因为神秘力量的原因,在内地你已经无法通过官方应用进行账号登录。

Cloudflare的主营业务CDN服务可谓是世界知名。

CDN(内容分发网络)是一种用于提高网络性能和用户体验的技术。CDN通过将内容分发到全球多个服务器节点,使用户能够从距离更近的服务器获取网站的资源,从而减少加载时间和增强稳定性。这通过缓解网络拥塞、提高带宽利用率和减少延迟来实现。

因为Cloudflare的CDN即实惠又优质,所以很多人都选择使用它进行网站加速。然而随着各种灰色服务不断的加上了Cloudflare的CDN。这使得神秘力量对其实施了严格的网络审查和过滤,故而现在使用CloudflareCDN的网站经常出现网络中断或拥塞问题。如今的加速效果并不出色。(注:仅针对内地而言)

WARP配置获取

第三方网站在线获取

在这里是Misaka托管在replit上的三个生成脚本:

wgcf:https://replit.com/@misaka-blog/wgcf-profile-generator

warp-go:https://replit.com/@misaka-blog/warpgo-profile-generator

warp-go(sing-box):https://replit.com/@misaka-blog/warpgo-sbfile-generator

此网站在内地可以正常访问,并不是环大陆,这里以wgcf为例:

点击右上角的绿色按钮【▷RUN】,或者直接点击屏幕中间的【▷】按钮。

点击号后需要等待一会儿。如果访问此网站的IP不够纯净(如挂了代理使用的是机房服务器的IP等),会触发人机识别。

鼠标点击一下这个WebShell,不然是输入不了内容的。当【:】后显示的是■而不是□时,方可输入内容。

此时根据自己的情况选择输入内容,如果有开通了WARP服务的Cloudflare账号,且为【WARP+或者WARP Teams】的,选择输入2或者3。如果没有账号,请输入1,然后回车确认。

WARP+为高级账号,可以通过某些手段刷可用流量。也可以通过某些渠道买到账号。WARP+是有流量上限的。某些渠道是可以买到别人刷好的上PB流量的号。

WARP Teams为团队账号,可以使用PayPal或者全币种国际信用卡在Cloudflare上认证后升级。此方案没有流量限制,但是有用户上限。

虽然更推荐使用WARP Teams方案,但是考虑到很多人并没有Cloudflare的账号,甚至对这些CDN等等没有了解,所以我以方案1,免费账户为例。免费账户是有流量限制的,且稳定有效性得不到保证。发现不能用了,记得重新来一遍,再申请一个即可。

输入1回车确认后,可以看见回显了一堆东西。这里仅需要前面的WireGuard配置文件内容部分。将其复制下来保存一下,注意不要用【Ctrl+C】来复制。

拖动选取WireGuard配置文件内容部分,然后鼠标右键,选择【Copy】选项进行复制。然后找个TXT文件或者什么东西粘贴记录下来,后面会用到。

本地客户端获取

此处推荐的是【https://github.com/ViRb3/wgcf】

在写此文章时,下载到的是【wgcf_2.2.20_windows_amd64.exe】版本。根据自己的客户端系统架构选择适合的版本。

将其重命名为【wgcf.exe】方便后面输入命令。

在【wgcf.exe】所在的文件夹内,按住【Shift+鼠标右键】,选择【在此处打开PowerShell窗口】。

输入命令.\wgcf.exe register回车。

会询问是否确认,自然直接回车确认即可。

此时可以看见回显了一些东西。此时【wgcf.exe】的文件夹内已经生成了一个账号文件【wgcf-account.toml】。

此时还需要继续在【PowerShell】内执行命令.\wgcf.exe generate回车确认。

可以看见回显内容,已经成功生成了WireGuard配置文件【wgcf-profile.conf】在文件夹内。

用记事本或者其他编辑器打开,可以看到内容类似如下:

WARP节点优选

此处介绍一下关于WARP节点。前面已经讲解过Cloudflare的CDN情况。这些CDN节点的服务器遍布全球世界各地。Cloudflare有一个IP是【1.1.1.1】。Cloudflare将其用于了自家的DNS。用户直接访问这个IP会访问到其WARP的服务介绍页面。从这个IP就可以看出其强大之处。WARP的节点同样也是分布在全球各地的服务器。用户可以通过连接到最近的节点可以享受更快的数据传输速度和更佳的网络性能。使用官方的WARP应用时,官方会进行节点的分配。往往分配不到想要的节点。此时就需要节点优选了。

此处推荐的是【https://github.com/peanut996/CloudflareWarpSpeedTest】项目。

在Releases下根据自己的设备系统架构选择版本。此文章写时,选择的是【CloudflareWarpSpeedTest-v1.3.2-windows-arm64.zip】。

下载解压,直接双击运行文件夹内的【CloudflareWarpSpeedTest.exe】应用程序。等跑完测试后,可以看见文件夹内生成了一个表格文件【result.csv】。点开它,这里面保存了测试的结果情况。

第一列【IP:Port】是WARP节点的IP地址与端口、第二列【Loss】是丢包率、第三列【Latency】是延迟情况。

导入配置到客户端

由于都把WARP的WireGuard配置都导出来了,肯定是挑选一个好用的且支持WireGuard协议的客户端了。

nekoray

官方作者的仓库【https://github.com/MatsuriDayo/nekoray】

根据情况,此文写时选择了【nekoray-3.26-2023-12-09-windows64.zip】。下载解压,双击运行【nekoray.exe】应用程序。

打开【程序-首选项-基本设置】

点开菜单核心选项,确保核心选择的是【sing-box】

打开【程序-首选项-路由设置】

点开菜单简易路由选项,点击预设,选择【绕过局域网和大陆】

打开【服务器-手动输入配置】

在类型中选择【自定义(sing-box 出站)】

在JSON输入框内将以下内容填入:

{
    "interface_name": "WARP",
    "local_address": [
        "0.0.0.0/0",
        "::/0"
    ],
    "mtu": 1280,
    "peer_public_key": "",
    "private_key": "",
    "server": "",
    "server_port": ,
    "system_interface": false,
    "tag": "proxy",
    "type": "wireguard"
}

名称随便取一个,这里填个warp好了。如果后面想加多个节点,可以取一个warp1、warp2、warp3等等。

还记得之前导出并保存的WireGuard配置内容吗。打开它,这里以写此文章时生成的测试配置为例。

[Interface]
PrivateKey = GCSRkVS8Kfum2Vpfzwvn2qx0Cq6zwyqGLCYDSXv9u0w=
Address = 172.16.0.2/32
Address = 2606:4700:110:82ac:8eb0:99c:e7bf:eb9b/128
DNS = 1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, 2606:4700:4700::1001
MTU = 1280
[Peer]
PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
AllowedIPs = 0.0.0.0/0
AllowedIPs = ::/0
Endpoint = engage.cloudflareclient.com:2408

现在需要修改一些导出的WireGuard配置文件里面的数据。

将配置文件的【PrivateKey】字段内容复制粘贴到刚才nekoray的JSON编辑框内的【private_key】后;

将配置文件的【Address】字段内容复制粘贴到刚才nekoray的JSON编辑框内的【local_address】后;

将配置文件的【MTU】字段内容复制粘贴到刚才nekoray的JSON编辑框内的【mtu】后;

将配置文件的【PublicKey】字段内容复制粘贴到刚才nekoray的JSON编辑框内的【peer_public_key】后。

故此,根据案例可以得到新的JSON内容:

{
    "interface_name": "WARP",
    "local_address": [
        "172.16.0.2/32",
        "2606:4700:110:82ac:8eb0:99c:e7bf:eb9b/128"
    ],
    "mtu": 1280,
    "peer_public_key": "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=",
    "private_key": "GCSRkVS8Kfum2Vpfzwvn2qx0Cq6zwyqGLCYDSXv9u0w=",
    "server": "",
    "server_port": ,
    "system_interface": false,
    "tag": "proxy",
    "type": "wireguard"
}

还记得之前节点优选时生成的csv数据文件吗。打开它,挑选最上面的一些节点。此处我仅选择一个。

根据写文章时的测试结果,选择了表格第一行的数据【162.159.195.117:987】,将它填入刚才新写好的JSON内容中。

这时就得到了最终的JSON结果:

{
    "interface_name": "WARP",
    "local_address": [
        "172.16.0.2/32",
        "2606:4700:110:82ac:8eb0:99c:e7bf:eb9b/128"
    ],
    "mtu": 1280,
    "peer_public_key": "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=",
    "private_key": "GCSRkVS8Kfum2Vpfzwvn2qx0Cq6zwyqGLCYDSXv9u0w=",
    "server": "162.159.195.117",
    "server_port": 987,
    "system_interface": false,
    "tag": "proxy",
    "type": "wireguard"
}

最终的nekoray节点配置信息如下:

确认一下。可以看到列表中已经有了这个节点的存在。

点击选中它,回车将其设为活动节点。当然也可以点击选中节点,右键菜单选择启动,从而将其设置为活动节点。

我们可以看到软件下方的日志已经有回显信息了。

看到了INFO[0000] sing-box started (0.166s)代表着核心已经启动。

软件底部的【Mixed】可以用于调用的本地代理端口。很多软件的设置中都有代理设置选项,如SOCKS与HTTP两种。打开【程序-首选项-基本设置】,可以看到关于这个【Mixed】的设置情况。

在软件的主页菜单栏,也可以看到有系统代理的选择。

在电脑任务栏中nekoray软件图标右键菜单栏也可以看到关于系统设置开关、节点切换等等选项。

启动系统代理,固然方便,系统所有网络访问全部走代理。记得用完关机前关闭系统代理选项,不然下次启动电脑,nekoray没启动的时候,系统会发现之前的系统代理连接不上,这会导致系统程序无法上网。(后续版本无需此步骤,但最好有这个习惯。)

日常使用并不推荐直接使用系统代理,通过SOCKS与HTTP连接代理软件(nekoray等)进行代理联网更加便捷。

这里以Firefox火狐浏览器为例。打开设置,拉到最底下。

nekoray_22.png

可以看到网络设置,点击设置按钮。

nekoray_23.png

选择手动配置代理,端口设置等如上所示。设置内容和nekoray中的Mixed(SOCKS/HTTP)部分相同。

这意味着,在火狐浏览器打开的网页,发送的网络请求会通过配置的代理设置传送给nekoray。nekoray收到火狐浏览器的网络请求后会再发送给warp节点完成代理。

节点不好用了怎么办?自然是多加几个,换着用。实在不行,重新跑一次优选,再拿一批新的最优节点。

再添加一个节点。重新打开一次【服务器-手动输入配置】。

这次换一个名字,如warp2。按照前面的教程,把优选结果的csv数据表格的第二行节点IP与端口的结果复制到JSON中。拿之前已经创建好的那个节点的JSON内容改一下【server】与【server_port】字段内容即可。

nekoray_24.png
将新节点填好后,进行确认。此时就多了一个节点。

nekoray_25.png

诸如此类,可以跑一次优选,加许多个节点到nekoray当中。

其实可以在软件主页,选中第一次创建的节点,右键选择克隆,这样就会创建一个一模一样的节点配置。仅需改一下名字、服务器、端口即可。

NekoBoxForAndroid

对于手机移动端,同样推荐nekoray(其实就是nekobox)的作者开发的软件【https://github.com/MatsuriDayo/NekoBoxForAndroid】

在移动端上,写此文章时,此应用和【sing-box】核心官方应用比起来更加好用。

在上面的教程中获取WARP的WireGuard配置获取非常麻烦。NekoBoxForAndroid则完全没有相关烦恼,因为其自带了WARP的WireGuard配置生成工具。虽然是免费的,没有WARP Teams的优势,但总胜过没有。而且在软件中,配置获取是一键式的。后续仅需要改一下服务器的IP与端口为优选好的节点即可。

安装好软件后,打开应用。

NekoBoxForAndroid_1.jpg

然后点击左上角的菜单栏按钮

NekoBoxForAndroid_2.jpg

在这里和nekoray一样,需要先进行一些操作。点击菜单栏的工具选项进入以下界面

NekoBoxForAndroid_3.jpg

在工具里面可以看到Cloudflare Warp的一个生成工具。点击生成配置,它会自动进行生成一个免费的Warp对应WireGuard的配置。

NekoBoxForAndroid_4.jpg

生成完成后会自动跳转主界面。在这里可以看到生成的信息。

NekoBoxForAndroid_5.jpg

点击生成节点的右侧编辑按钮,现在还不能使用,还需要和前面nekoray一样修改一下。

NekoBoxForAndroid_6.jpg

配置名称太长了,简单改改,这样看起来会舒服一些。

NekoBoxForAndroid_7.jpg

在这里面仅需修改服务器和端口两个设置。填入的内容和nekoray一样,把优选的结果挑一个填里面即可。填完右上角的【√】确认按钮点一下,将配置保存。

需要注意的是,优选结果仅是对优选的时候那台设备所处的网络环境进行测试得出的,所以并非拿来就可以直接用的。如果需要使用,请一定要自己在需要使用warp的环境下跑一下优选测试,得到自己网络环境的最优结果,从而拿来使用。

保存完,进入软件主界面后,再次打开菜单栏,这会点击设置选项。

NekoBoxForAndroid_2.jpg

进入设置界面,有很多东西可以设置,如果有相关知识的,看起来并不难,和许多代理软件(如同样是Android端的V2rayNG)很相似。

NekoBoxForAndroid_8.jpg

这里,其他的非特殊需求一般都不用管,直接来到下面的路由设置版块。直奔重要的设置。

NekoBoxForAndroid_9.jpg

可以看到【分应用代理】的设置选项。此处在V2Ray中的配置同理。

NekoBoxForAndroid_10.jpg

默认是关闭的,点击进入设置,将顶部选择栏切换到【代理】,然后在搜索框内搜索自己需要走代理的应用,将其右边的选项切换到开启。

完成后,返回软件主界面。选中节点,节点前面会出现粉色提示条,然后再点击底部的飞机按钮,即可开始遨游网络。

NekoBoxForAndroid_11.jpg

如果想多加几个节点,和nekoray一样,完全不成问题,仅需修改节点的服务器设置和端口即可。

点击节点右侧的分享按钮,导出一下已经创建好的这个warp配置信息。选择【导出到剪贴板-SN Link】进行导出。

然后再点击主页右上角的配置文件添加选项。选择【从剪贴板导入】选项即可。

此时就可以看到多了一个一模一样的节点,编辑新节点,改成另外一个优选的结果即可。为了便于区分,名字也可以改一下。