利用手上的Cloudflare WARP+ 给服务器额外添加“原生”IPv4/IPv6 网络(解锁Netflix和Google验证码)
WARP 是 Cloudflare 提供的一项基于 WireGuard 的网络流量安全及加速服务,能够让你通过连接到 Cloudflare 的边缘节点实现隐私保护及链路优化。之前有很多小伙伴拿来当做某科学的上网工具来使用,应该很熟悉了。不过由于 WireGuard 数据传输使用的 UDP 协议,中国大陆运营商会对其进行 QoS ,加上多数 IP 被封锁,现在可以说几乎处于不可用的状态了。而对于自由网络的地区来说没有这些限制,加上有国外开发者制作的工具可以生成通用的 WireGuard 配置文件,这使得我们可以在海外 VPS 上部署并获得如下效果加成:
WARP 网络出入口均为双栈 (IPv4/IPv6),因此单栈服务器可以连接到 WARP 来获取额外的网络连通性支持:
- IPv6 Only VPS 可获得 IPv4 网络的访问能,不再局限于 DNS64 的束缚,能自定义任意 DNS 解析服务器。对使用某科学的上网工具有奇效。
- IPv4 Only VPS 可获得 IPv6 网络的访问能力,可作为 IPv6 Only VPS 的 SSH 跳板。此外 WARP 的 IPv6 网络的质量比 HE IPv6 Tunnel Broker 甚至自带的都要好,很少绕路。
WARP 对外访问网络的 IP 被很多网站视为真实用户,即所谓的 “原生” IP,可以解除某些网站基于 IP 的封锁限制:
- 解锁 Netflix 非自制剧
- 跳过 Google 验证码
- 解除 Google 学术访问限制
- 解除 YouTube Premium 定位漂移和地区限制
当然这只是冰山一角,其它作用小伙伴们可以在部署后慢慢发掘。
本教程完全来自互联网,其中做了部分修改!!!
使用 wgcf 生成 WireGuard 配置文件
wgcf下载:https://github.com/ViRb3/wgcf
- 注册 WARP 账户 (将生成
wgcf-account.toml文件保存账户信息)
cd |
- 修改
wgcf-account.toml文件
license_key = "V4L6C8XXXXXXXXXXXXXXXXX2hO6a71" |
- 更新wgcf-account.toml文件
wgcf update |
- 生成 WireGuard 配置文件 (
wgcf-profile.conf)
wgcf generate |
使用一键脚本安装WireGuard
项目地址
https://github.com/P3TERX/warp.sh
支持本项目欢迎随手点个 star,可以让更多的人发现、使用并受益。你的支持是持续开发维护的动力。
脚本特点
- CPU 架构支持:x86(i386)、x86_64(amd64)、ARMv8(aarch64)、ARMv7 等
- 虚拟化平台支持:KVM、Xen、OpenVZ、LXC 等
- 操作系统支持:Debian、Ubuntu、CentOS、Arch Linux 以及其它 DEB 系与 RHEL 系下游等
- 智能识别网络方案并自动匹配最佳配置方案进行部署
- 独家优化配置方案,获得更好的 WARP 网络体验
- 无需更换 Linux 内核,更稳定、更安全、更自由
- 直观的进程状态、网络状态和 WARP 状态显示
- Cloudflare WARP 官方 Linux 客户端支持
- “一把梭”式极致体验
使用方法
SSH 连上 VPS 。AD: 还没有 VPS ?赶紧点这里去选一个吧!
无论 VPS 是 IPv4 还是 IPv6 又或都有,添加 WARP WireGuard 双栈全局网络,直接使用以下命令一把梭:
# 自动配置 WARP WireGuard 双栈全局网络
bash <(curl -fsSL git.io/warp.sh) d
添加或置换 IPv4/IPv6 网络中的一个为 WARP WireGuard 网络,使用以下命令一把梭:
# 自动配置 WARP WireGuard IPv4 网络 |
Cloudflare 官方于近期发布了 WARP Linux 客户端,同时也带来了全新的 Proxy Mode 功能,它使得我们可以让应用通过本地的 SOCKS5 代理端口去直接使用 WARP 网络。对于想尝鲜官方客户端的小伙伴,可以使用以下命令一把梭自动安装 WARP 官方客户端并开启 SOCKS5 本机代理端口 (127.0.0.1:40000):
# 自动配置 WARP 官方客户端 SOCKS5 代理 |
给喜欢功能菜单的小伙伴特别准备的功能,执行以下命令显示功能菜单和贴心的状态显示:
# Cloudflare WARP 一键配置脚本 功能菜单 |
注意事项和其它说明
脚本目前处于公测阶段,可能还存在少量未知的 bug ,虽然不会导致毁灭性的问题,但不建议在生产环境中使用。
自动配置 WARP WireGuard 双栈全局网络已做到适配目前大多数主流的系统和 IDC 网络方案,但不排除极个别的差异没考虑到,因此可能会因为路由规则不适用而导致 SSH 失联。若失联可以使用网页 VNC 登录到 VPS 然后执行systemctl stop wg-quick@wgcf命令停止 WARP WireGuard 进程即可恢复。因 WireGuard 的 bug 与 WARP 网络偶发性连接故障,可能会出现网络状态显示均为未连接且网络访问异常的情况,使用
systemctl restart wg-quick@wgcf命令重启 WARP WireGuard 进程即可。这个问题在 Linux 内核 5.6 以上更新频繁且激进的版本很大概率会遇到。功能菜单中的
选择其它 WARP WireGuard 配置方案最初设计为自动配置时因本地源 IP 识别错误导致失联后的半自动备用方案,目前已经几乎用不到了。当然你喜欢也可以直接用,如果需要使用可根据实际情况与需求选择,遵循“无则添加、有则置换”原则。注意确认 IP 地址是否需要修改,如需修改可以手动输入 IP。随着脚本的完善,逐步走向智能自动化,后续这个菜单可能会移除。脚本使用 wgcf 生成通用 WireGuard 配置文件,配置完成后会原样备份至
~/.wgcf目录,以便下次脚本自动调用,避免重复申请 WARP 账号导致 IP 被 Cloudflare 拉黑。若之前自行生成过 WireGuard 配置文件,在文件名为
wgcf-profile.conf的情况下在此配置文件所在目录执行脚本会优先调用并截取关键信息生成符合所选方案的新配置文件。这个功能对已生成过有 WARP+ 流量配置文件的小伙伴应该会很有用。WARP WireGuard 双栈全局网络可能会导致 Docker 应用在 Bridge 网络模式下无法通过 IP 直接访问。可以使用 Host 网络模式,或者用 nginx 反代的方式去使用。暂时还没有完美解决方案。
WARP 官方 Linux 客户端才上线不久,实测稳定性不佳,且系统支持不全。只建议在 x86_64(amd64) 架构的 Debian 10+、Ubuntu 20.04、CentOS 8 系统中尝鲜。
WARP 官方客户端与 WARP WireGuard 网络可以同时使用,但 WARP 客户端的网络数据可能会走在 WARP WireGuard 隧道中,属于套娃行为,减速效果非常明显。
WARP 官方客户端可能无法在部分 IPv6 Only VPS 上使用,可以先添加 WARP WireGuard IPv4 网络,但正如前面所说套娃减速。
https://p3terx.com/archives/cheap-and-costeffective-vps-recommended.html)
IPv4 与 IPv6 网络优先级设置
TIPS: 优先级不是一定要设置的,这仅限于 VPS 本身对外发起的网络请求。使用某科学的上网工具不一定有效,建议使用工具内置的路由分流功能。
当访问的网站是双栈且服务器也是双栈,默认情况下 IPv6 优先级高于 IPv4,应用程序优先使用 IPv6 地址。
理论上应该是如下情况:
- IPv4 Only 服务器优先通过新增的 WARP IPv6 网络去访问外部网络。
- IPv6 Only 服务器优先通过原来的 IPv6 网络去访问外部网络。
然而 WARP 的情况有点特殊,现实的情况有可能是:
- IPv4 Only 服务器优先通过原来的 IPv4 网络去访问外部网络。
- IPv6 Only 服务器优先通过原来的 IPv6 网络去访问外部网络。
所以根据实际的需求就要手动去设置优先级。
IPv4 优先
编辑 /etc/gai.conf 文件,在末尾添加下面这行配置:
precedence ::ffff:0:0/96 100 |
一键添加命令如下:
# IPv4 优先 |
IPv6 优先
编辑 /etc/gai.conf 文件,在末尾添加下面这行配置:
label 2002::/16 2 |
一键添加命令如下:
# IPv6 优先 |
验证优先级
执行 curl ip.p3terx.com 命令,显示 IPv4 地址则代表 IPv4 优先,否则为 IPv6 优先。
优先级设置在特殊场景中的局限性
在 VPS 上使用某科学的上网工具,则还取决于科学工具的 DNS 策略和分流路由策略。
最需要注意的是某些路由器上的某科学的上网工具客户端不会发送域名给服务端,而是在本地直接将域名解析为 IP 并通过服务端直接向 IP 发起连接,那么可能因为屏蔽了 AAAA 记录,就只会去访问 IPv4 网络。这个问题解决方法是开启某科学的上网工具服务端的流量探测 (sniffing) 功能,并添加相关路由进行 IP 分流处理,它会从数据中嗅探出域名并进行二次 DNS 解析后对网络流量进行重定向,就比如可以将本身发往网站 IPv4 服务器的流量重定向到 IPv6 服务器。