前言

现在纯 IPv6、nat IPv4 VPS 越来越多了,于是有人发现可以用 warp 解锁 Netflix、解决 Google 送中问题,但是大多数教程和一键脚本都是用 wgcf 来实现的。其实 wgcf 有相对不低的延迟,大部分情况下使用这种方案会造成打开网页缓慢的问题。因此我们可以利用 warp 官方客户端来提供 socks5 给别的软件分流使用。

安装

Debian 11 为例:

首先,安装存储库的 GPG 密钥:

1
2
apt install sudo gpg
curl https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg

然后添加存储库:

1
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ bullseye main' | sudo tee /etc/apt/sources.list.d/cloudflare-client.list

更新 APT 缓存:

1
sudo apt update

安装 Cloudflare WARP

1
sudo apt install cloudflare-warp

使用

注册一个 warp 账号:

1
warp-cli register

如果想要使用已经有的账号则可以指定 license (1.1.1.1 app 右上角 - 账户 - 按键),可以通过邀请新用户的方式为账号添加 warp + 高级流量,也可以通过脚本刷流量,点击前往教程

1
warp-cli set-license <key>  //将<key>替换为你的license

修改 warp-cli 运行模式:

1
warp-cli set-mode proxy

设置监听端口:

1
warp-cli set-proxy-port 10086

连接:

1
warp-cli connect

查看当前 warp 的 IP:

1
curl -4 ip.gs -x socks5://127.0.0.1:10086

然后我们就可以将其他软件需要分流的流量转发到 10086 端口了。

Xray/V2Ray 为例:

在配置文件中的添加 outbounds

1
2
3
4
5
6
7
8
9
10
{
"protocol": "socks",
"settings": {
"servers": [{
"address": "127.0.0.1",
"port": 10086
}]
},
"tag": "warp"
}

在路由 routing 中加入:

1
2
3
4
5
6
7
{
"type": "field",
"outboundTag": "warp",
"domain": [
"geosite:netflix"
]
}

然后重启即可:

1
systemctl restart xray.service

测试无误之后便可以设置 warp-cli 长期运行:

1
warp-cli enable-always-on

结语

这种方案相较于目前流行的 wireguard 方案的优势就是可以只分流需要分流的流量,其他无论什么流量都不会受到影响。

另外 wireguard 的方案会造成 docker 的 bridge 模式无法使用,这种方案可以完美解决。

参考链接

  1. Announcing WARP for Linux and Proxy Mode
  2. Cloudflare Package Repository

xray的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
{
"outbounds":[
{
"protocol":"freedom"
},
{
"tag":"warp",
"protocol":"socks",
"settings":{
"servers":[
{
"address":"127.0.0.1",
"port":40000
}
]
}
},
{
"tag":"WARP-socks5-v4",
"protocol":"freedom",
"settings":{
"domainStrategy":"UseIPv4"
},
"proxySettings":{
"tag":"warp"
}
},
{
"tag":"WARP-socks5-v6",
"protocol":"freedom",
"settings":{
"domainStrategy":"UseIPv6"
},
"proxySettings":{
"tag":"warp"
}
}
],
"routing":{
"rules":[
{
"type":"field",
"domain":[
"geosite:openai",
"ip.gs"
],
"outboundTag":"WARP-socks5-v4"
},
{
"type":"field",
"domain":[
"geosite:google",
"geosite:netflix",
"p3terx.com"
],
"outboundTag":"WARP-socks5-v6"
}
]
}
}

原配置备份

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
{
"api": {
"services": [
"HandlerService",
"LoggerService",
"StatsService"
],
"tag": "api"
},
"inbounds": [
{
"listen": "127.0.0.1",
"port": 62789,
"protocol": "dokodemo-door",
"settings": {
"address": "127.0.0.1"
},
"tag": "api"
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
},
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}
],
"policy": {
"system": {
"statsInboundDownlink": true,
"statsInboundUplink": true
}
},
"routing": {
"rules": [
{
"inboundTag": [
"api"
],
"outboundTag": "api",
"type": "field"
},
{
"ip": [
"geoip:private"
],
"outboundTag": "blocked",
"type": "field"
},
{
"outboundTag": "blocked",
"protocol": [
"bittorrent"
],
"type": "field"
}
]
},
"stats": {}
}