【WGCF】连接CF WARP为服务器添加IPv4/IPv6网络

113次阅读
没有评论

共计 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+ 上使用

【WGCF】连接 CF WARP 为服务器添加 IPv4/IPv6 网络

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 类似的技术通过与目标较近的数据中心前往源站,而免费版是仅限于连接地前往源站,仅此而已。

【WGCF】连接 CF WARP 为服务器添加 IPv4/IPv6 网络

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 访问外部网络。【WGCF】连接 CF WARP 为服务器添加 IPv4/IPv6 网络

  • 为仅 IPv4 服务器添加 IPv6

原理如图,IPv6 的流量均被 WARP 网卡接管,实现了让 IPv6 的流量通过 WARP 访问外部网络。【WGCF】连接 CF WARP 为服务器添加 IPv4/IPv6 网络

  • 双栈服务器置换网络

有时我们的服务器本身就是双栈的,但是由于种种原因我们可能并不想使用其中的某一种网络,这时也可以通过 WARP 接管其中的一部分网络连接隐藏自己的 IP 地址。至于这样做的目的,最大的意义是减少一些滥用严重机房出现验证码的概率;同时部分内容提供商将 WARP 的落地 IP 视为真实用户的原生 IP 对待,能够解除一些基于 IP 识别的封锁。【WGCF】连接 CF WARP 为服务器添加 IPv4/IPv6 网络

  • 网络性能方面:内核集成>内核模块>wireguard-go

Linux 5.6 及以上内核则已经集成了 WireGuard,可以用 hostnamectluname -r 查看版本。

甲骨文是 KVM 完整虚拟化的 VPS 主机,而官方系统由于版本较低,在不更换内核的前提下选择 “ 内核模块 ” 方案。如已升级内核在 5.6 及以上,将会自动选择“内核集成”方案。

EUserv 是 LXC 非完整虚拟化 VPS 主机,共享宿主机内核,不能更换内核,只能选择 “wireguard-go” 方案。

正文完
 0
水东柳
版权声明:本文于2024-12-05转载自GITHUB,共计6949字。
转载提示:此文章非本站原创文章,若需转载请联系原作者获得转载授权。
评论(没有评论)