515 字
3 分钟
用 Cloudflare Warp 彻底解决 Google IP 定位中国的问题
本文方法来源于 用 Cloudflare Warp 彻底解决 Google IP 定位中国的问题
此方法适用于在海外落地机上自动分流 Google 流量。
原理:通过 Google 提供的 IP 段列表,自动生成指向 Warp 接口的静态路由表,然后用 BIRD 注入到内核中。
建立 Warp VPN
通过 https://github.com/ViRb3/wgcf 创建一个 WireGuard 接口配置,假设名为 wgcf。 复制生成的 wgcf.conf 到 /etc/wireguard 目录下 修改 wgcf.conf,将自动路由表禁用,因为我们后面要手动添加静态路由。这一步是防止所有流量都走 Warp 的关键:
[Interface]PrivateKey = xxxxxxxxxxAddress = 172.16.0.2/32Address = fd01:xxxx/128DNS = 1.1.1.1MTU = 1280Table = off
[Peer]PublicKey = xxxxxxxxxxAllowedIPs = 0.0.0.0/0AllowedIPs = ::/0Endpoint = engage.cloudflareclient.com:2408安装 Wiregard
安装依赖:
apt-get install sudo net-tools openresolv -y安装主程序,Debian 需要添加 unstable 源,Ubuntu 则只需要添加库即可:
#Debian 添加 unstable 源echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable-wireguard.listprintf 'Package: *\nPin: release a=unstable\nPin-Priority: 150\n' > /etc/apt/preferences.d/limit-unstable
#更新源并安装apt-get updateapt-get install wireguard-dkms wireguard-tools
#Ubuntu 添加库add-apt-repository ppa:wireguard/wireguard
#更新源并安装apt-get updateapt-get install wireguard添加服务并设置 Wiregard 开机自启
#允许配置文件为 wgcf 的开机自启systemctl enable wg-quick@wgcf.service#重载 deamon 配置systemctl daemon-reload#启动 wgcf 配置文件的进程systemctl start wg-quick@wgcfBird 配置
安装 BIRD,编辑 /etc/bird/bird.conf,添加:
protocol static google { include "routes4-google.conf";}同理,编辑 /etc/bird/bird6.conf,添加:
protocol static google { include "routes6-google.conf";}编辑 kernel 项配置开启 export all 选项:
protocol kernel { scan time 60; import none; export all; # Actually insert routes into the kernel routing table}并且开启 bird 和 bird6 自动启动。
通过以下脚本生成 Google 服务 IPv4 和 IPv6 路由表(如果 WireGuard 接口名字不是 wgcf 则相应修改,需要安装 jq):
#!/bin/bash
curl -O https://www.gstatic.com/ipranges/goog.json
jq '.prefixes[].ipv4Prefix | select(.!=null)' < goog.json | sed 's/"//g' | sed 's/^/route /g' | sed 's/$/ via "wgcf";/g' > /etc/bird/routes4-google.confjq '.prefixes[].ipv6Prefix | select(.!=null)' < goog.json | sed 's/"//g' | sed 's/^/route /g' | sed 's/$/ via "wgcf";/g' > /etc/bird/routes6-google.conf
rm goog.json
sudo /usr/sbin/birdc configuresudo /usr/sbin/birdc6 configure创建一个 crontab,每周自动执行一次上面的脚本,更新 Google IP 段和 reload BIRD:
0 0 * * 0 /path/to/google.sh 用 Cloudflare Warp 彻底解决 Google IP 定位中国的问题
https://blog.alfakyun.icu/posts/用-cloudflare-warp-彻底解决-google-ip-定位中国的问题/