共计 6949 个字符,预计需要花费 18 分钟才能阅读完成。
脚本特点
- 支持 WARP+ 账户,附带第三方刷 WARP+ 流量和升级内核 BBR 脚本
- 普通用户友好的菜单,进阶者通过后缀选项快速搭建
- 智能判断 vps 操作系统:Ubuntu 16.04、18.04、20.04; Debian 9、10、11,CentOS 7、8; Alpine 和 Arch Linux,请务必选择 LTS 系统
智能判断硬件结构类型:AMD、ARM 和 s390x - 结合 Linux 版本和虚拟化方式,自动优选三个 WireGuard 方案。
网络性能方面:内核集成 WireGuard>安装内核模块>BoringTun>wireguard-go - 智能判断 WGCF 作者 github 库的最新版本(Latest release)
- 智能分析内网和公网 IP 生成 WGCF 配置文件
- 输出结果,提示是否使用 WARP IP,IP 归属地
WARP 好处
- 支持 chatGPT,解锁奈飞流媒体
- 避免 Google 验证码或是使用 Google 学术搜索
- 可调用 IPv4 接口,使青龙和 V2P 等项目能正常运行
- 由于可以双向转输数据,能做对方 VPS 的跳板和探针,替代 HE tunnelbroker
- 能让 IPv6 only VPS 上做的节点支持 Telegram
- IPv6 建的节点能在只支持 IPv4 的 PassWall、ShadowSocksR Plus+ 上使用
warp 运行脚本
首次运行
wget -N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh [option] [lisence/url/token]
再次运行
warp [option] [lisence]
[option] 变量 1 变量 2 | 具体动作说明 |
---|---|
h | 帮助 |
4 | 原无论任何状态 -> WARP IPv4 |
4 lisence name | 把 WARP+ Lisence 和设备名添加进去,如 bash menu.sh 4 N5670ljg-sS9jD334-6o6g4M9F Goodluck |
6 | 原无论任何状态 -> WARP IPv6 |
d | 原无论任何状态 -> WARP 双栈 |
o | WARP 开关,脚本主动判断当前状态,自动开或关 |
u | 卸载 WARP |
n | 断网时,用于刷 WARP 网络 (WARP bug) |
b | 升级内核、开启 BBR 及 DD |
a | 免费 WARP 账户升级 WARP+ |
a lisence | 在上面基础上把 WARP+ Lisence 添加进去,如 bash menu.sh a N5670ljg-sS9jD334-6o6g4M9F |
p | 刷 Warp+ 流量 |
c | 安装 WARP Linux Client,开启 Socks5 代理模式 |
l | 安装 WARP Linux Client,开启 WARP 模式 |
c lisence | 在上面基础上把 WARP+ Lisence 添加进去,如 bash menu.sh c N5670ljg-sS9jD334-6o6g4M9F |
r | WARP Linux Client 开关 |
v | 同步脚本至最新版本 |
i | 更换 WARP IP |
e | 安装 iptables + dnsmasq + ipset 分流流媒体方案 |
w | 安装 WireProxy 解决方案 |
y | WireProxy 开关 |
k | 切换 wireguard 内核 / wireguard-go-reserved |
g | 切换 warp 全局 / 非全局 或首次以 非全局 模式安装 |
s | s 4/6/d,切换优先级 warp IPv4 / IPv6 / 默认 |
其他或空值 | 菜单界面 |
举例:想为 IPv4 的甲骨文添加 Warp 双栈,首次运行
wget -N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh d
刷日本 Netflix 运行
warp i jp
通过 warp 解锁 chatGPT 的方法
方法原创,转引用请标明本项目出处。
适合范围: 除大陆、香港和美国 LA 外的所有 VPS,因为这些地方没有 wgcf 的 warp 服务
思路是使用已经注册的 warp 做链式代理的设置,此解决方法是最轻便的,用户只要有 xray 即可。具体做法是修改 xray 配置文件的 outbound 和 routing,模板如下
{
"outbounds":[
{
"protocol":"freedom",
"tag": "direct"
},
{
"protocol":"wireguard",
"settings":{
"secretKey":"YFYOAdbw1bKTHlNNi+aEjBM3BO7unuFC5rOkMRAz9XY=", // 粘贴你的 "private_key" 值
"address":[
"172.16.0.2/32",
"2606:4700:110:8a36:df92:102a:9602:fa18/128"
],
"peers":[
{
"publicKey":"bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=",
"allowedIPs":[
"0.0.0.0/0",
"::/0"
],
"endpoint":"engage.cloudflareclient.com:2408" // 或填写 162.159.193.10:2408 或 [2606:4700:d0::a29f:c001]:2408
}
],
"reserved":[78, 135, 76], // 粘贴你的 "reserved" 值
"mtu":1280
},
"tag":"wireguard"
},
{
"protocol":"freedom",
"settings":{"domainStrategy":"UseIPv4"},
"proxySettings":{"tag":"wireguard"},
"tag":"warp-IPv4"
},
{
"protocol":"freedom",
"settings":{"domainStrategy":"UseIPv6"},
"proxySettings":{"tag":"wireguard"},
"tag":"warp-IPv6"
}
],
"routing":{
"domainStrategy":"AsIs",
"rules":[
{
"type":"field",
"domain":[
"geosite:openai",
"ip.gs"
],
"outboundTag":"warp-IPv4"
},
{
"type":"field",
"domain":[
"geosite:netflix",
"p3terx.com"
],
"outboundTag":"warp-IPv6"
}
]
}
}
刷 Netflix 解锁 WARP IP 的方法
也可以用另一个通过 WARP 解锁流媒体的一键脚本: 【刷 WARP IP】– 为 WARP 解锁流媒体而生
以刷 香港 hk 为例
- screen 多会话方式运行,会话任务名为 n
screen -USdm n warp i hk ## 创建名为 n 的会话
screen -Udr n ## 进入会话 n 看运行情况
## 按 Ctrl+a 再按 d 退出话 n,返回主界面
screen -ls ## 查看会话窗口列表
screen -SX n quit ## 关闭会议 n,结束运行
- nohup & 后台运行方式,把结果输出到 log 文件
nohup warp i hk > logs 2>&1 & ## 放进后台运行
jobs -l | grep warp ## 看后台任务
cat logs ## 查看运行日志文件
kill -9 $(jobs -l | grep warp | awk '{print $2}') ## 结束进程
- crobtab 计划任务
echo '@reboot root warp i hk' >>/etc/crobtab ## 在计划任务里加入一条新任务
sed -i '/warp i/d' /etc/crontab ## 删掉计划任务
kill -9 $(pgrep -f warp) ## 杀掉正在运行的进程
-
另外遇到问题仍然需要用户有一定的处理能力,如结束时没有网络,可以用
warp o
开关来获取,因此并没有写死在脚本里了。 -
如果长时间仍然未刷出解锁 IP,可以查查 CloudFlare 当地是否在维护调路由:https://www.cloudflarestatus.com/
指定网站分流到 socks5 的 xray 配置模板 (适用于 WARP Client Proxy 和 WireProxy)
本地 socks5://127.0.0.1:40000 并安装 mack-a 八合一脚本 为例。编辑 /etc/v2ray-agent/xray/conf/10_ipv4_outbounds.json
{
"outbounds":[
{"protocol":"freedom"},
{
"tag":"warp",
"protocol":"socks",
"settings":{
"servers":[
{
"address":"127.0.0.1",
"port":40000 // 填写你的 socks5 端口
}
]
}
},
{
"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"
}
]
}
}
指定网站分流到 “interface” 的 xray 配置模板(适用于 WARP Client Warp 和 warp / warp-go 非全局)
{
"outbounds":[
{"protocol":"freedom"},
{
"tag":"WARP-interface-v4",
"protocol":"freedom",
"settings":{"domainStrategy":"UseIPv4"},
"streamSettings":{
"sockopt":{
"interface":"CloudflareWARP", // warp 非全局模式填 warp; Client 的 Proxy 模式填 CloudflareWARP; warp-go 填 WARP
"tcpFastOpen":true
}
}
},
{
"tag":"WARP-interface-v6",
"protocol":"freedom",
"settings":{"domainStrategy":"UseIPv6"},
"streamSettings":{
"sockopt":{
"interface":"CloudflareWARP",
"tcpFastOpen":true
}
}
}
],
"routing":{
"domainStrategy":"AsIs",
"rules":[
{
"type":"field",
"domain":[
"geosite:google",
"geosite:openai",
"ip.gs"
],
"outboundTag":"WARP-interface-v4"
},
{
"type":"field",
"domain":[
"geosite:netflix",
"p3terx.com"
],
"outboundTag":"WARP-interface-v6"
}
]
}
}
warp-go 运行脚本
首次运行
wget -N https://gitlab.com/fscarmen/warp/-/raw/main/warp-go.sh && bash warp-go.sh [option] [lisence]
再次运行
warp-go [option] [lisence]
[option] 变量 1 变量 2 | 具体动作说明 |
---|---|
h | 帮助 |
4 | 原无论任何状态 -> WARP IPv4 |
4 lisence name | 把 WARP+ Lisence 和设备名添加进去,如 bash wire-go 4 N5670ljg-sS9jD334-6o6g4M9F Goodluck |
6 | 原无论任何状态 -> WARP IPv6 |
d | 原无论任何状态 -> WARP 双栈 |
o | warp-go 开关,脚本主动判断当前状态,自动开或关 |
u | 卸载 warp-go |
a | 免费 WARP 账户升级 WARP+ |
a lisence name | 在上面基础上把 WARP+ Lisence 和设备名添加进去,如 bash menu.sh a N5670ljg-sS9jD334-6o6g4M9F Goodluck |
v | 同步脚本至最新版本 |
其他或空值 | 菜单界面 |
Cloudflare api 运行脚本
wget -N https://gitlab.com/fscarmen/warp/-/raw/main/api.sh && bash api.sh [option]
[option] 变量 | 具体动作说明 |
---|---|
-h/–help | 帮助 |
-f/–file | 保存账户注册信息的文件,支持官方 api,client,wgcf 和 warp-go,不填则手动输入 device id 和 api token |
-r/–register | 注册账户 |
-t/–token | -r 注册时,使用 team token 注册,快速获取: https://web–public–warp-team-api–coia-mfs4.code.run |
-d/–device | 获取账户注册信息,包括 plus 流量等 |
-a/–app | 获取 app 信息 |
-b/–bind | 获取绑定设备信息,包括子设备 |
-n/–name | 修改设备名称 |
-l/–license | 修改 license |
-u/–unbind | 解绑设备 |
-c/–cancle | 注销账户 |
-i/–id | 显示 cliend id 与 reserved |
WARP+ License 及 ID 获取
以下是使用 WARP 和 Team 后 Argo 2.0 的官方介绍:Argo 2.0: Smart Routing Learns New Tricks
引用 Luminous 大神原话:实际测试 WARP+ 在访问非 CF 的网站速度上和免费版没有差异,只有在访问 CloudFlare 的站点时付费版会通过 Argo 类似的技术通过与目标较近的数据中心前往源站,而免费版是仅限于连接地前往源站,仅此而已。
WARP 网络接口数据,临时、永久关闭和开启
WireGuard 网络接口数据,查看 wg
临时关闭和开启 WARP(reboot 重启后恢复开启)warp o
官方原始指令 wg-quick down wgcf
,恢复启动 wg-quick up wgcf
禁止开机启动 systemctl disable --now wg-quick@wgcf
, 恢复开机启动 systemctl enable --now wg-quick@wgcf
WARP Teams 获取并用于 Linux 的方法
-
通过 Coia 的网站,填入 teams 的组织名、邮箱和验证码获取 token:
https://web--public--warp-team-api--coia-mfs4.code.run/
-
在 vps 里运行以下指令获取 teams 配置的全部信息,保存在文件
warp-account.conf
bash <(wget -qO- https://gitlab.com/fscarmen/warp/-/raw/main/api.sh) -r -t <TOKEN>
WARP 原理
WARP 是 CloudFlare 提供的一项基于 WireGuard 的网络流量安全及加速服务,能够让你通过连接到 CloudFlare 的边缘节点实现隐私保护及链路优化。
其连接入口为双栈(IPv4/IPv6 均可),且连接后能够获取到由 CF 提供基于 NAT 的 IPv4 和 IPv6 地址,因此我们的单栈服务器可以尝试连接到 WARP 来获取额外的网络连通性支持。这样我们就可以让仅具有 IPv6 的服务器访问 IPv4,也能让仅具有 IPv4 的服务器获得 IPv6 的访问能力。
- 为仅 IPv6 服务器添加 IPv4
原理如图,IPv4 的流量均被 WARP 网卡接管,实现了让 IPv4 的流量通过 WARP 访问外部网络。
- 为仅 IPv4 服务器添加 IPv6
原理如图,IPv6 的流量均被 WARP 网卡接管,实现了让 IPv6 的流量通过 WARP 访问外部网络。
- 双栈服务器置换网络
有时我们的服务器本身就是双栈的,但是由于种种原因我们可能并不想使用其中的某一种网络,这时也可以通过 WARP 接管其中的一部分网络连接隐藏自己的 IP 地址。至于这样做的目的,最大的意义是减少一些滥用严重机房出现验证码的概率;同时部分内容提供商将 WARP 的落地 IP 视为真实用户的原生 IP 对待,能够解除一些基于 IP 识别的封锁。
- 网络性能方面:内核集成>内核模块>wireguard-go
Linux 5.6 及以上内核则已经集成了 WireGuard,可以用 hostnamectl
或 uname -r
查看版本。
甲骨文是 KVM 完整虚拟化的 VPS 主机,而官方系统由于版本较低,在不更换内核的前提下选择 “ 内核模块 ” 方案。如已升级内核在 5.6 及以上,将会自动选择“内核集成”方案。
EUserv 是 LXC 非完整虚拟化 VPS 主机,共享宿主机内核,不能更换内核,只能选择 “wireguard-go” 方案。