记录一些常用的函数和瞎折腾的过程……

配置WARP的网络接口

提醒:本文最后更新于 545 天前,文中所描述的信息可能已发生改变,请谨慎使用。

安装好Cloudflare WARP后,会默认有一个网络接口配置文件,但根据实际使用情况,我们需要进行相关的修改,才能正常使用。

一、双栈支持、IPv4 Only、IPv6 Only三种配置:

1、双栈支持,同时使用WARP的IPv4和IPv6:

默认生成的配置文件是:

[Interface]
PrivateKey = 4G091rYfBKaX+RyeY/7bhmwDzy1fEt22eocVKmfmVn4=
Address = 172.16.0.2/32
Address = fc01:5ca2:ab1e:8bb7:df2b:4a9b:e21b:d9b/128
DNS = 1.1.1.1
MTU = 1280
[Peer]
PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SAtuH0JuVo59h2wPfgyo=
AllowedIPs = 0.0.0.0/0
AllowedIPs = ::/0
Endpoint = engage.cloudflareclient.com:2408

这个配置同时启用IPv4和IPv6,也就是说是双栈支持。由于默认的配置文件没有外部对VPS本机IP网络访问的相关路由规则,一旦直接使用的话VPS就会直接失联,所以我们还需要对配置文件进行修改。路由规则需要添加在配置文件的 [Interface]后面:

[Interface]
PrivateKey = EGivoEIxxkYpSkWT9Q1f9OkoiLl22QYlYu+1l7su6UE=
Address = 172.16.0.2/32
Address = fd01:5ca8:ab1e:8ea4:d426:12b4:c1f3:d23/128
DNS = 1.1.1.1
MTU = 1280
PostUp = ip -4 rule add from <替换IPv4地址> lookup main
PostDown = ip -4 rule delete from <替换IPv4地址> lookup main
PostUp = ip -6 rule add from <替换IPv6地址> lookup main
PostDown = ip -6 rule delete from <替换IPv6地址> lookup main
[Peer]
PublicKey = bmXOC+F1FxEMF9d5dPPH5/1SUtzH0JuVo8Rh2wPfgyo=
AllowedIPs = 0.0.0.0/0
AllowedIPs = ::/0
Endpoint = engage.cloudflareclient.com:2408

2、IPv4 Only启用IPv6支持:

如果你的服务器只有一个仅有的ipv4(IPv4 Only),机器要启用IPv6,则配置是这样的,在[Peer]中去掉IPv4的配置:

[Interface]
PrivateKey = KLlRB0oI22XrRKAvbz34ZzO9Vfwwm7tvPfY3Td0qKUQ=
Address = 172.16.0.2/32
Address = fd01:5ca1:ab2e:19af:12ff:3246:9dc1:4ba9/128
DNS = 9.9.9.9,8.8.8.8,1.1.1.1
MTU = 1420
[Peer]
PublicKey = bmXOC+F1FxKp9dyiK2H5/1SeSzH0Ju76D1h2wPfgyo=
AllowedIPs = ::/0
Endpoint = 162.159.192.1:2408

3、IPv6 Only启用IPv4支持:

如果你的服务器只有一个仅有的IPv6(IPv6 Only),机器要启用IPv4,则配置是这样的,在[Peer]中去掉IPv6的配置:

[Interface]
PrivateKey = SLlRB0oI11XrRKATbzLfSzO9Vfwwk7tv9U43Td9qKUQ=
Address = 172.16.0.2/32
Address = fd01:5ca1:ab1e:81af:22ff:3676:8dc2:4ba9/128
DNS = 9.9.9.9,8.8.8.8,1.1.1.1
MTU = 1420
[Peer]
PublicKey = bmXOC+F1FxEMF9dyi56sH5/1SUtzHiUuVo51h2wPfgyo=
AllowedIPs = 0.0.0.0/0
Endpoint = 162.159.192.1:2408

二、IPv4与IPv6网络优先级设置:

配置好WARP,我们需要的情况是样的:IPv4 Only服务器优先通过新增的WARP IPv6网络去访问外部网络;IPv6 Only服务器优先通过原来的IPv6网络去访问外部网络。

但实际的情况有可能是:IPv4 Only服务器优先通过原来的IPv4网络去访问外部网络;IPv6 Only服务器优先通过原来的IPv6网络去访问外部网络。

遇到此咱情况,我们可以根据实际的需求就要手动去设置优先级。

1、设置IPv4优先:

编辑“/etc/gai.conf”文件,在末尾添加下面这行配置:

precedence ::ffff:0:0/96 100

2、设置IPv6优先:

编辑“/etc/gai.conf”文件,在末尾添加下面这行配置:

label 2002::/16 2

3、验证优先级:

执行 curl ip.p3terx.com 命令,显示IPv4地址则代表IPv4优先,否则为IPv6优先。

$ curl ip.p3terx.com
2a09:bac1:22::824:6190
GB / United Kingdom
AS13335 / CLOUDFLARENET

三、利用WARP实现简单的分流应用:

如果在Only IPv4的服务器上安装了WARP,可以使用IPv6来进行分流,举个例子:

"outbounds":[
    {
      "tag":"IP4_out",
      "protocol":"freedom",
      "settings":{
        "domainStrategy":"UseIPv4"
      }
    },
    {
      "tag":"IP6_out",
      "protocol":"freedom",
      "settings":{
        "domainStrategy":"UseIPv6"
      }
    }
  ],
"routing":{
    "rules":[
      {
        "type":"field",
        "outboundTag":"IP6_out",
        "domain":[
          "geosite:google"
        ]
      },
      {
        "type":"field",
        "outboundTag":"IP4_out",
        "network":"udp,tcp"
      }
    ]
  }