WireGuard 无法连接 WARP 网络

由于部分用户的滥用行为,北京时间 2022 年 3 月 3 日晚间 Cloudflare 对所有的非官方方式(WireGuard)连接 WARP 网络的用户进行了限制,后续大部分地区已解除限制。目前官方对部分滥用严重的地区已采取长期限制措施。

主要受限地区:

  • 中国香港

已知滥用行为:

  • 频繁使用第三方工具申请 WARP 账户
  • 频繁通过 WARP 隧道测速
  • 通过无限重连的方式刷 Netflix 解锁 IP
  • 通过非正常方式获取 WARP+ 流量

博主通过业内相关人士了解到,由于目前滥用行为已严重的影响 WARP 网络的稳定性,Cloudflare 正考虑未来采取拉黑 IP 、封禁相关账号等一些列措施,如果以上方式无法得到有效的作用,那么最坏的结果是和之前一样禁止所有非官方连接方式。

常规解决方法:

  • 对于已经部署 WARP WireGuard 双栈网络的小伙伴:官方采取限制措施时 WARP 网络可能会处于不可用状态,执行systemctl disable wg-quick@wgcf --now命令完全禁用 WARP WireGuard 服务即可恢复原有网络。
  • 对于还想继续使用 WARP 或者部署失败的小伙伴:执行bash <(curl -fsSL git.io/warp.sh) s5使用 WARP 官方客户端,通过 SOCKS5 的方式连接至 WARP 网络。

进阶解决方法(仅思路):

  • 对 WARP 官方客户端进行抓包分析,模拟官方客户端的行为。比如编译专用版 wireguard-go、使用 iptables 对 WireGuard 数据包进行修改。

Docker 无法正常使用

WARP WireGuard 双栈全局网络可能会导致 Docker 服务在 Bridge 网络模式下无法通过 IP 直接访问,初步猜测是 Docker 的防火墙或者路由配置与现有 WARP WireGuard 路由配置的冲突的导致。

解决方法:

  • 方法一:相关应用改用 Host 网络模式,或者用宿主机的 Nginx 反代相关应用的端口(Host 网络模式的 Docker Nginx 也行)。
  • 方案二:改用 WARP 官方客户端 SOCKS5 端口访问 WARP 网络。
  • 方法三:对路由表进行修改。如果非要让 WARP WireGuard 双栈全局网络和 Docker Bridge 网络模式兼容理论上只有修改路由表这一条路,不过由于博主最近工作繁忙,没有精力去研究(太菜了),暂时搁置。欢迎精通相关知识的大佬分享,博主在这里先代表广大 WARP 脚本用户先表示感谢了。