|
|
|
|
@ -587,8 +587,30 @@ change_ip(){ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
change_client(){ |
|
|
|
|
if [[ -e /etc/wireguard/luban ]]; then |
|
|
|
|
interface_restart(){ |
|
|
|
|
if [[ $(warp-cli --accept-tos settings) =~ WarpProxy ]]; then |
|
|
|
|
socks5_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 && sleep $j && |
|
|
|
|
[[ -e /etc/wireguard/license ]] && warp-cli --accept-tos set-license $(cat /etc/wireguard/license) >/dev/null 2>&1 && sleep 2 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
PROXYPORT="$(ss -nltp | grep 'warp' | grep -oP '127.0*\S+' | cut -d: -f2)" |
|
|
|
|
[[ -z "$EXPECT" ]] && input_region |
|
|
|
|
i=0; [[ -e /etc/wireguard/license ]] && j=13 || j=15 |
|
|
|
|
while true |
|
|
|
|
do (( i++ )) || true |
|
|
|
|
ip_now=$(date +%s); RUNTIME=$((ip_now - ip_start)); DAY=$(( RUNTIME / 86400 )); HOUR=$(( (RUNTIME % 86400 ) / 3600 )); MIN=$(( (RUNTIME % 86400 % 3600) / 60 )); SEC=$(( RUNTIME % 86400 % 3600 % 60 )) |
|
|
|
|
proxy_info |
|
|
|
|
WAN=$PROXYIP && ASNORG=$PROXYASNORG && NF=4 && COUNTRY=$PROXYCOUNTRY |
|
|
|
|
RESULT=$(curl --user-agent "${UA_Browser}" -sx socks5h://localhost:$PROXYPORT -fsL --write-out %{http_code} --output /dev/null --max-time 10 "https://www.netflix.com/title/$RESULT_TITLE" 2>&1) |
|
|
|
|
if [[ $RESULT = 200 ]]; then |
|
|
|
|
REGION=$(tr '[:lower:]' '[:upper:]' <<< $(curl --user-agent "${UA_Browser}" -sx socks5h://localhost:$PROXYPORT -fs --max-time 10 --write-out %{redirect_url} --output /dev/null "https://www.netflix.com/title/$REGION_TITLE" | sed 's/.*com\/\([^-/]\{1,\}\).*/\1/g')) |
|
|
|
|
REGION=${REGION:-'US'} |
|
|
|
|
echo "$REGION" | grep -qi "$EXPECT" && green " $(eval echo "${T[${L}125]}") " && i=0 && sleep 1h || socks5_restart |
|
|
|
|
else socks5_restart |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
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 && sleep $j && |
|
|
|
|
[[ -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 |
|
|
|
|
@ -622,28 +644,6 @@ change_ip(){ |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
else |
|
|
|
|
socks5_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 && sleep $j && |
|
|
|
|
[[ -e /etc/wireguard/license ]] && warp-cli --accept-tos set-license $(cat /etc/wireguard/license) >/dev/null 2>&1 && sleep 2 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
PROXYPORT="$(ss -nltp | grep 'warp' | grep -oP '127.0*\S+' | cut -d: -f2)" |
|
|
|
|
[[ -z "$EXPECT" ]] && input_region |
|
|
|
|
i=0; [[ -e /etc/wireguard/license ]] && j=13 || j=15 |
|
|
|
|
while true |
|
|
|
|
do (( i++ )) || true |
|
|
|
|
ip_now=$(date +%s); RUNTIME=$((ip_now - ip_start)); DAY=$(( RUNTIME / 86400 )); HOUR=$(( (RUNTIME % 86400 ) / 3600 )); MIN=$(( (RUNTIME % 86400 % 3600) / 60 )); SEC=$(( RUNTIME % 86400 % 3600 % 60 )) |
|
|
|
|
proxy_info |
|
|
|
|
WAN=$PROXYIP && ASNORG=$PROXYASNORG && NF=4 && COUNTRY=$PROXYCOUNTRY |
|
|
|
|
RESULT=$(curl --user-agent "${UA_Browser}" -sx socks5h://localhost:$PROXYPORT -fsL --write-out %{http_code} --output /dev/null --max-time 10 "https://www.netflix.com/title/$RESULT_TITLE" 2>&1) |
|
|
|
|
if [[ $RESULT = 200 ]]; then |
|
|
|
|
REGION=$(tr '[:lower:]' '[:upper:]' <<< $(curl --user-agent "${UA_Browser}" -sx socks5h://localhost:$PROXYPORT -fs --max-time 10 --write-out %{redirect_url} --output /dev/null "https://www.netflix.com/title/$REGION_TITLE" | sed 's/.*com\/\([^-/]\{1,\}\).*/\1/g')) |
|
|
|
|
REGION=${REGION:-'US'} |
|
|
|
|
echo "$REGION" | grep -qi "$EXPECT" && green " $(eval echo "${T[${L}125]}") " && i=0 && sleep 1h || socks5_restart |
|
|
|
|
else socks5_restart |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -828,46 +828,45 @@ onoff(){ |
|
|
|
|
# Proxy 开关,先检查是否已安装,再根据当前状态转向相反状态 |
|
|
|
|
proxy_onoff(){ |
|
|
|
|
! type -P warp-cli >/dev/null 2>&1 && red " ${T[${L}156]} " && exit 1 |
|
|
|
|
if [[ -e /etc/wireguard/luban ]]; then |
|
|
|
|
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 |
|
|
|
|
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 |
|
|
|
|
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 |
|
|
|
|
[[ $(ip a) =~ 'CloudflareWARP' ]] && green " ${T[${L}90]} $(eval echo "${T[${L}169]}") " |
|
|
|
|
[[ $ACCOUNT =~ 'Limited' ]] && green " ${T[${L}63]}:$QUOTA " |
|
|
|
|
exit 0 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
else |
|
|
|
|
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 |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -980,10 +979,10 @@ EOF |
|
|
|
|
if type -P warp-cli >/dev/null 2>&1; then |
|
|
|
|
CLIENT=1 && CLIENT_INSTALLED="${T[${L}92]}" |
|
|
|
|
[[ $(systemctl is-active warp-svc 2>/dev/null) = active || $(systemctl is-enabled warp-svc 2>/dev/null) = enabled ]] && CLIENT=2 |
|
|
|
|
if [[ -e /etc/wireguard/luban ]]; then |
|
|
|
|
[[ $CLIENT = 2 ]] && [[ $(ip a) =~ 'CloudflareWARP' ]] && CLIENT=5 && INTERFACE='--interface CloudflareWARP' && ip4_info |
|
|
|
|
else |
|
|
|
|
if [[ $(warp-cli --accept-tos settings) =~ WarpProxy ]]; then |
|
|
|
|
[[ $CLIENT = 2 ]] && [[ $(ss -nltp) =~ 'warp-svc' ]] && CLIENT=3 && proxy_info |
|
|
|
|
else |
|
|
|
|
[[ $CLIENT = 2 ]] && [[ $(ip a) =~ 'CloudflareWARP' ]] && CLIENT=5 && INTERFACE='--interface CloudflareWARP' && ip4_info |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
@ -1536,7 +1535,6 @@ proxy(){ |
|
|
|
|
warp-cli --accept-tos set-mode warp >/dev/null 2>&1 |
|
|
|
|
warp-cli --accept-tos connect >/dev/null 2>&1 |
|
|
|
|
warp-cli --accept-tos enable-always-on >/dev/null 2>&1 |
|
|
|
|
echo '' > /etc/wireguard/luban |
|
|
|
|
sleep 5 |
|
|
|
|
ip -4 rule add from 172.16.0.2 lookup 51820 |
|
|
|
|
ip -4 route add default dev CloudflareWARP table 51820 |
|
|
|
|
|