Update menu.sh

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

@ -75,8 +75,8 @@ T[E32]="Step 1/3: Install dependencies..."
T[C32]="进度 1/3:安装系统依赖……"
T[E33]="Step 2/3: WGCF is ready"
T[C33]="进度 2/3:已安装 WGCF"
T[E34]="This system is a native dualstack. You can only choose the WARP dualstack. Same options as 1"
T[C34]="此系统为原生双栈,只能选择 WARP 双栈方案,选项与 1 相同"
T[E34]=""
T[C34]=""
T[E35]="Update WARP+ account..."
T[C35]="升级 WARP+ 账户中……"
T[E36]="The upgrade failed, WARP+ account error or more than 5 devices have been activated. Free WARP account to continu."
@ -151,8 +151,8 @@ T[E70]="WARP dualstack"
T[C70]="WARP 双栈"
T[E71]="Turn on WARP"
T[C71]="打开 WARP"
T[E72]="Turn off, uninstall WARP interface and Linux Client"
T[C72]="永久关闭 WARP 网络接口,并删除 WARP 和 Linux Client"
T[E72]="Turn off, uninstall WARP interface, Linux Client and WireProxy"
T[C72]="永久关闭 WARP 网络接口,并删除 WARP、 Linux Client 和 WireProxy"
T[E73]="Upgrade kernel, turn on BBR, change Linux system"
T[C73]="升级内核、安装BBR、DD脚本"
T[E74]="Getting WARP+ quota by scripts"
@ -293,8 +293,8 @@ T[E141]="Switch \${WARP_BEFORE[m]} to \${WARP_AFTER1[m]}"
T[C141]="\${WARP_BEFORE[m]} 转为 \${WARP_AFTER1[m]}"
T[E142]="Switch \${WARP_BEFORE[m]} to \${WARP_AFTER2[m]}"
T[C142]="\${WARP_BEFORE[m]} 转为 \${WARP_AFTER2[m]}"
T[E143]="Change Client port"
T[C143]="更改 Client 端口"
T[E143]="Change Client or WireProxy port"
T[C143]="更改 Client 或 WireProxy 端口"
T[E144]="Install WARP IPv6 interface"
T[C144]="安装 WARP IPv6 网络接口"
T[E145]="\\\n WARP ineterface can be switched to the following:\\\n 1. \$OPTION1\\\n 2. \$OPTION2\\\n 0. \${T[\${L}76]}\\\n"
@ -333,6 +333,12 @@ T[E161]="WireProxy is installed and disconnected"
T[C161]="WireProxy 已安装,状态为断开连接"
T[E162]="Local Socks5:\$PROXYSOCKS52 WARP\$AC2 IPv4:\$PROXYIP2 \$PROXYCOUNTRY2 \$PROXYASNORG2"
T[C162]="本地 Socks5:\$PROXYSOCKS52 WARP\$AC2 IPv4:\$PROXYIP2 \$PROXYCOUNTRY2 \$PROXYASNORG2"
T[E163]="Connect the WirePorxy"
T[C163]="连接 WirePorxy"
T[E164]="Disconnect the WirePorxy"
T[C164]="断开 WirePorxy"
# 自定义字体彩色,read 函数,友道翻译函数
red(){ echo -e "\033[31m\033[01m$1\033[0m"; }
@ -470,7 +476,7 @@ proxy_info(){
PROXYIP2=$(expr "$PROXYJASON2" : '.*ip\":\"\([^"]*\).*')
PROXYCOUNTRY2=$(expr "$PROXYJASON2" : '.*country\":\"\([^"]*\).*')
[[ $L = C ]] && PROXYCOUNTRY2=$(translate "$PROXYCOUNTRY2")
PROXYASNORG2=$(expr "$PROXYJASON2" : '.*asn_org\":\"\([^"]*\).*')2
PROXYASNORG2=$(expr "$PROXYJASON2" : '.*asn_org\":\"\([^"]*\).*')
TRACE42=$(eval echo "\$(curl -sx socks5h://localhost:$(ss -nltp | grep wireproxy | grep -oP '127.0*\S+' | cut -d: -f2) https://www.cloudflare.com/cdn-cgi/trace)")
if [[ $TRACE42 =~ plus ]]; then
grep -sq 'Device name' /etc/wireguard/info.log && AC2='+' || AC2=' Teams'
@ -596,7 +602,10 @@ change_ip(){
}
change_wireproxy(){
wireproxy_restart(){ red " $(eval echo "${T[${L}126]}") " && kill -9 $(pgrep -f wireproxy) >/dev/null 2>&1; sleep 1; nohup wireproxy /etc/wireguard/proxy.conf >/dev/null 2>&1 &; sleep $j; }
wireproxy_restart(){
red " $(eval echo "${T[${L}126]}") " && kill -9 $(pgrep -f wireproxy) >/dev/null 2>&1; sleep 1; nohup wireproxy /etc/wireguard/proxy.conf >/dev/null 2>&1 &
sleep $j
}
PROXYPORT="$(ss -nltp | grep 'wireproxy' | grep -oP '127.0*\S+' | cut -d: -f2)"
[[ -z "$EXPECT" ]] && input_region
@ -645,10 +654,10 @@ change_ip(){
case "$b" in
0 ) red " ${T[${L}150]} " && exit 1;;
1|2|4 ) ${CHANGE_IP1[d]};;
* ) yellow " ${SHOW_CHOOSE[d]} " && reading " ${T[${L}50]} " MODE
1|2|4 ) ${CHANGE_IP1[b]};;
* ) yellow " ${SHOW_CHOOSE[b]} " && reading " ${T[${L}50]} " MODE
case "$MODE" in
[1-3] ) $(eval echo "\${CHANGE_IP$MODE[d]}");;
[1-3] ) $(eval echo "\${CHANGE_IP$MODE[b]}");;
* ) red " ${T[${L}51]} [1-3] "; sleep 1; change_ip;;
esac;;
esac
@ -890,13 +899,19 @@ EOF
[[ $TRACE4$TRACE6 =~ on|plus ]] && PLAN=3 || PLAN=$((IPV4+IPV6))
# 判断当前 Linux Client 状态,决定变量 CLIENT,变量 CLIENT 含义:0=未安装 1=已安装未激活 2=状态激活 3=Clinet 已开启
type -P warp-cli >/dev/null 2>&1 && CLIENT=1 || CLIENT=0
[[ $CLIENT = 1 ]] && [[ $(systemctl is-active warp-svc 2>/dev/null) = active || $(systemctl is-enabled warp-svc 2>/dev/null) = enabled ]] && CLIENT=2
[[ $CLIENT = 2 ]] && [[ $(ss -nltp) =~ 'warp-svc' ]] && CLIENT=3 && proxy_info
CLIENT=0
if type -P warp-cli >/dev/null 2>&1; then
CLIENT=1
[[ $CLIENT = 1 ]] && [[ $(systemctl is-active warp-svc 2>/dev/null) = active || $(systemctl is-enabled warp-svc 2>/dev/null) = enabled ]] && CLIENT=2
[[ $CLIENT = 2 ]] && [[ $(ss -nltp) =~ 'warp-svc' ]] && CLIENT=3 && proxy_info
fi
# 判断当前 WireProxy 状态,决定变量 WIREPROXY,变量 WIREPROXY 含义:0=未安装 1=已安装未激活 2=状态激活 3=Clinet 已开启
type -P wireproxy >/dev/null 2>&1 && WIREPROXY=1 || WIREPROXY=0
[[ $WIREPROXY = 1 ]] && [[ $(ss -nltp) =~ 'wireproxy' ]] && WIREPROXY=3 && proxy_info || WIREPROXY=2
WIREPROXY=0
if type -P wireproxy >/dev/null 2>&1; then
WIREPROXY=1
[[ $WIREPROXY = 1 ]] && [[ $(ss -nltp) =~ 'wireproxy' ]] && WIREPROXY=3 && proxy_info || WIREPROXY=2
fi
# 在KVM的前提下,判断 Linux 版本是否小于 5.6,如是则安装 wireguard 内核模块,变量 WG=1。由于 linux 不能直接用小数作比较,所以用 (主版本号 * 100 + 次版本号 )与 506 作比较
[[ $LXC != 1 && $(($(uname -r | cut -d . -f1) * 100 + $(uname -r | cut -d . -f2))) -lt 506 ]] && WG=1
@ -966,6 +981,39 @@ input_port(){
done
}
# Linux Client 或 WireProxy 端口
change_port(){
socks5_port(){ input_port; warp-cli --accept-tos set-proxy-port "$PORT"; }
wireproxy_port(){
input_port
kill -9 $(pgrep -f wireproxy) >/dev/null 2>&1
sed -i "s/BindAddress.*/BindAddress = 127.0.0.1:$PORT/g" /etc/wireguard/proxy.conf
nohup wireproxy /etc/wireguard/proxy.conf >/dev/null 2>&1 &
}
INSTALL_CHECK=("$CLIENT" "$WIREPROXY")
CASE_RESAULT=("0 1" "1 0" "1 1")
SHOW_CHOOSE=("" "" "${T[${L}151]}")
CHANGE_PORT1=("wireproxy_port" "socks5_port" "socks5_port")
CHANGE_PORT2=("" "" "wireproxy_port")
for ((e=0;c<${#INSTALL_CHECK[@]};e++)); do
[[ "${INSTALL_CHECK[e]}" -gt 1 ]] && INSTALL_RESULT[e]=1 || INSTALL_RESULT[e]=0
done
for ((f=0; b<${#CASE_RESAULT[@]}; f++)); do
[[ ${INSTALL_RESULT[@]} = "${CASE_RESAULT[b]}" ]] && break
done
case "$f" in
0|1 ) ${CHANGE_PORT1[f]};;
2 ) yellow " ${SHOW_CHOOSE[f]} " && reading " ${T[${L}50]} " MODE
case "$MODE" in
[1-2] ) $(eval echo "\${CHANGE_IP$MODE[f]}");;
* ) red " ${T[${L}51]} [1-2] "; sleep 1; change_port;;
esac;;
esac
# 选用 iptables+dnsmasq+ipset 方案执行
iptables_solution(){
${PACKAGE_INSTALL[int]} ipset dnsmasq resolvconf mtr
@ -1547,16 +1595,14 @@ update(){
# 判断当前 WARP 网络接口及 Client 的运行状态,并对应的给菜单和动作赋值
menu_setting(){
case "$CLIENT" in
2 ) OPTION1="${T[${L}88]}"; OPTION2="${T[${L}143]}"; OPTION3="${T[${L}144]}"; OPTION4="${T[${L}78]}"; OPTION5="${T[${L}77]}";
ACTION1(){ proxy_onoff; }; ACTION2(){ input_port; warp-cli --accept-tos set-proxy-port "$PORT"; };
ACTION3(){ CONF=106; [[ $TRACE6 != off ]] && red " ${T[${L}140]} " && exit 1 || install; }; ACTION4(){ update; }; ACTION5(){ onff; };;
if [[ "$CLIENT" -gt 1 || "$WIREPROXY" -gt 1 ]]; then
[[ "$CLIENT" -lt 3 ]] && OPTION1="${T[${L}88]}" || OPTION1="${T[${L}89]}"
[[ "$WIREPROXY" -lt 3 ]] && OPTION2="${T[${L}163]}" || OPTION2="${T[${L}164]}"
OPTION3="${T[${L}143]}"; OPTION4="${T[${L}78]}"
3 ) OPTION1="${T[${L}89]}"; OPTION2="${T[${L}143]}"; OPTION3="${T[${L}144]}"; OPTION4="${T[${L}78]}"; OPTION5="${T[${L}77]}";
ACTION1(){ proxy_onoff; }; ACTION2(){ input_port; warp-cli --accept-tos set-proxy-port "$PORT"; };
ACTION3(){ CONF=106; [[ $TRACE6 != off ]] && red " ${T[${L}140]} " && exit 1 || install; }; ACTION4(){ update; }; ACTION5(){ onff; };;
ACTION1(){ proxy_onoff; }; ACTION2(){ wireproxy_onoff; }; ACTION3(){ change_port; }; ACTION4(){ update; };
* ) check_stack
else check_stack
case "$m" in
[0-2] ) NATIVE=("IPv6 only" "IPv4 only" "${T[${L}69]}")
CONF1=("014" "104" "114")
@ -1568,10 +1614,11 @@ menu_setting(){
* ) OPTION1="$(eval echo "${T[${L}141]}")"; OPTION2="$(eval echo "${T[${L}142]}")"; OPTION3="${T[${L}78]}"; OPTION4="${T[${L}77]}"
ACTION1(){ stack_switch; }; ACTION2(){ stack_switch; }; ACTION3(){ update; }; ACTION4(){ onoff; };;
esac;;
esac
fi
OPTION5="${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="${T[${L}138]}"; OPTION13="${T[${L}148]}"; OPTION0="${T[${L}76]}"
OPTION5="${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="${T[${L}138]}"; OPTION13="${T[${L}148]}"; OPTION0="${T[${L}76]}"
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; };
ACTION12(){ [[ $m = 0 ]] && red " ${T[${L}147]} " && exit 1; CONF=${CONF1[m]}; ANEMONE=1 ;install; };

Loading…
Cancel
Save