WARP解锁奈飞分流
脚本特点
支持 WARP+ 账户,附带第三方刷 WARP+ 流量和升级内核 BBR 脚本
普通用户友好的菜单,进阶者通过后缀选项快速搭建
智能判断vps操作系统:Ubuntu 16.04、Ubuntu 18.04、Ubuntu 20.04、Debian 10、Debian 11、CentOS 7、CentOS 8,请务必选择 LTS 系统;
智能判断硬件结构类型:AMD 或者 ARM结合 Linux 版本和虚拟化方式,自动优选三个 WireGuard 方案。
网络性能方面:内核集成 WireGuard>安装内核模块>BoringTun>wireguard-go智能判断 WGCF 作者 github库的最新版本 (Latest release)
智能分析内网和公网IP生成 WGCF 配置文件
输出结果,提示是否使用 WARP IP ,IP 归属地
WARP好处
解锁奈飞流媒体
避免 Google 验证码或是使用 Google 学术搜索
可调用 IPv4 接口,使青龙和V2P等项目能正常运行
由于可以双向转输数据,能做对方VPS的跳板和探针,替代 HE tunnelbroker
能让 IPv6 only VPS 上做的节点支持 Telegram
IPv6 建的节点能在只支持 IPv4 的 PassWall、ShadowSocksR Plus+ 上使用
运行脚本
首次运行
wget -N https://raw.githubusercontent.com/fscarmen/warp/main/menu.sh && bash menu.sh [option] [lisence]
再次运行
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 代理模式 |
c lisence | 在上面基础上把 WARP+ Lisence 添加进去,如 bash menu.sh c N5670ljg-sS9jD334-6o6g4M9F |
r | WARP Linux Client 开关 |
v | 同步脚本至最新版本 |
i | 更换 WARP IP |
s | 单栈与双栈快速切换 ,如 warp s 4 ,warp s 6 ,warp s d |
e | 安装 iptables + dnsmasq + ipset 分流流媒体方案 |
其他或空值 | 菜单界面 |
举例:想为 IPv4 的甲骨文添加 Warp 双栈,首次运行
wget -N https://cdn.jsdelivr.net/gh/fscarmen/warp/menu.sh && bash menu.sh d
刷日本 Netflix 运行
warp i jp
刷 Netflix 解锁 WARP IP 的方法
也可以用另一个通过 WARP 解锁流媒体的一键脚本: 【刷 WARP IP】 - 为 WARP 解锁流媒体而生
以刷 香港 hk 为例
crontab 计划任务方式,流媒体解锁守护进程
bash <(curl -sSL https://raw.githubusercontent.com/fscarmen/tools/main/warp_crontab.sh)
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/
Netflix 分流到 WARP Client Proxy 的方法
感谢 vpsxb admin 原创教程: 继续解锁奈飞(七)-WARP socks5 client分流
先安装 WARP Client,假设使用默认的 40000 端口 并安装 mack-a 八合一脚本 为例(这里可以直接在X-UI面板修改)。编辑 /etc/v2ray-agent/xray/conf/10_ipv4_outbounds.json
{ "outbounds": [ { "protocol": "freedom" }, { "tag": "media-unlock", "protocol": "socks", "settings": { "servers": [ { "address": "127.0.0.1", "port": 40000, "users": [] } ] } } ], "routing": { "domainStrategy": "AsIs", "rules": [ { "type": "field", "domain": [ "geosite:netflix" ], "outboundTag": "media-unlock" } ] } }
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 的方法
感谢 TonyLCH 提供的资讯 #26 ,由于Team是无限制的,省去了刷 WARP+ 流量。方法大体: 1.安装通安卓模拟器,并在上面安装 1.1.1.1 apk连上 2.连上 teams 后抓包,把获取到的信息替换到wgcf.conf配置文件里
具体原创文章:Cloudflare for Teams Wireguard Config
感谢 asterriya 提供的资讯 #42 轻松获取 Team 账户,~~~而不需要用传统方法:注册Cloudflare--申请team--填邮箱--填验证码~~~ 具体操作视频:How to Use unlimited WARP+ for free with Cloudflare Teams
Download 下载:
感谢 Misaka 演示视频:https://www.bilibili.com/video/BV1gU4y1K7of/
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" 方案。
评论
"api": {
"services": [
"HandlerService",
"LoggerService",
"StatsService"
],
"tag": "api"
},
"inbounds": [{
"listen": "127.0.0.1",
"port": 62789,
"protocol": "dokodemo-door",
"settings": {
"address": "127.0.0.1"
},
"tag": "api"
}],
"outbounds": [
{
"protocol": "freedom"
},
{
"tag": "media-unlock",
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 38888,
"users": []
}
]
}
}
],
"policy": {
"system": {
"statsInboundDownlink": true,
"statsInboundUplink": true
}
},
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"domain": [
"openai.com","netflix.com","myip.com"
],
"outboundTag": "media-unlock"
}
]
}
}
"api": {
"services": [
"HandlerService",
"LoggerService",
"StatsService"
],
"tag": "api"
},
"inbounds": [
{
"listen": "127.0.0.1",
"port": 62789,
"protocol": "dokodemo-door",
"settings": {
"address": "127.0.0.1"
},
"tag": "api"
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
},
{
"tag": "media-unlock",
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 38888,
"users": []
}
]
}
},
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}
],
"policy": {
"levels": {
"0": {
"handshake": 10,
"connIdle": 100,
"uplinkOnly": 2,
"downlinkOnly": 3,
"statsUserUplink": true,
"statsUserDownlink": true,
"bufferSize": 10240
}
},
"system": {
"statsInboundDownlink": true,
"statsInboundUplink": true
}
},
"routing": {
"rules": [
{
"type": "field",
"domain": [
"openai.com",
"netflix.com",
"myip.com"
],
"outboundTag": "media-unlock"
},
{
"inboundTag": [
"api"
],
"outboundTag": "api",
"type": "field"
},
{
"ip": [
"geoip:private"
],
"outboundTag": "blocked",
"type": "field"
},
{
"outboundTag": "blocked",
"protocol": [
"bittorrent"
],
"type": "field"
}
]
},
"stats": {}
}