Update menu.sh

dependabot/github_actions/actions/checkout-3.1.0
fscarmen 3 years ago committed by GitHub
parent b2c408bfe5
commit 2923f1e0b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 117
      menu.sh

@ -16,8 +16,8 @@ T[E3]="The TUN module is not loaded. You should turn it on in the control panel.
T[C3]="没有加载 TUN 模块,请在管理后台开启或联系供应商了解如何开启,问题反馈:[https://github.com/fscarmen/warp/issues]"
T[E4]="The WARP server cannot be connected. It may be a China Mainland VPS. You can manually ping 162.159.193.10 or ping6 2606:4700:d0::a29f:c001.You can run the script again if the connect is successful. Feedback: [https://github.com/fscarmen/warp/issues]"
T[C4]="与 WARP 的服务器不能连接,可能是大陆 VPS,可手动 ping 162.159.193.10 或 ping6 2606:4700:d0::a29f:c001,如能连通可再次运行脚本,问题反馈:[https://github.com/fscarmen/warp/issues]"
T[E5]="The script supports Debian, Ubuntu, CentOS or Alpine systems only. Feedback: [https://github.com/fscarmen/warp/issues]"
T[C5]="本脚本只支持 Debian、Ubuntu、CentOS 或 Alpine 系统,问题反馈:[https://github.com/fscarmen/warp/issues]"
T[E5]="The script supports Debian, Ubuntu, CentOS, Arch or Alpine systems only. Feedback: [https://github.com/fscarmen/warp/issues]"
T[C5]="本脚本只支持 Debian、Ubuntu、CentOS、Arch 或 Alpine 系统,问题反馈:[https://github.com/fscarmen/warp/issues]"
T[E6]="warp h (help)\n warp o (Turn off WARP temporarily)\n warp u (Turn off and uninstall WARP interface and Socks5 Linux Client)\n warp b (Upgrade kernel, turn on BBR, change Linux system)\n warp a (Upgrade to WARP+ account)\n warp p (Getting WARP+ quota by scripts)\n warp v (Sync the latest version)\n warp r (Connect/Disconnect WARP Linux Client)\n warp 4/6 (Add WARP IPv4/IPv6 interface)\n warp d (Add WARP dualstack interface IPv4 + IPv6)\n warp c (Install WARP Linux Client and set to proxy mode)\n warp l (Install WARP Linux Client and set to WARP mode)\n warp i (Change the WARP IP to support Netflix)\n warp s (WARP single and dual stacks switch echo other. Such as [warp s 4],[warp s 6],[warp s d])\n warp e (Install Iptables + dnsmasq + ipset solution)\n warp w (Install WireProxy solution)\n warp y (Connect/Disconnect WireProxy socks5)\n"
T[C6]="warp h (帮助菜单)\n warp o (临时warp开关)\n warp u (卸载 WARP 网络接口和 Socks5 Client)\n warp b (升级内核、开启BBR及DD)\n warp a (免费 WARP 账户升级 WARP+)\n warp p (刷WARP+流量)\n warp v (同步脚本至最新版本)\n warp r (WARP Linux Client 开关)\n warp 4/6 (WARP IPv4/IPv6 单栈)\n warp d (WARP 双栈)\n warp c (安装 WARP Linux Client,开启 Socks5 代理模式)\n warp l (安装 WARP Linux Client,开启 WARP 模式)\n warp i (更换支持 Netflix 的IP)\n warp s [OPTION](WARP 单双栈相互切换,如 [warp s 4]、[warp s 6]、[warp s d])\n warp e (安装 Iptables + dnsmasq + ipset 解决方案)\n warp w (安装 WireProxy 解决方案)\n warp y (WireProxy socks5 开关)\n"
T[E7]="Installing curl..."
@ -71,9 +71,9 @@ T[C30]="License 应为26位字符,请重新输入 WARP+ License,没有可回
T[E31]="\n 1.Update with WARP+ license\n 2.Update with Teams (You need upload the Teams file to a private storage space before. For example: gist.github.com)\n"
T[C31]="\n 1.使用 WARP+ license 升级\n 2.使用 Teams 升级 (你须事前把 Teams 文件上传到私密存储空间,比如:gist.github.com )\n"
T[E32]="Step 1/3: Install dependencies..."
T[C32]="进度 1/3安装系统依赖……"
T[C32]="进度 1/3: 安装系统依赖……"
T[E33]="Step 2/3: WGCF is ready"
T[C33]="进度 2/3已安装 WGCF"
T[C33]="进度 2/3: 已安装 WGCF"
T[E34]="Failed to change port. Feedback: [https://github.com/fscarmen/warp/issues]"
T[C34]="更换端口不成功,问题反馈:[https://github.com/fscarmen/warp/issues]"
T[E35]="Update WARP+ account..."
@ -164,8 +164,8 @@ T[E77]="Turn off WARP"
T[C77]="暂时关闭 WARP"
T[E78]="Upgrade to WARP+ or Teams account"
T[C78]="升级为 WARP+ 或 Teams 账户"
T[E79]="WARP is already running and will switch to single and dual stack mutual switching mode"
T[C79]="WARP 已经运行,将改为单双栈相互切换模式"
T[E79]=""
T[C79]=""
T[E80]="Professional one-click script for WARP to unblock streaming media (Supports multi-platform, multi-mode and TG push)"
T[C80]="WARP 解锁 Netflix 等流媒体专业一键(支持多平台、多方式和 TG 通知)"
T[E81]="Step 3/3: Searching for the best MTU value is ready."
@ -254,8 +254,8 @@ T[E122]="Port change to \$PORT succeeded."
T[C122]="端口成功更换至 \$PORT"
T[E123]="Change the WARP IP to support Netflix"
T[C123]="更换支持 Netflix 的 IP"
T[E124]="It is IPv6 priority now, press [y] to change to IPv4 priority? And other keys for unchanging:"
T[C124]="现在是 IPv6 优先,改为IPv4 优先的话请按 [y],其他按键保持不变:"
T[E124]="\n 1. Brush WARP IPv4 (default)\n 2. Brush WARP IPv6\n"
T[C124]="\n 1. 刷 WARP IPv4 (默认)\n 2. 刷 WARP IPv6\n"
T[E125]="\$(date +'%F %T') Region: \$REGION Done. IPv\$NF: \$WAN \$COUNTRY \$ASNORG. Retest after 1 hour. Brush ip runing time:\$DAY days \$HOUR hours \$MIN minutes \$SEC seconds"
T[C125]="\$(date +'%F %T') 区域 \$REGION 解锁成功,IPv\$NF: \$WAN \$COUNTRY \$ASNORG,1 小时后重新测试,刷 IP 运行时长: \$DAY 天 \$HOUR 时 \$MIN 分 \$SEC 秒"
T[E126]="\$(date +'%F %T') Try \${i}. Failed. IPv\$NF: \$WAN \$COUNTRY \$ASNORG. Retry after \${j} seconds. Brush ip runing time:\$DAY days \$HOUR hours \$MIN minutes \$SEC seconds"
@ -344,15 +344,15 @@ T[E167]="WARP iptable was installed.\n connect/disconnect by [warp o]\n uninstal
T[C167]="WARP iptable 已安装\n 连接/断开: warp o\n 卸载: warp u"
T[E168]="Install CloudFlare Client and set mode to WARP"
T[C168]="安装 CloudFlare Client 并设置为 WARP 模式"
T[E169]="WARP\$AC IPv4\$WAN4 \$WARPSTATUS4 \$COUNTRY4 \$ASNORG4"
T[C169]="WARP\$AC IPv4\$WAN4 \$WARPSTATUS4 \$COUNTRY4 \$ASNORG4"
T[E169]="WARP\$AC IPv4: \$WAN4 \$WARPSTATUS4 \$COUNTRY4 \$ASNORG4"
T[C169]="WARP\$AC IPv4: \$WAN4 \$WARPSTATUS4 \$COUNTRY4 \$ASNORG4"
# 自定义字体彩色,read 函数,友道翻译函数
red(){ echo -e "\033[31m\033[01m$@\033[0m"; }
green(){ echo -e "\033[32m\033[01m$@\033[0m"; }
yellow(){ echo -e "\033[33m\033[01m$@\033[0m"; }
reading(){ read -rp "$(green "$1")" "$2"; }
translate(){ [[ -n "$1" ]] && curl -ksm8 "http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=${1//[[:space:]]/}" | cut -d \" -f18 2>/dev/null; }
translate(){ [[ -n "$1" ]] && curl -ksm8 "http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=1" | cut -d \" -f18 2>/dev/null; }
# 脚本当天及累计运行次数统计
statistics_of_run-times(){
@ -364,7 +364,7 @@ TODAY=$(expr "$COUNT" : '.*\s\([0-9]\{1,\}\)\s/.*') && TOTAL=$(expr "$COUNT" : '
select_language(){
case $(cat /etc/wireguard/language 2>&1) in
E ) L=E;; C ) L=C;;
* ) L=E && [[ -z $OPTION || $OPTION = [aclehdpbvisw46] ]] && yellow " ${T[${L}0]} " && reading " ${T[${L}50]} " LANGUAGE
* ) L=E && [[ -z $OPTION || $OPTION = [aclehdpbviw46] ]] && yellow " ${T[${L}0]} " && reading " ${T[${L}50]} " LANGUAGE
[[ $LANGUAGE = 2 ]] && L=C;;
esac
}
@ -423,7 +423,7 @@ check_operating_system(){
# 安装 curl
check_dependencies(){
type -P curl >/dev/null 2>&1 || (yellow " ${T[${L}7]} " && ${PACKAGE_INSTALL[int]} curl) || (yellow " ${T[${L}8]} " && ${PACKAGE_UPDATE[int]} && ${PACKAGE_INSTALL[int]} curl)
! type -P curl >/dev/null 2>&1 && yellow " ${T[${L}9]} " && exit 1
! type -P curl >/dev/null 2>&1 && red " ${T[${L}9]} " && exit 1
[[ $SYSTEM = Alpine ]] && ! type -P curl >/dev/null 2>&1 && ${PACKAGE_UPDATE[int]} && ${PACKAGE_INSTALL[int]} curl wget grep
}
@ -559,8 +559,8 @@ change_ip(){
grep -q "^#.*\:\:\/0" /etc/wireguard/wgcf.conf && T6=0 || T6=1
case "$T4$T6" in
01 ) NF='6';; 10 ) NF='4';;
11 ) [[ $(curl -ksm8 https://ip.gs) =~ ":" ]] && NF='6' && reading " ${T[${L}124]} " NETFLIX || NF='4'
[[ $NETFLIX = [Yy] ]] && NF='4' && PRIORITY=1 && stack_priority;;
11 ) yellow " ${T[${L}124]} " reading " ${T[${L}50]} " NETFLIX
NF='4' && [[ $NETFLIX = 2 ]] && NF='6';;
esac
[[ -z "$EXPECT" ]] && input_region
@ -758,7 +758,7 @@ uninstall(){
# 显示卸载结果
ip4_info; [[ $L = C && -n "$COUNTRY4" ]] && COUNTRY4=$(translate "$COUNTRY4")
ip6_info; [[ $L = C && -n "$COUNTRY6" ]] && COUNTRY6=$(translate "$COUNTRY6")
green " ${T[${L}45]}\n IPv4$WAN4 $COUNTRY4 $ASNORG4\n IPv6$WAN6 $COUNTRY6 $ASNORG6 "
green " ${T[${L}45]}\n IPv4: $WAN4 $COUNTRY4 $ASNORG4\n IPv6: $WAN6 $COUNTRY6 $ASNORG6 "
}
# 同步脚本至最新版本
@ -781,22 +781,22 @@ net(){
wg-quick up wgcf >/dev/null 2>&1
ss -nltp | grep dnsmasq >/dev/null 2>&1 && systemctl restart dnsmasq >/dev/null 2>&1
ip4_info; ip6_info
until [[ $TRACE4$TRACE6 =~ on|plus ]]
do (( i++ )) || true
yellow " $(eval echo "${T[${L}12]}") "
${SYSTEMCTL_RESTART[int]} >/dev/null 2>&1
ss -nltp | grep dnsmasq >/dev/null 2>&1 && systemctl restart dnsmasq >/dev/null 2>&1
ip4_info; ip6_info
if [[ $i = "$j" ]]; then
if [[ $LICENSETYPE = 2 ]]; then
unset LICENSETYPE && i=0 && green " ${T[${L}129]} " &&
cp -f /etc/wireguard/wgcf-profile.conf /etc/wireguard/wgcf.conf
else
wg-quick down wgcf >/dev/null 2>&1
red " $(eval echo "${T[${L}13]}") " && exit 1
fi
until [[ $TRACE4$TRACE6 =~ on|plus ]]; do
(( i++ )) || true
yellow " $(eval echo "${T[${L}12]}") "
${SYSTEMCTL_RESTART[int]} >/dev/null 2>&1
ss -nltp | grep dnsmasq >/dev/null 2>&1 && systemctl restart dnsmasq >/dev/null 2>&1
ip4_info; ip6_info
if [[ $i = "$j" ]]; then
if [[ $LICENSETYPE = 2 ]]; then
unset LICENSETYPE && i=0 && green " ${T[${L}129]} " &&
cp -f /etc/wireguard/wgcf-profile.conf /etc/wireguard/wgcf.conf
else
wg-quick down wgcf >/dev/null 2>&1
red " $(eval echo "${T[${L}13]}") " && exit 1
fi
done
fi
done
green " ${T[${L}14]} "
[[ $L = C ]] && COUNTRY4=$(translate "$COUNTRY4")
[[ $L = C ]] && COUNTRY6=$(translate "$COUNTRY6")
@ -1023,7 +1023,7 @@ update_license(){
done
[[ $UPDATE_LICENSE = 1 && -n $LICENSE && -z $NAME ]] && reading " ${T[${L}102]} " NAME
[[ -n $NAME ]] && NAME="${NAME//[[:space:]]/_}" || NAME=${NAME:-'WARP'}
}
}
# 输入 Linux Client 端口,先检查默认的40000是否被占用,限制4-5位数字,准确匹配空闲端口
input_port(){
@ -1192,7 +1192,7 @@ install(){
# 询问是否有 WARP+ 或 Teams 账户
[[ -z $LICENSETYPE ]] && yellow " ${T[${L}132]}" && reading " ${T[${L}50]} " LICENSETYPE
case $LICENSETYPE in
1 ) INPUT_LICENSE=1 && input_license;;
1 ) INPUT_LICENSE=1 && input_license;;
2 ) input_url;;
esac
@ -1483,8 +1483,8 @@ EOF
# 结果提示,脚本运行时间,次数统计
end=$(date +%s)
red "\n==============================================================\n"
green " IPv4$WAN4 $WARPSTATUS4 $COUNTRY4 $ASNORG4 "
green " IPv6$WAN6 $WARPSTATUS6 $COUNTRY6 $ASNORG6 "
green " IPv4: $WAN4 $WARPSTATUS4 $COUNTRY4 $ASNORG4 "
green " IPv6: $WAN6 $WARPSTATUS6 $COUNTRY6 $ASNORG6 "
grep -sq 'Device name' /etc/wireguard/info.log 2>/dev/null && TYPE='+' || TYPE=' Teams'
[[ $TRACE4$TRACE6 =~ plus ]] && green " $(eval echo "${T[${L}41]}") " && check_quota && green " $(eval echo "${T[${L}133]}") "
[[ $TRACE4$TRACE6 =~ on ]] && green " $(eval echo "${T[${L}42]}") "
@ -1687,7 +1687,11 @@ check_quota(){
API=$(curl -s "https://api.cloudflareclient.com/v0a884/reg/$DEVICE_ID" -H "User-Agent: okhttp/3.12.1" -H "Authorization: Bearer $ACCESS_TOKEN")
QUOTA=$(grep -oP '"quota":\K\d+' <<< $API)
fi
[[ $QUOTA -gt 10000000000000 ]] && QUOTA="$(echo "scale=2; $QUOTA/1000000000000" | bc) TB" || QUOTA="$(echo "scale=2; $QUOTA/1000000000" | bc) GB"
if type -p bc >/dev/null 2>&1; then
[[ $QUOTA -gt 10000000000000 ]] && QUOTA="$(echo "scale=2; $QUOTA/1000000000000" | bc) TB" || QUOTA="$(echo "scale=2; $QUOTA/1000000000" | bc) GB"
else [[ $QUOTA -gt 10000000000000 ]] && QUOTA="$((QUOTA/1000000000000)) TB" || QUOTA="$((QUOTA/1000000000)) GB"
fi
}
# 免费 WARP 账户升级 WARP+ 账户
@ -1814,13 +1818,13 @@ menu_setting(){
ACTION1(){ stack_switch; }; ACTION2(){ stack_switch; }; ACTION3(){ update; };;
esac
fi
[[ -e /etc/dnsmasq.d/warp.conf ]] && IPTABLE_INSTALLED="${T[${L}92]}"
[[ -n $(wg 2>/dev/null) ]] && OPTION4="${T[${L}77]}" || OPTION4="${T[${L}71]}"
OPTION5="$CLIENT_INSTALLED$AMD64_ONLY${T[${L}82]}"; OPTION6="${T[${L}123]}"; OPTION7="${T[${L}72]}"; OPTION8="${T[${L}74]}"; OPTION9="${T[${L}73]}"; OPTION10="${T[${L}75]}";
OPTION11="${T[${L}80]}"; OPTION12="$IPTABLE_INSTALLED${T[${L}138]}"; OPTION13="$WIREPROXY_INSTALLED${T[${L}148]}"; OPTION14="$CLIENT_INSTALLED$AMD64_ONLY${T[${L}168]}"; OPTION0="${T[${L}76]}"
ACTION4(){ OPTION=o; onoff; }
ACTION5(){ proxy; }; ACTION6(){ change_ip; }; ACTION7(){ uninstall; }; ACTION8(){ plus; }; ACTION9(){ bbrInstall; }; ACTION10(){ ver; };
ACTION11(){ bash <(curl -sSL https://raw.githubusercontent.com/fscarmen/warp_unlock/main/unlock.sh) -$L; };
@ -1828,12 +1832,12 @@ menu_setting(){
ACTION13(){ OCTEEP=1; install; };
ACTION14(){ LUBAN=1; proxy; };
ACTION0(){ exit; }
grep -sq 'Device name' /etc/wireguard/info.log 2>/dev/null && check_quota && TYPE='+' && PLUSINFO="${T[${L}25]}$(grep 'Device name' /etc/wireguard/info.log 2>/dev/null | awk '{ print $NF }')\t ${T[${L}63]}: $QUOTA" || TYPE=' Teams'
}
# 显示菜单
menu(){
grep -sq 'Device name' /etc/wireguard/info.log 2>/dev/null && check_quota && TYPE='+' && PLUSINFO="${T[${L}25]}$(grep 'Device name' /etc/wireguard/info.log 2>/dev/null | awk '{ print $NF }')\t ${T[${L}63]}: $QUOTA" || TYPE=' Teams'
clear
yellow " ${T[${L}16]} "
red "======================================================================================================================\n"
@ -1854,12 +1858,14 @@ menu(){
red "\n======================================================================================================================\n"
green " 1. $OPTION1\n 2. $OPTION2\n 3. $OPTION3\n 4. $OPTION4\n 5. $OPTION5\n 6. $OPTION6\n 7. $OPTION7\n 8. $OPTION8\n 9. $OPTION9 \n 10. $OPTION10\n 11. $OPTION11\n 12. $OPTION12\n 13. $OPTION13\n 14. $OPTION14\n 0. $OPTION0\n "
reading " ${T[${L}50]} " CHOOSE1
case "$CHOOSE1" in
1 ) ACTION1;; 2 ) ACTION2;; 3 ) ACTION3;; 4 ) ACTION4;; 5 ) ACTION5;;
6 ) ACTION6;; 7 ) ACTION7;; 8 ) ACTION8;; 9 ) ACTION9;; 10 ) ACTION10;;
11 ) ACTION11;; 12 ) ACTION12;; 13 ) ACTION13;; 14 ) ACTION14;;
0 ) ACTION0;; * ) red " ${T[${L}51]} [0-10] "; sleep 1; menu;;
esac
# 输入必须是数字且少于等于最大可选项
MAX_CHOOSE=14
if grep -wqP "\d+" <<< $CHOOSE1 && [ $CHOOSE1 -le $MAX_CHOOSE ]; then
ACTION$CHOOSE
else
red " ${T[${L}51]} [0-$MAX_CHOOSE] " && sleep 1 && menu
fi
}
# 传参选项 OPTION:1=为 IPv4 或者 IPv6 补全另一栈WARP; 2=安装双栈 WARP; u=卸载 WARP; b=升级内核、开启BBR及DD; o=WARP开关;p=刷 WARP+ 流量; 其他或空值=菜单界面
@ -1901,7 +1907,6 @@ v ) ver; exit 0;;
n ) net; exit 0;;
o ) onoff; exit 0;;
r ) proxy_onoff; exit 0;;
s ) stack_switch; exit 0;;
y ) wireproxy_onoff; exit 0;;
esac
@ -1913,16 +1918,16 @@ menu_setting
# 设置部分后缀 3/3
case "$OPTION" in
# 在已运行 Linux Client 前提下,不能安装 WARP IPv4 或者双栈网络接口。如已经运行 WARP ,参数 4,6,d 从原来的安装改为切换
[46d] ) if [[ -n $(wg 2>/dev/null) ]]; then
SWITCHCHOOSE="$(tr '[:lower:]' '[:upper:]' <<< "$OPTION")"; OPTION='s'
yellow " ${T[${L}79]} " && stack_switch
[46d] ) if [[ -e /etc/wireguard/wgcf.conf ]]; then
SWITCHCHOOSE="$(tr '[:lower:]' '[:upper:]' <<< "$OPTION")"
stack_switch
else
case "$OPTION" in
4 ) [[ $CLIENT = [35] ]] && red " ${T[${L}110]} " && exit 1
CONF=${CONF1[m]};;
6 ) CONF=${CONF2[m]};;
d ) [[ $CLIENT = [35] ]] && red " ${T[${L}110]} " && exit 1
CONF=${CONF3[m]};;
4 ) [[ $CLIENT = [35] ]] && red " ${T[${L}110]} " && exit 1
CONF=${CONF1[m]};;
6 ) CONF=${CONF2[m]};;
d ) [[ $CLIENT = [35] ]] && red " ${T[${L}110]} " && exit 1
CONF=${CONF3[m]};;
esac
install
fi;;

Loading…
Cancel
Save