Compare commits

..

3 Commits

Author SHA1 Message Date
甬哥侃侃侃ygkkk 152a6765f2 上传新文件 2025-04-23 11:42:46 +08:00
甬哥侃侃侃ygkkk 6c079b43a8 删除acwarp.sh 2025-04-23 11:42:28 +08:00
甬哥侃侃侃ygkkk 493ff9795a 编辑acwarp.sh 2025-04-23 11:40:30 +08:00
1 changed files with 309 additions and 309 deletions

View File

@ -1,309 +1,309 @@
#!/bin/bash #!/bin/bash
export LANG=en_US.UTF-8 export LANG=en_US.UTF-8
case "$(uname -m)" in case "$(uname -m)" in
x86_64 | x64 | amd64 ) x86_64 | x64 | amd64 )
cpu=amd64 cpu=amd64
;; ;;
i386 | i686 ) i386 | i686 )
cpu=386 cpu=386
;; ;;
armv8 | armv8l | arm64 | aarch64 ) armv8 | armv8l | arm64 | aarch64 )
cpu=arm64 cpu=arm64
;; ;;
armv7l ) armv7l )
cpu=arm cpu=arm
;; ;;
* ) * )
echo "当前架构为$(uname -m),暂不支持" echo "当前架构为$(uname -m),暂不支持"
exit exit
;; ;;
esac esac
rmrf(){ rmrf(){
rm -rf wgcf-account.toml wgcf-profile.conf warpgo.conf sbwarp.json warp-go warp.conf wgcf warp-api-wg.txt warpapi rm -rf wgcf-account.toml wgcf-profile.conf warpgo.conf sbwarp.json warp-go warp.conf wgcf warp-api-wg.txt warpapi
} }
note(){ note(){
echo "相关说明:" echo "相关说明:"
echo -e "一、查看warp账户状态请以此网站为准https://www.cloudflare.com/cdn-cgi/trace" echo -e "一、查看warp账户状态请以此网站为准https://www.cloudflare.com/cdn-cgi/trace"
echo -e "warp=on表示普通免费账户、warp=plus表示warp+或者teams团队账户、warp=off表示非warp网络\n" echo -e "warp=on表示普通免费账户、warp=plus表示warp+或者teams团队账户、warp=off表示非warp网络\n"
echo -e "二、此配置与当前注册平台无任何关联根据实际使用平台的本地网络就近原则来判定warp的IP地区\n" echo -e "二、此配置与当前注册平台无任何关联根据实际使用平台的本地网络就近原则来判定warp的IP地区\n"
echo -e "三、此配置中相关参数可应用于Wireguard客户端、Xray协议的Wireguard-warp出站配置等各类平台\n" echo -e "三、此配置中相关参数可应用于Wireguard客户端、Xray协议的Wireguard-warp出站配置等各类平台\n"
echo -e "四、此配置中Endpoint的IP端口可替换为实际使用平台的本地网络测试warp优选后的IP端口\n" echo -e "四、此配置中Endpoint的IP端口可替换为实际使用平台的本地网络测试warp优选后的IP端口\n"
echo -e "五、此配置中PrivateKey、Address的V6地址、reserved(可选),三个参数相互绑定关联\n" echo -e "五、此配置中PrivateKey、Address的V6地址、reserved(可选),三个参数相互绑定关联\n"
#echo "当前Sing-box出站配置文件如下" && sleep 1 #echo "当前Sing-box出站配置文件如下" && sleep 1
#echo "$(cat /usr/local/bin/sbwarp.json | python3 -mjson.tool)" #echo "$(cat /usr/local/bin/sbwarp.json | python3 -mjson.tool)"
} }
acwarpapi(){ acwarpapi(){
echo "下载warp api注册程序" echo "下载warp api注册程序"
curl -L -o warpapi -# --retry 2 https://gitlab.com/rwkgyg/CFwarp/-/raw/main/point/cpu1/$cpu curl -L -o warpapi -# --retry 2 https://gitlab.com/rwkgyg/CFwarp/-/raw/main/point/cpu1/$cpu
chmod +x warpapi chmod +x warpapi
output=$(./warpapi) output=$(./warpapi)
if ./warpapi 2>&1 | grep -q "connection refused"; then if ./warpapi 2>&1 | grep -q "connection refused"; then
echo "申请warp api普通账户失败请尝试使用warp-go方式进行注册" && exit echo "申请warp api普通账户失败请尝试使用warp-go方式进行注册" && exit
fi fi
private_key=$(echo "$output" | awk -F ': ' '/private_key/{print $2}') private_key=$(echo "$output" | awk -F ': ' '/private_key/{print $2}')
v6=$(echo "$output" | awk -F ': ' '/v6/{print $2}') v6=$(echo "$output" | awk -F ': ' '/v6/{print $2}')
res=$(echo "$output" | awk -F ': ' '/reserved/{print $2}' | tr -d '[:space:]') res=$(echo "$output" | awk -F ': ' '/reserved/{print $2}' | tr -d '[:space:]')
cat > warp-api-wg.txt <<EOF cat > warp-api-wg.txt <<EOF
[Interface] [Interface]
PrivateKey = $private_key PrivateKey = $private_key
Address = 172.16.0.2/32, $v6/128 Address = 172.16.0.2/32, $v6/128
DNS = 1.1.1.1 DNS = 1.1.1.1
MTU = 1280 MTU = 1280
[Peer] [Peer]
PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo= PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
AllowedIPs = 0.0.0.0/0, ::/0 AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 162.159.193.10:2408 Endpoint = 162.159.193.10:2408
EOF EOF
clear clear
echo echo
echo "warp账户申请成功" && sleep 3 echo "warp账户申请成功" && sleep 3
echo echo
echo "reserved值$res" && sleep 2 echo "reserved值$res" && sleep 2
echo echo
echo "warp-wireguardapi配置信息如下" && sleep 2 echo "warp-wireguardapi配置信息如下" && sleep 2
cat warp-api-wg.txt cat warp-api-wg.txt
echo echo
sleep 2 sleep 2
qrencode -t ansiutf8 < warp-api-wg.txt 2>/dev/null qrencode -t ansiutf8 < warp-api-wg.txt 2>/dev/null
echo echo
note note
rmrf rmrf
} }
wgcfreg(){ wgcfreg(){
echo "下载warp-wgcf注册程序" echo "下载warp-wgcf注册程序"
curl -L -o wgcf -# --retry 2 https://gitlab.com/rwkgyg/cfwarp/-/raw/main/wgcf_2.2.20_$cpu curl -L -o wgcf -# --retry 2 https://gitlab.com/rwkgyg/cfwarp/-/raw/main/wgcf_2.2.20_$cpu
chmod +x wgcf chmod +x wgcf
echo | ./wgcf register 2> /dev/null echo | ./wgcf register 2> /dev/null
if echo | ./wgcf register 2>&1 | grep -q "connection refused"; then if echo | ./wgcf register 2>&1 | grep -q "connection refused"; then
echo "申请warp-wgcf普通账户失败请尝试使用warp-go方式进行注册" && exit echo "申请warp-wgcf普通账户失败请尝试使用warp-go方式进行注册" && exit
fi fi
until [[ -e wgcf-account.toml ]] until [[ -e wgcf-account.toml ]]
do do
echo "申请warp-wgcf普通账请等待" && sleep 1 echo "申请warp-wgcf普通账请等待" && sleep 1
echo | ./wgcf register echo | ./wgcf register
done done
echo | ./wgcf generate echo | ./wgcf generate
sed -i "s/engage.cloudflareclient.com:2408/162.159.193.10:2408/g" wgcf-profile.conf sed -i "s/engage.cloudflareclient.com:2408/162.159.193.10:2408/g" wgcf-profile.conf
} }
wgcfup(){ wgcfup(){
if [[ ! -e wgcf-account.toml ]]; then if [[ ! -e wgcf-account.toml ]]; then
wgcfreg wgcfreg
fi fi
read -p "复制许可秘钥(26个字符):" ID read -p "复制许可秘钥(26个字符):" ID
if [[ -z $ID ]]; then if [[ -z $ID ]]; then
echo "未输入内容" && exit echo "未输入内容" && exit
fi fi
sed -i "s/license_key.*/license_key = \"$ID\"/g" wgcf-account.toml sed -i "s/license_key.*/license_key = \"$ID\"/g" wgcf-account.toml
echo | ./wgcf update echo | ./wgcf update
echo "如显示400 Bad Request,自动还原为WARP普通账户" echo "如显示400 Bad Request,自动还原为WARP普通账户"
echo | ./wgcf generate echo | ./wgcf generate
sed -i "s/engage.cloudflareclient.com:2408/162.159.193.10:2408/g" wgcf-profile.conf sed -i "s/engage.cloudflareclient.com:2408/162.159.193.10:2408/g" wgcf-profile.conf
} }
wgcfteams(){ wgcfteams(){
wgcfreg wgcfreg
echo "Teams团队Token获取地址https://web--public--warp-team-api--coia-mfs4.code.run/" echo "Teams团队Token获取地址https://web--public--warp-team-api--coia-mfs4.code.run/"
read -p " 请输入团队账户Token " TEAM_TOKEN read -p " 请输入团队账户Token " TEAM_TOKEN
WG_API=$(curl -sSL https://api.zeroteam.top/warp?format=warp-go) WG_API=$(curl -sSL https://api.zeroteam.top/warp?format=warp-go)
PRIVATEKEY=$(expr "$WG_API" | awk 'NR==3 {print $3}') PRIVATEKEY=$(expr "$WG_API" | awk 'NR==3 {print $3}')
PUBLICKEY=$(expr "$WG_API" | awk 'NR==10 {print $3}') PUBLICKEY=$(expr "$WG_API" | awk 'NR==10 {print $3}')
INSTALL_ID=$(tr -dc 'A-Za-z0-9' </dev/urandom | head -c 22) INSTALL_ID=$(tr -dc 'A-Za-z0-9' </dev/urandom | head -c 22)
FCM_TOKEN="${INSTALL_ID}:APA91b$(tr -dc 'A-Za-z0-9' </dev/urandom | head -c 134)" FCM_TOKEN="${INSTALL_ID}:APA91b$(tr -dc 'A-Za-z0-9' </dev/urandom | head -c 134)"
ERROR_TIMES=0 ERROR_TIMES=0
while [ "$ERROR_TIMES" -le 3 ]; do while [ "$ERROR_TIMES" -le 3 ]; do
(( ERROR_TIMES++ )) (( ERROR_TIMES++ ))
if [[ "$TEAMS" =~ 'token is expired' ]]; then if [[ "$TEAMS" =~ 'token is expired' ]]; then
read -p " 请刷新token重新复制 " TEAM_TOKEN read -p " 请刷新token重新复制 " TEAM_TOKEN
elif [[ "$TEAMS" =~ 'error' ]]; then elif [[ "$TEAMS" =~ 'error' ]]; then
read -p " 请刷新token重新复制 " TEAM_TOKEN read -p " 请刷新token重新复制 " TEAM_TOKEN
elif [[ "$TEAMS" =~ 'organization' ]]; then elif [[ "$TEAMS" =~ 'organization' ]]; then
break break
fi fi
TEAMS=$(curl --silent --location --tlsv1.3 --request POST 'https://api.cloudflareclient.com/v0a2158/reg' \ TEAMS=$(curl --silent --location --tlsv1.3 --request POST 'https://api.cloudflareclient.com/v0a2158/reg' \
--header 'User-Agent: okhttp/3.12.1' \ --header 'User-Agent: okhttp/3.12.1' \
--header 'CF-Client-Version: a-6.10-2158' \ --header 'CF-Client-Version: a-6.10-2158' \
--header 'Content-Type: application/json' \ --header 'Content-Type: application/json' \
--header "Cf-Access-Jwt-Assertion: ${TEAM_TOKEN}" \ --header "Cf-Access-Jwt-Assertion: ${TEAM_TOKEN}" \
--data '{"key":"'${PUBLICKEY}'","install_id":"'${INSTALL_ID}'","fcm_token":"'${FCM_TOKEN}'","tos":"'$(date +"%Y-%m-%dT%H:%M:%S.%3NZ")'","model":"Linux","serial_number":"'${INSTALL_ID}'","locale":"zh_CN"}') --data '{"key":"'${PUBLICKEY}'","install_id":"'${INSTALL_ID}'","fcm_token":"'${FCM_TOKEN}'","tos":"'$(date +"%Y-%m-%dT%H:%M:%S.%3NZ")'","model":"Linux","serial_number":"'${INSTALL_ID}'","locale":"zh_CN"}')
ADDRESS6=$(expr "$TEAMS" : '.*"v6":[ ]*"\([^"]*\).*') ADDRESS6=$(expr "$TEAMS" : '.*"v6":[ ]*"\([^"]*\).*')
done done
sed -i "s#PrivateKey.*#PrivateKey = $PRIVATEKEY#g;s#Address.*128#Address = $ADDRESS6/128#g" wgcf-profile.conf sed -i "s#PrivateKey.*#PrivateKey = $PRIVATEKEY#g;s#Address.*128#Address = $ADDRESS6/128#g" wgcf-profile.conf
} }
wgcfshow(){ wgcfshow(){
clear clear
echo echo
echo "warp账户申请成功" && sleep 2 echo "warp账户申请成功" && sleep 2
echo echo
echo "warp-wireguard(wgcf)配置信息如下" && sleep 2 echo "warp-wireguard(wgcf)配置信息如下" && sleep 2
cat wgcf-profile.conf cat wgcf-profile.conf
echo echo
sleep 2 sleep 2
qrencode -t ansiutf8 < wgcf-profile.conf 2>/dev/null qrencode -t ansiutf8 < wgcf-profile.conf 2>/dev/null
echo echo
note note
rmrf rmrf
} }
warpgoac(){ warpgoac(){
echo "下载warp-go注册程序" echo "下载warp-go注册程序"
curl -L -o warp-go -# --retry 2 https://gitlab.com/rwkgyg/CFwarp/-/raw/main/warp-go_1.0.8_linux_${cpu} curl -L -o warp-go -# --retry 2 https://gitlab.com/rwkgyg/CFwarp/-/raw/main/warp-go_1.0.8_linux_${cpu}
chmod +x warp-go chmod +x warp-go
curl -L -o warp.conf --retry 2 https://api.zeroteam.top/warp?format=warp-go curl -L -o warp.conf --retry 2 https://api.zeroteam.top/warp?format=warp-go
if [[ ! -s warp.conf ]]; then if [[ ! -s warp.conf ]]; then
curl -L -o warpapi -# --retry 2 https://gitlab.com/rwkgyg/CFwarp/-/raw/main/point/cpu1/$cpu curl -L -o warpapi -# --retry 2 https://gitlab.com/rwkgyg/CFwarp/-/raw/main/point/cpu1/$cpu
chmod +x warpapi chmod +x warpapi
output=$(./warpapi) output=$(./warpapi)
private_key=$(echo "$output" | awk -F ': ' '/private_key/{print $2}') private_key=$(echo "$output" | awk -F ': ' '/private_key/{print $2}')
device_id=$(echo "$output" | awk -F ': ' '/device_id/{print $2}') device_id=$(echo "$output" | awk -F ': ' '/device_id/{print $2}')
warp_token=$(echo "$output" | awk -F ': ' '/token/{print $2}') warp_token=$(echo "$output" | awk -F ': ' '/token/{print $2}')
rm -rf warpapi rm -rf warpapi
cat > warp.conf <<EOF cat > warp.conf <<EOF
[Account] [Account]
Device = $device_id Device = $device_id
PrivateKey = $private_key PrivateKey = $private_key
Token = $warp_token Token = $warp_token
Type = free Type = free
Name = WARP Name = WARP
MTU = 1280 MTU = 1280
[Peer] [Peer]
PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo= PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
Endpoint = 162.159.193.10:1701 Endpoint = 162.159.193.10:1701
# AllowedIPs = 0.0.0.0/0 # AllowedIPs = 0.0.0.0/0
# AllowedIPs = ::/0 # AllowedIPs = ::/0
KeepAlive = 30 KeepAlive = 30
EOF EOF
fi fi
} }
warpgoplus(){ warpgoplus(){
warpgoac warpgoac
echo "请复制手机WARP客户端WARP+状态下的按键许可证秘钥 或 网络分享的秘钥26个字符" echo "请复制手机WARP客户端WARP+状态下的按键许可证秘钥 或 网络分享的秘钥26个字符"
read -p "请输入升级WARP+密钥:" ID read -p "请输入升级WARP+密钥:" ID
if [[ -z $ID ]]; then if [[ -z $ID ]]; then
echo "未输入内容" && exit echo "未输入内容" && exit
fi fi
if ./warp-go --update --config=warp.conf --license=$ID --device-name=warp+$(date +%s%N |md5sum | cut -c 1-3) 2>&1 | grep -q "connection refused"; then if ./warp-go --update --config=warp.conf --license=$ID --device-name=warp+$(date +%s%N |md5sum | cut -c 1-3) 2>&1 | grep -q "connection refused"; then
echo "网络连接繁忙,升级失败" echo "网络连接繁忙,升级失败"
else else
./warp-go --update --config=warp.conf --license=$ID --device-name=warp+$(date +%s%N |md5sum | cut -c 1-3) ./warp-go --update --config=warp.conf --license=$ID --device-name=warp+$(date +%s%N |md5sum | cut -c 1-3)
fi fi
} }
warpgoteams(){ warpgoteams(){
warpgoac warpgoac
echo "Teams团队Token获取地址https://web--public--warp-team-api--coia-mfs4.code.run/" echo "Teams团队Token获取地址https://web--public--warp-team-api--coia-mfs4.code.run/"
read -p "请输入团队账户Token" ID read -p "请输入团队账户Token" ID
if ./warp-go --register --config=warp.conf --team-config=$ID --device-name=warp+teams+$(date +%s%N |md5sum | cut -c 1-3) 2>&1 | grep -q "connection refused"; then if ./warp-go --register --config=warp.conf --team-config=$ID --device-name=warp+teams+$(date +%s%N |md5sum | cut -c 1-3) 2>&1 | grep -q "connection refused"; then
echo "网络连接繁忙,升级失败" echo "网络连接繁忙,升级失败"
else else
./warp-go --register --config=warp.conf --team-config=$ID --device-name=warp+teams+$(date +%s%N |md5sum | cut -c 1-3) ./warp-go --register --config=warp.conf --team-config=$ID --device-name=warp+teams+$(date +%s%N |md5sum | cut -c 1-3)
fi fi
} }
warpgoconfig(){ warpgoconfig(){
if ./warp-go --config=warp.conf --export-wireguard=warpgo.conf 2>&1 | grep -q "connection refused"; then if ./warp-go --config=warp.conf --export-wireguard=warpgo.conf 2>&1 | grep -q "connection refused"; then
echo "网络连接繁忙仅生成WARP-IPV4配置" && sleep 1 echo "网络连接繁忙仅生成WARP-IPV4配置" && sleep 1
output=$(cat warp.conf) output=$(cat warp.conf)
private_key=$(sed -n 's/PrivateKey = \(.*\)/\1/p' warp.conf) private_key=$(sed -n 's/PrivateKey = \(.*\)/\1/p' warp.conf)
cat > warpgo.conf <<EOF cat > warpgo.conf <<EOF
[Interface] [Interface]
PrivateKey = $private_key PrivateKey = $private_key
Address = 172.16.0.2/32 Address = 172.16.0.2/32
DNS = 1.1.1.1 DNS = 1.1.1.1
MTU = 1280 MTU = 1280
[Peer] [Peer]
PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo= PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
AllowedIPs = 0.0.0.0/0 AllowedIPs = 0.0.0.0/0
Endpoint = 162.159.193.10:2408 Endpoint = 162.159.193.10:2408
EOF EOF
else else
./warp-go --config=warp.conf --export-wireguard=warpgo.conf ./warp-go --config=warp.conf --export-wireguard=warpgo.conf
./warp-go --config=warp.conf --export-singbox=sbwarp.json ./warp-go --config=warp.conf --export-singbox=sbwarp.json
fi fi
sed -i "s/engage.cloudflareclient.com:2408/162.159.193.10:2408/g" warpgo.conf sed -i "s/engage.cloudflareclient.com:2408/162.159.193.10:2408/g" warpgo.conf
} }
warpgoshow(){ warpgoshow(){
clear clear
echo echo
echo "warp账户申请成功" && sleep 3 echo "warp账户申请成功" && sleep 3
echo echo
reserved=$(grep -o '"reserved":\[[^]]*\]' sbwarp.json 2> /dev/null) reserved=$(grep -o '"reserved":\[[^]]*\]' sbwarp.json 2> /dev/null)
if [[ -n $reserved ]]; then if [[ -n $reserved ]]; then
echo "reserved值$reserved" && sleep 2 echo "reserved值$reserved" && sleep 2
fi fi
echo echo
echo "warp-wireguardwarp-go配置信息如下" && sleep 2 echo "warp-wireguardwarp-go配置信息如下" && sleep 2
cat warpgo.conf cat warpgo.conf
echo echo
sleep 2 sleep 2
qrencode -t ansiutf8 < warpgo.conf 2>/dev/null qrencode -t ansiutf8 < warpgo.conf 2>/dev/null
echo echo
note note
rmrf rmrf
} }
acwgcf(){ acwgcf(){
echo echo
echo "1.warp-wgcf普通账户" echo "1.warp-wgcf普通账户"
echo "2.warp-wgcf+账户" echo "2.warp-wgcf+账户"
#echo "3.warp-wgcf+teams团队账户" #echo "3.warp-wgcf+teams团队账户"
echo "0.退出" echo "0.退出"
read -p "请选择: " menu read -p "请选择: " menu
if [ "$menu" == "1" ];then if [ "$menu" == "1" ];then
wgcfreg && wgcfshow wgcfreg && wgcfshow
elif [ "$menu" == "2" ];then elif [ "$menu" == "2" ];then
wgcfup && wgcfshow wgcfup && wgcfshow
#elif [ "$menu" == "3" ];then #elif [ "$menu" == "3" ];then
#wgcfteams && wgcfshow #wgcfteams && wgcfshow
else else
exit exit
fi fi
} }
acwarpgo(){ acwarpgo(){
echo echo
echo "1.warp-go普通账户" echo "1.warp-go普通账户"
echo "2.warp-go+账户" echo "2.warp-go+账户"
echo "3.warp-go+teams团队账户" echo "3.warp-go+teams团队账户"
echo "0.退出" echo "0.退出"
read -p "请选择: " menu read -p "请选择: " menu
if [ "$menu" == "1" ];then if [ "$menu" == "1" ];then
warpgoac && warpgoconfig && warpgoshow warpgoac && warpgoconfig && warpgoshow
elif [ "$menu" == "2" ];then elif [ "$menu" == "2" ];then
warpgoplus && warpgoconfig && warpgoshow warpgoplus && warpgoconfig && warpgoshow
elif [ "$menu" == "3" ];then elif [ "$menu" == "3" ];then
warpgoteams && warpgoconfig && warpgoshow warpgoteams && warpgoconfig && warpgoshow
else else
exit exit
fi fi
} }
echo "------------------------------------------------------" echo "------------------------------------------------------"
echo "甬哥Github项目 github.com/yonggekkk" echo "甬哥Github项目 github.com/yonggekkk"
echo "甬哥Blogger博客 ygkkk.blogspot.com" echo "甬哥Blogger博客 ygkkk.blogspot.com"
echo "甬哥YouTube频道 www.youtube.com/@ygkkk" echo "甬哥YouTube频道 www.youtube.com/@ygkkk"
echo "注册生成WARP-Wireguard配置文件、二维码 V2023.12.20" echo "注册生成WARP-Wireguard配置文件、二维码 V2023.12.20"
echo "------------------------------------------------------" echo "------------------------------------------------------"
echo echo
echo "1.选择 warp-go 注册warp配置 (支持所有账户升级显示reserved值推荐) " echo "1.选择 warp-go 注册warp配置 (支持所有账户升级显示reserved值推荐) "
echo "2.选择 wgcf 注册warp配置 (支持普通账户、+账户) " echo "2.选择 wgcf 注册warp配置 (支持普通账户、+账户) "
echo "3.选择 warp api 注册warp配置 (支持普通账户显示reserved值)" echo "3.选择 warp api 注册warp配置 (支持普通账户显示reserved值)"
echo "0.退出" echo "0.退出"
read -p "请选择: " menu read -p "请选择: " menu
if [ "$menu" == "1" ];then if [ "$menu" == "1" ];then
acwarpgo acwarpgo
elif [ "$menu" == "3" ];then elif [ "$menu" == "3" ];then
acwarpapi acwarpapi
elif [ "$menu" == "2" ];then elif [ "$menu" == "2" ];then
acwgcf acwgcf
else else
exit exit
fi fi