diff --git a/menu.sh b/menu.sh index 497265e..1d3789f 100644 --- a/menu.sh +++ b/menu.sh @@ -193,8 +193,8 @@ T[E91]="Client is disconnected. It could be connect again by [warp r]" T[C91]="已断开 Client,再次连接可以用 warp r" T[E92]="(!!! Already installed, do not select.)" T[C92]="(!!! 已安装,请勿选择)" -T[E93]="Client is not installed. It could be installed by [warp c]" -T[C93]="Client 未安装,如需安装,可以用 warp c" +T[E93]="Client is not installed." +T[C93]="Client 未安装" T[E94]="Congratulations! WARP\$AC Linux Client is working. Spend time:\$(( end - start )) seconds.\\\n The script runs on today: \$TODAY. Total:\$TOTAL" T[C94]="恭喜!WARP\$AC Linux Client 工作中, 总耗时:\$(( end - start ))秒, 脚本当天运行次数:\$TODAY,累计运行次数:\$TOTAL" T[E95]="Client works with non-WARP IPv4. The script is aborted. Feedback: [https://github.com/fscarmen/warp/issues]" @@ -319,8 +319,8 @@ T[E154]="\n 1. WGCF WARP account\n 2. WARP Linux Client account\n 3. WireProxy a T[C154]="\n 1. WGCF WARP 账户\n 2. WARP Linux Client 账户\n 3. WireProxy 账户\n" T[E155]="WGCF WARP has not been installed yet." T[C155]="WGCF WARP 还未安装" -T[E156]="Socks5 Proxy Client has not been installed yet." -T[C156]="Socks5 Proxy 客户端还未安装" +T[E156]="" +T[C156]="" T[E157]="WireProxy has not been installed yet." T[C157]="WireProxy 还未安装" T[E158]="WireProxy is disconnected. It could be connect again by [warp y]" @@ -613,17 +613,7 @@ change_ip(){ else interface_restart(){ red " $(eval echo "${T[${L}126]}") " && warp-cli --accept-tos delete >/dev/null 2>&1 && warp-cli --accept-tos register >/dev/null 2>&1 && [[ -e /etc/wireguard/license ]] && warp-cli --accept-tos set-license $(cat /etc/wireguard/license) >/dev/null 2>&1 && sleep 2 - warp-cli --accept-tos disconnect >/dev/null 2>&1 - warp-cli --accept-tos disable-always-on >/dev/null 2>&1 - ip -4 rule delete from 172.16.0.2 lookup 51820 - ip -4 rule delete table main suppress_prefixlength 0 - sleep 2 - warp-cli --accept-tos connect >/dev/null 2>&1 - warp-cli --accept-tos enable-always-on >/dev/null 2>&1 - sleep 6 - ip -4 rule add from 172.16.0.2 lookup 51820 - ip -4 route add default dev CloudflareWARP table 51820 - ip -4 rule add table main suppress_prefixlength 0 + systemctl restart warp-svc } INTERFACE='--interface CloudflareWARP' @@ -827,47 +817,78 @@ onoff(){ # Proxy 开关,先检查是否已安装,再根据当前状态转向相反状态 proxy_onoff(){ - ! type -P warp-cli >/dev/null 2>&1 && red " ${T[${L}156]} " && exit 1 - if [[ $(warp-cli --accept-tos settings) =~ WarpProxy ]]; then - PROXY=$(warp-cli --accept-tos status 2>/dev/null) - case "$PROXY" in - *Connecting* ) red " ${T[${L}96]} " && exit 1;; - *missing* ) warp-cli --accept-tos register >/dev/null 2>&1 && [[ -e /etc/wireguard/license ]] && warp-cli --accept-tos set-license $(cat /etc/wireguard/license)>/dev/null 2>&1;; - *Connected* ) warp-cli --accept-tos disconnect >/dev/null 2>&1 && warp-cli --accept-tos disable-always-on >/dev/null 2>&1 && [[ ! $(ss -nltp) =~ 'warp-svc' ]] && green " ${T[${L}91]} " && exit 0;; - *Disconnected* ) warp-cli --accept-tos connect >/dev/null 2>&1 && warp-cli --accept-tos enable-always-on >/dev/null 2>&1 && STATUS=1 && sleep 1 && proxy_info - if [[ $STATUS = 1 ]]; then - [[ $(ss -nltp) =~ 'warp-svc' ]] && green " ${T[${L}90]}\n $(eval echo "${T[${L}27]}") " && exit 0 - [[ $(warp-cli --accept-tos status 2>/dev/null) =~ Connecting ]] && red " ${T[${L}96]} " && exit 1 - fi;; - * ) red " ${T[${L}93]} " && exit 1;; - esac - - else if [[ $(ip a) =~ 'CloudflareWARP' ]]; then - warp-cli --accept-tos disconnect >/dev/null 2>&1 - warp-cli --accept-tos disable-always-on >/dev/null 2>&1 - ip -4 rule delete from 172.16.0.2 lookup 51820 - ip -4 rule delete table main suppress_prefixlength 0 - green " ${T[${L}91]} " && exit 0 - else - warp-cli --accept-tos connect >/dev/null 2>&1 - warp-cli --accept-tos enable-always-on >/dev/null 2>&1 - sleep 5 - ip -4 rule add from 172.16.0.2 lookup 51820 - ip -4 route add default dev CloudflareWARP table 51820 - ip -4 rule add table main suppress_prefixlength 0 - INTERFACE='--interface CloudflareWARP' - ip4_info; [[ $L = C && -n "$COUNTRY4" ]] && COUNTRY4=$(translate "$COUNTRY4") + ! type -P warp-cli >/dev/null 2>&1 && red " ${T[${L}93]} " && exit 1 + if systemctl is-active warp-svc >/dev/null 2>&1; then + systemctl stop warp-svc + green " ${T[${L}91]} " && exit 0 + + else systemctl start warp-svc + if [[ $(warp-cli --accept-tos settings) =~ WarpProxy ]]; then + proxy_info ACCOUNT=$(warp-cli --accept-tos account 2>/dev/null) if [[ $ACCOUNT =~ 'Limited' ]]; then - QUOTA=$(expr "$ACCOUNT" : '.*Quota:\s\([0-9]\{1,\}\)\s.*') - [[ $QUOTA -gt 10000000000000 ]] && QUOTA="$((QUOTA/1000000000000)) TiB" || QUOTA="$((QUOTA/1000000000)) GiB" - AC='+' + QUOTA=$(expr "$ACCOUNT" : '.*Quota:\s\([0-9]\{1,\}\)\s.*') + [[ $QUOTA -gt 10000000000000 ]] && QUOTA="$((QUOTA/1000000000000)) TiB" || QUOTA="$((QUOTA/1000000000)) GiB" + AC='+' fi - [[ $(ip a) =~ 'CloudflareWARP' ]] && green " ${T[${L}90]} $(eval echo "${T[${L}169]}") " - [[ $ACCOUNT =~ 'Limited' ]] && green " ${T[${L}63]}:$QUOTA " - exit 0 + [[ $(ss -nltp) =~ 'warp-svc' ]] && green " ${T[${L}90]}\n $(eval echo "${T[${L}27]}") " + [[ -n "$QUOTA" ]] && green " ${T[${L}63]}:$QUOTA " + exit 0 + + else INTERFACE='--interface CloudflareWARP' && ip4_info + [[ $L = C && -n "$COUNTRY4" ]] && COUNTRY4=$(translate "$COUNTRY4") + ACCOUNT=$(warp-cli --accept-tos account 2>/dev/null) + if [[ $ACCOUNT =~ 'Limited' ]]; then + QUOTA=$(expr "$ACCOUNT" : '.*Quota:\s\([0-9]\{1,\}\)\s.*') + [[ $QUOTA -gt 10000000000000 ]] && QUOTA="$((QUOTA/1000000000000)) TiB" || QUOTA="$((QUOTA/1000000000)) GiB" + AC='+' + fi + [[ $(ip a) =~ 'CloudflareWARP' ]] && green " ${T[${L}90]}\n $(eval echo "${T[${L}169]}") " + [[ -n "$QUOTA" ]] && green " ${T[${L}63]}:$QUOTA " + exit 0 fi fi + +# if [[ $(warp-cli --accept-tos settings) =~ WarpProxy ]]; then +# PROXY=$(warp-cli --accept-tos status 2>/dev/null) +# case "$PROXY" in +# *Connecting* ) red " ${T[${L}96]} " && exit 1;; +# *missing* ) warp-cli --accept-tos register >/dev/null 2>&1 && [[ -e /etc/wireguard/license ]] && warp-cli --accept-tos set-license $(cat /etc/wireguard/license)>/dev/null 2>&1;; +# *Connected* ) warp-cli --accept-tos disconnect >/dev/null 2>&1 && warp-cli --accept-tos disable-always-on >/dev/null 2>&1 && [[ ! $(ss -nltp) =~ 'warp-svc' ]] && green " ${T[${L}91]} " && exit 0;; +# *Disconnected* ) warp-cli --accept-tos connect >/dev/null 2>&1 && warp-cli --accept-tos enable-always-on >/dev/null 2>&1 && STATUS=1 && sleep 1 && proxy_info +# if [[ $STATUS = 1 ]]; then +# [[ $(ss -nltp) =~ 'warp-svc' ]] && green " ${T[${L}90]}\n $(eval echo "${T[${L}27]}") " && exit 0 +# [[ $(warp-cli --accept-tos status 2>/dev/null) =~ Connecting ]] && red " ${T[${L}96]} " && exit 1 +# fi;; +# * ) red " ${T[${L}93]} " && exit 1;; +# esac +# +# else if [[ $(ip a) =~ 'CloudflareWARP' ]]; then +# warp-cli --accept-tos disconnect >/dev/null 2>&1 +# warp-cli --accept-tos disable-always-on >/dev/null 2>&1 +# ip -4 rule delete from 172.16.0.2 lookup 51820 +# ip -4 rule delete table main suppress_prefixlength 0 +# green " ${T[${L}91]} " && exit 0 +# else +# warp-cli --accept-tos connect >/dev/null 2>&1 +# warp-cli --accept-tos enable-always-on >/dev/null 2>&1 +# sleep 5 +# ip -4 rule add from 172.16.0.2 lookup 51820 +# ip -4 route add default dev CloudflareWARP table 51820 +# ip -4 rule add table main suppress_prefixlength 0 +# INTERFACE='--interface CloudflareWARP' +# ip4_info; [[ $L = C && -n "$COUNTRY4" ]] && COUNTRY4=$(translate "$COUNTRY4") +# ACCOUNT=$(warp-cli --accept-tos account 2>/dev/null) +# if [[ $ACCOUNT =~ 'Limited' ]]; then +# QUOTA=$(expr "$ACCOUNT" : '.*Quota:\s\([0-9]\{1,\}\)\s.*') +# [[ $QUOTA -gt 10000000000000 ]] && QUOTA="$((QUOTA/1000000000000)) TiB" || QUOTA="$((QUOTA/1000000000)) GiB" +# AC='+' +# fi +# [[ $(ip a) =~ 'CloudflareWARP' ]] && green " ${T[${L}90]} $(eval echo "${T[${L}169]}") " +# [[ $ACCOUNT =~ 'Limited' ]] && green " ${T[${L}63]}:$QUOTA " +# exit 0 +# fi +# fi } # WireProxy 开关,先检查是否已安装,再根据当前状态转向相反状态