|
|
|
@ -10,7 +10,7 @@ none='\e[0m' |
|
|
|
|
# Root |
|
|
|
|
[[ $(id -u) != 0 ]] && echo -e " 哎呀……请使用 ${red}root ${none}用户运行 ${yellow}~(^_^) ${none}" && exit 1 |
|
|
|
|
|
|
|
|
|
_version="v1.41" |
|
|
|
|
_version="v1.5" |
|
|
|
|
|
|
|
|
|
cmd="apt-get" |
|
|
|
|
|
|
|
|
@ -58,6 +58,8 @@ if [[ -f /usr/bin/v2ray/v2ray && -f /etc/v2ray/config.json ]] && [[ -f $backup ] |
|
|
|
|
sspass=$(sed -n '35p' $backup) |
|
|
|
|
ssciphers=$(sed -n '37p' $backup) |
|
|
|
|
blocked_ad_status=$(sed -n '39p' $backup) |
|
|
|
|
ws_path_status=$(sed -n '41p' $backup) |
|
|
|
|
ws_path=$(sed -n '43p' $backup) |
|
|
|
|
|
|
|
|
|
v2ray_ver=$(/usr/bin/v2ray/v2ray -version | head -n 1 | cut -d " " -f2) |
|
|
|
|
|
|
|
|
@ -78,6 +80,9 @@ if [[ $v2ray_transport -ge 9 ]]; then |
|
|
|
|
dynamicPort=true |
|
|
|
|
port_range="${v2ray_dynamicPort_start}-${v2ray_dynamicPort_end}" |
|
|
|
|
fi |
|
|
|
|
if [[ $ws_path_status == "true" ]]; then |
|
|
|
|
is_ws_path=true |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
uuid=$(cat /proc/sys/kernel/random/uuid) |
|
|
|
|
old_id="23332333-2333-2333-2333-233boy233boy" |
|
|
|
@ -122,7 +127,11 @@ ciphers=( |
|
|
|
|
|
|
|
|
|
get_transport_args() { |
|
|
|
|
header="none" |
|
|
|
|
host="" |
|
|
|
|
if [[ $is_ws_path ]]; then |
|
|
|
|
host="/$ws_path" |
|
|
|
|
else |
|
|
|
|
host="" |
|
|
|
|
fi |
|
|
|
|
case $v2ray_transport in |
|
|
|
|
1 | 9) |
|
|
|
|
net="tcp" |
|
|
|
@ -176,7 +185,7 @@ create_vmess_URL_config() { |
|
|
|
|
"aid": "233", |
|
|
|
|
"net": "ws", |
|
|
|
|
"type": "none", |
|
|
|
|
"host": "", |
|
|
|
|
"host": "${host}", |
|
|
|
|
"tls": "tls" |
|
|
|
|
} |
|
|
|
|
EOF |
|
|
|
@ -222,6 +231,10 @@ view_v2ray_config_info() { |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow 伪装类型 (header type) = ${cyan}${header}$none" |
|
|
|
|
echo |
|
|
|
|
if [[ $is_ws_path ]]; then |
|
|
|
|
echo -e "$yellow WebSocket 路径 (WS path) = ${cyan}/${ws_path}$none" |
|
|
|
|
echo |
|
|
|
|
fi |
|
|
|
|
echo -e "$yellow TLS (Enable TLS) = ${cyan}打开$none" |
|
|
|
|
echo |
|
|
|
|
echo -e " 请将 Obfs 设置为 $obfs ...并忽略 传输协议... (如果你使用 Pepi / ShadowRay) " |
|
|
|
@ -252,16 +265,16 @@ view_v2ray_config_info() { |
|
|
|
|
echo -e " 帅帅的提示...此 V2Ray 配置不支持 Pepi / ShadowRay" |
|
|
|
|
echo |
|
|
|
|
fi |
|
|
|
|
if [[ $v2ray_transport -ge 9 && $is_blocked_ad ]]; then |
|
|
|
|
echo " 备注: 动态端口已启用...广告拦截已开启..." |
|
|
|
|
echo |
|
|
|
|
elif [[ $v2ray_transport -ge 9 ]]; then |
|
|
|
|
echo " 备注: 动态端口已启用..." |
|
|
|
|
echo |
|
|
|
|
elif [[ $is_blocked_ad ]]; then |
|
|
|
|
echo " 备注: 广告拦截已开启.." |
|
|
|
|
echo |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
if [[ $v2ray_transport -ge 9 && $is_blocked_ad ]]; then |
|
|
|
|
echo " 备注: 动态端口已启用...广告拦截已开启..." |
|
|
|
|
echo |
|
|
|
|
elif [[ $v2ray_transport -ge 9 ]]; then |
|
|
|
|
echo " 备注: 动态端口已启用..." |
|
|
|
|
echo |
|
|
|
|
elif [[ $is_blocked_ad ]]; then |
|
|
|
|
echo " 备注: 广告拦截已开启.." |
|
|
|
|
echo |
|
|
|
|
fi |
|
|
|
|
echo "---------- END -------------" |
|
|
|
|
echo |
|
|
|
@ -434,7 +447,7 @@ shadowsocks_config() { |
|
|
|
|
|
|
|
|
|
while :; do |
|
|
|
|
echo -e "是否配置 ${yellow}Shadowsocks${none} [${magenta}Y/N$none]" |
|
|
|
|
read -p "$(echo -e "(默认 [${magenta}N$none]):") " install_shadowsocks |
|
|
|
|
read -p "$(echo -e "(默认 [${cyan}N$none]):") " install_shadowsocks |
|
|
|
|
[[ -z "$install_shadowsocks" ]] && install_shadowsocks="n" |
|
|
|
|
if [[ "$install_shadowsocks" == [Yy] ]]; then |
|
|
|
|
echo |
|
|
|
@ -466,7 +479,7 @@ shadowsocks_config() { |
|
|
|
|
shadowsocks_port_config() { |
|
|
|
|
while :; do |
|
|
|
|
echo -e "请输入 "$yellow"Shadowsocks"$none" 端口 ["$magenta"1-65535"$none"],不能和 "$yellow"V2ray"$none" 端口相同" |
|
|
|
|
read -p "$(echo -e "(默认端口: ${magenta}6666$none):") " new_ssport |
|
|
|
|
read -p "$(echo -e "(默认端口: ${cyan}6666$none):") " new_ssport |
|
|
|
|
[ -z "$new_ssport" ] && new_ssport="6666" |
|
|
|
|
case $new_ssport in |
|
|
|
|
$v2ray_port) |
|
|
|
@ -513,7 +526,7 @@ shadowsocks_password_config() { |
|
|
|
|
|
|
|
|
|
while :; do |
|
|
|
|
echo -e "请输入 "$yellow"Shadowsocks"$none" 密码" |
|
|
|
|
read -p "$(echo -e "(默认密码: ${magenta}233blog.com$none)"): " new_sspass |
|
|
|
|
read -p "$(echo -e "(默认密码: ${cyan}233blog.com$none)"): " new_sspass |
|
|
|
|
[ -z "$new_sspass" ] && new_sspass="233blog.com" |
|
|
|
|
case $new_sspass in |
|
|
|
|
*/*) |
|
|
|
@ -546,7 +559,7 @@ shadowsocks_ciphers_config() { |
|
|
|
|
echo -e "$yellow $i. $none${ciphers_show}" |
|
|
|
|
done |
|
|
|
|
echo |
|
|
|
|
read -p "$(echo -e "(默认加密协议: ${magenta}${ciphers[6]}$none)"):" ssciphers_opt |
|
|
|
|
read -p "$(echo -e "(默认加密协议: ${cyan}${ciphers[6]}$none)"):" ssciphers_opt |
|
|
|
|
[ -z "$ssciphers_opt" ] && ssciphers_opt=7 |
|
|
|
|
case $ssciphers_opt in |
|
|
|
|
[1-7]) |
|
|
|
@ -570,7 +583,7 @@ change_shadowsocks_port() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "请输入 "$yellow"Shadowsocks"$none" 端口 ["$magenta"1-65535"$none"]" |
|
|
|
|
read -p "$(echo -e "(当前端口: ${magenta}$ssport$none):") " new_ssport |
|
|
|
|
read -p "$(echo -e "(当前端口: ${cyan}$ssport$none):") " new_ssport |
|
|
|
|
[ -z "$new_ssport" ] && error && continue |
|
|
|
|
case $new_ssport in |
|
|
|
|
$ssport) |
|
|
|
@ -629,7 +642,7 @@ change_shadowsocks_password() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "请输入 "$yellow"Shadowsocks"$none" 密码" |
|
|
|
|
read -p "$(echo -e "(当前密码:${magenta}$sspass$none)"): " new_sspass |
|
|
|
|
read -p "$(echo -e "(当前密码:${cyan}$sspass$none)"): " new_sspass |
|
|
|
|
[ -z "$new_sspass" ] && error && continue |
|
|
|
|
case $new_sspass in |
|
|
|
|
$sspass) |
|
|
|
@ -674,7 +687,7 @@ change_shadowsocks_ciphers() { |
|
|
|
|
echo -e "$yellow $i. $none${ciphers_show}" |
|
|
|
|
done |
|
|
|
|
echo |
|
|
|
|
read -p "$(echo -e "(当前加密协议: ${magenta}${ssciphers}$none)"):" ssciphers_opt |
|
|
|
|
read -p "$(echo -e "(当前加密协议: ${cyan}${ssciphers}$none)"):" ssciphers_opt |
|
|
|
|
[ -z "$ssciphers_opt" ] && error && continue |
|
|
|
|
case $ssciphers_opt in |
|
|
|
|
[1-7]) |
|
|
|
@ -711,7 +724,7 @@ disable_shadowsocks() { |
|
|
|
|
|
|
|
|
|
while :; do |
|
|
|
|
echo -e "是否关闭 ${yellow}Shadowsocks${none} [${magenta}Y/N$none]" |
|
|
|
|
read -p "$(echo -e "(默认 [${magenta}N$none]):") " y_n |
|
|
|
|
read -p "$(echo -e "(默认 [${cyan}N$none]):") " y_n |
|
|
|
|
[[ -z "$y_n" ]] && y_n="n" |
|
|
|
|
if [[ "$y_n" == [Yy] ]]; then |
|
|
|
|
echo |
|
|
|
@ -749,15 +762,19 @@ change_v2ray_config() { |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow 2. $none修改 V2Ray 传输协议" |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow 3. $none修改 V2Ray 动态端口(如果可以)" |
|
|
|
|
echo -e "$yellow 3. $none修改 V2Ray 动态端口 (如果可以)" |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow 4. $none修改 用户ID" |
|
|
|
|
echo -e "$yellow 4. $none修改 用户ID ( UUID )" |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow 5. $none修改 TLS 域名(如果可以)" |
|
|
|
|
echo -e "$yellow 5. $none修改 TLS 域名 (如果可以)" |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow 6. $none开启 / 关闭 广告拦截" |
|
|
|
|
echo -e "$yellow 6. $none修改 分流的路径 (如果可以)" |
|
|
|
|
echo |
|
|
|
|
read -p "$(echo -e "请选择 [${magenta}1-6$none]:")" _opt |
|
|
|
|
echo -e "$yellow 7. $none修改 伪装的网址 (如果可以)" |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow 8. $none开启 / 关闭 广告拦截" |
|
|
|
|
echo |
|
|
|
|
read -p "$(echo -e "请选择 [${magenta}1-8$none]:")" _opt |
|
|
|
|
if [[ -z $_opt ]]; then |
|
|
|
|
error |
|
|
|
|
else |
|
|
|
@ -783,6 +800,15 @@ change_v2ray_config() { |
|
|
|
|
break |
|
|
|
|
;; |
|
|
|
|
6) |
|
|
|
|
change_ws_path_config |
|
|
|
|
break |
|
|
|
|
;; |
|
|
|
|
7) |
|
|
|
|
change_proxy_site_config |
|
|
|
|
break |
|
|
|
|
;; |
|
|
|
|
|
|
|
|
|
8) |
|
|
|
|
blocked_hosts |
|
|
|
|
break |
|
|
|
|
;; |
|
|
|
@ -805,7 +831,7 @@ change_v2ray_port() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "请输入 "$yellow"V2Ray"$none" 端口 ["$magenta"1-65535"$none"]" |
|
|
|
|
read -p "$(echo -e "(当前端口: ${magenta}${v2ray_port}$none):")" v2ray_port_opt |
|
|
|
|
read -p "$(echo -e "(当前端口: ${cyan}${v2ray_port}$none):")" v2ray_port_opt |
|
|
|
|
[[ -z $v2ray_port_opt ]] && error && continue |
|
|
|
|
case $v2ray_port_opt in |
|
|
|
|
$v2ray_port) |
|
|
|
@ -860,7 +886,7 @@ download_v2ray_config_ask() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "是否需要 下载 V2Ray 配置 / 生成配置信息链接 / 生成二维码链接 [${magenta}Y/N$none]" |
|
|
|
|
read -p "$(echo -e "默认 [${magenta}N$none]:")" y_n |
|
|
|
|
read -p "$(echo -e "默认 [${cyan}N$none]:")" y_n |
|
|
|
|
[ -z $y_n ] && y_n="n" |
|
|
|
|
if [[ $y_n == [Yy] ]]; then |
|
|
|
|
download_v2ray_config |
|
|
|
@ -877,7 +903,7 @@ change_v2ray_transport_ask() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "是否需要修改$yellow V2Ray $none传输协议 [${magenta}Y/N$none]" |
|
|
|
|
read -p "$(echo -e "默认 [${magenta}N$none]:")" y_n |
|
|
|
|
read -p "$(echo -e "默认 [${cyan}N$none]:")" y_n |
|
|
|
|
[ -z $y_n ] && break |
|
|
|
|
if [[ $y_n == [Yy] ]]; then |
|
|
|
|
change_v2ray_transport |
|
|
|
@ -908,7 +934,7 @@ change_v2ray_transport() { |
|
|
|
|
echo "备注1: 含有 [dynamicPort] 的即启用动态端口.." |
|
|
|
|
echo "备注2: [utp | srtp | wechat-video] 分别为 伪装成 [BT下载 | 视频通话 | 微信视频通话]" |
|
|
|
|
echo |
|
|
|
|
read -p "$(echo -e "(当前传输协议: ${magenta}${transport[$v2ray_transport - 1]}$none)"):" v2ray_transport_opt |
|
|
|
|
read -p "$(echo -e "(当前传输协议: ${cyan}${transport[$v2ray_transport - 1]}$none)"):" v2ray_transport_opt |
|
|
|
|
if [ -z "$v2ray_transport_opt" ]; then |
|
|
|
|
error |
|
|
|
|
else |
|
|
|
@ -981,6 +1007,9 @@ change_v2ray_transport() { |
|
|
|
|
update-rc.d -f caddy remove >/dev/null 2>&1 |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
if [[ $is_ws_path ]]; then |
|
|
|
|
sed -i "41s/true/false/" $backup |
|
|
|
|
fi |
|
|
|
|
elif [[ $v2ray_transport -ge 9 ]]; then |
|
|
|
|
del_port "multiport" |
|
|
|
|
fi |
|
|
|
@ -1012,6 +1041,9 @@ change_v2ray_transport() { |
|
|
|
|
update-rc.d -f caddy remove >/dev/null 2>&1 |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
if [[ $is_ws_path ]]; then |
|
|
|
|
sed -i "41s/true/false/" $backup |
|
|
|
|
fi |
|
|
|
|
elif [[ $v2ray_transport -ge 9 ]]; then |
|
|
|
|
del_port "multiport" |
|
|
|
|
fi |
|
|
|
@ -1070,13 +1102,22 @@ ws_config() { |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
if [[ $caddy_installed ]]; then |
|
|
|
|
ws_path_config_ask |
|
|
|
|
pause |
|
|
|
|
domain_check |
|
|
|
|
sed -i "17s/$v2ray_transport/$v2ray_transport_opt/; 27s/$domain/$new_domain/" $backup |
|
|
|
|
if [[ $new_ws_path ]]; then |
|
|
|
|
sed -i "41s/false/true/; 43s/$ws_path/$new_ws_path/; $ d" $backup |
|
|
|
|
echo "$proxy_site" >>$backup |
|
|
|
|
ws_path=$new_ws_path |
|
|
|
|
is_ws_path=true |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [[ $v2ray_transport -ge 9 ]]; then |
|
|
|
|
del_port "multiport" |
|
|
|
|
fi |
|
|
|
|
domain=$new_domain |
|
|
|
|
|
|
|
|
|
open_port "80" |
|
|
|
|
open_port "443" |
|
|
|
|
if [[ $systemd ]]; then |
|
|
|
@ -1116,9 +1157,16 @@ ws_config() { |
|
|
|
|
echo -e "$yellow 自动配置 TLS = $cyan打开$none" |
|
|
|
|
echo "----------------------------------------------------------------" |
|
|
|
|
echo |
|
|
|
|
ws_path_config_ask |
|
|
|
|
pause |
|
|
|
|
domain_check |
|
|
|
|
sed -i "17s/$v2ray_transport/$v2ray_transport_opt/; 27s/$domain/$new_domain/; 29s/false/true/" $backup |
|
|
|
|
if [[ $new_ws_path ]]; then |
|
|
|
|
sed -i "41s/false/true/; 43s/$ws_path/$new_ws_path/; $ d" $backup |
|
|
|
|
echo "$proxy_site" >>$backup |
|
|
|
|
ws_path=$new_ws_path |
|
|
|
|
is_ws_path=true |
|
|
|
|
fi |
|
|
|
|
if [[ $v2ray_transport -ge 9 ]]; then |
|
|
|
|
del_port "multiport" |
|
|
|
|
fi |
|
|
|
@ -1164,6 +1212,83 @@ ws_config() { |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ws_path_config_ask() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "是否开启 网站伪装 和 路径分流 [${magenta}Y/N$none]" |
|
|
|
|
read -p "$(echo -e "(默认: [${cyan}N$none]):")" ws_path_ask |
|
|
|
|
[[ -z $ws_path_ask ]] && ws_path_ask="n" |
|
|
|
|
|
|
|
|
|
case $ws_path_ask in |
|
|
|
|
Y | y) |
|
|
|
|
ws_path_config |
|
|
|
|
break |
|
|
|
|
;; |
|
|
|
|
N | n) |
|
|
|
|
echo |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow 网站伪装 和 路径分流 = $cyan不想配置$none" |
|
|
|
|
echo "----------------------------------------------------------------" |
|
|
|
|
echo |
|
|
|
|
break |
|
|
|
|
;; |
|
|
|
|
*) |
|
|
|
|
error |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
done |
|
|
|
|
} |
|
|
|
|
ws_path_config() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "请输入想要 ${magenta}用来分流的路径$none , 例如 /233blog , 那么只需要输入 233blog 即可" |
|
|
|
|
read -p "$(echo -e "(默认: [${cyan}233blog$none]):")" new_ws_path |
|
|
|
|
[[ -z $new_ws_path ]] && new_ws_path="233blog" |
|
|
|
|
|
|
|
|
|
case $new_ws_path in |
|
|
|
|
*/*) |
|
|
|
|
echo |
|
|
|
|
echo -e " 由于这个脚本太辣鸡了..所以不能包含 $red/$none 这个符号.... " |
|
|
|
|
echo |
|
|
|
|
error |
|
|
|
|
;; |
|
|
|
|
*) |
|
|
|
|
echo |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow 分流的路径 = ${cyan}/${new_ws_path}$none" |
|
|
|
|
echo "----------------------------------------------------------------" |
|
|
|
|
echo |
|
|
|
|
break |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
done |
|
|
|
|
proxy_site_config |
|
|
|
|
} |
|
|
|
|
proxy_site_config() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "请输入 ${magenta}一个正确的$none ${cyan}网址$none 用来作为 ${cyan}网站的伪装$none , 例如 https://liyafly.com" |
|
|
|
|
echo -e "举例...你当前的域名是$green $domain $none, 伪装的网址的是 https://liyafly.com" |
|
|
|
|
echo -e "然后打开你的域名时候...显示出来的内容就是来自 https://liyafly.com 的内容" |
|
|
|
|
echo -e "其实就是一个反代...明白就好..." |
|
|
|
|
echo -e "如果不能伪装成功...可以使用 v2ray config 修改伪装的网址" |
|
|
|
|
read -p "$(echo -e "(默认: [${cyan}https://liyafly.com$none]):")" proxy_site |
|
|
|
|
[[ -z $proxy_site ]] && proxy_site="https://liyafly.com" |
|
|
|
|
|
|
|
|
|
case $proxy_site in |
|
|
|
|
*) |
|
|
|
|
echo |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow 伪装的网址 = ${cyan}${proxy_site}$none" |
|
|
|
|
echo "----------------------------------------------------------------" |
|
|
|
|
echo |
|
|
|
|
break |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
done |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
install_caddy() { |
|
|
|
|
local caddy_tmp="/tmp/install_caddy/" |
|
|
|
|
local caddy_tmp_file="/tmp/install_caddy/caddy.tar.gz" |
|
|
|
@ -1206,7 +1331,23 @@ install_caddy() { |
|
|
|
|
} |
|
|
|
|
caddy_config() { |
|
|
|
|
local email=$(shuf -i1-10000000000 -n1) |
|
|
|
|
cat >/etc/caddy/Caddyfile <<-EOF |
|
|
|
|
[[ -z $proxy_site ]] && proxy_site=$(sed '$!d' $backup) |
|
|
|
|
if [[ $is_ws_path ]]; then |
|
|
|
|
cat >/etc/caddy/Caddyfile <<-EOF |
|
|
|
|
$domain { |
|
|
|
|
tls ${email}@gmail.com |
|
|
|
|
gzip |
|
|
|
|
proxy / $proxy_site { |
|
|
|
|
without /${ws_path} |
|
|
|
|
} |
|
|
|
|
proxy /${ws_path} 127.0.0.1:${v2ray_port} { |
|
|
|
|
without /${ws_path} |
|
|
|
|
websocket |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
EOF |
|
|
|
|
else |
|
|
|
|
cat >/etc/caddy/Caddyfile <<-EOF |
|
|
|
|
$domain { |
|
|
|
|
tls ${email}@gmail.com |
|
|
|
|
proxy / 127.0.0.1:${v2ray_port} { |
|
|
|
@ -1214,6 +1355,7 @@ $domain { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
EOF |
|
|
|
|
fi |
|
|
|
|
# systemctl restart caddy |
|
|
|
|
do_service restart caddy |
|
|
|
|
} |
|
|
|
@ -1222,7 +1364,7 @@ v2ray_dynamic_port_start() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "请输入 "$yellow"V2Ray 动态端口开始 "$none"范围 ["$magenta"1-65535"$none"]" |
|
|
|
|
read -p "$(echo -e "(默认开始端口: ${magenta}10000$none):")" v2ray_dynamic_port_start_input |
|
|
|
|
read -p "$(echo -e "(默认开始端口: ${cyan}10000$none):")" v2ray_dynamic_port_start_input |
|
|
|
|
[ -z $v2ray_dynamic_port_start_input ] && v2ray_dynamic_port_start_input=10000 |
|
|
|
|
case $v2ray_dynamic_port_start_input in |
|
|
|
|
$v2ray_port) |
|
|
|
@ -1265,7 +1407,7 @@ v2ray_dynamic_port_end() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "请输入 "$yellow"V2Ray 动态端口结束 "$none"范围 ["$magenta"1-65535"$none"]" |
|
|
|
|
read -p "$(echo -e "(默认结束端口: ${magenta}20000$none):")" v2ray_dynamic_port_end_input |
|
|
|
|
read -p "$(echo -e "(默认结束端口: ${cyan}20000$none):")" v2ray_dynamic_port_end_input |
|
|
|
|
[ -z $v2ray_dynamic_port_end_input ] && v2ray_dynamic_port_end_input=20000 |
|
|
|
|
case $v2ray_dynamic_port_end_input in |
|
|
|
|
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | [1-6][0-5][0-5][0-3][0-5]) |
|
|
|
@ -1323,7 +1465,7 @@ change_v2ray_dynamicport() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "是否需要修改传输协议 [${magenta}Y/N$none]" |
|
|
|
|
read -p "$(echo -e "默认 [${magenta}N$none]:")" y_n |
|
|
|
|
read -p "$(echo -e "默认 [${cyan}N$none]:")" y_n |
|
|
|
|
if [[ -z $y_n ]]; then |
|
|
|
|
echo |
|
|
|
|
echo -e "$green 已取消修改传输协议...$none" |
|
|
|
@ -1351,7 +1493,7 @@ change_v2ray_dynamic_port_start() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "请输入 "$yellow"V2Ray 动态端口开始 "$none"范围 ["$magenta"1-65535"$none"]" |
|
|
|
|
read -p "$(echo -e "(当前动态开始端口: ${magenta}$v2ray_dynamicPort_start$none):")" v2ray_dynamic_port_start_input |
|
|
|
|
read -p "$(echo -e "(当前动态开始端口: ${cyan}$v2ray_dynamicPort_start$none):")" v2ray_dynamic_port_start_input |
|
|
|
|
[ -z $v2ray_dynamic_port_start_input ] && error && continue |
|
|
|
|
case $v2ray_dynamic_port_start_input in |
|
|
|
|
$v2ray_port) |
|
|
|
@ -1394,7 +1536,7 @@ change_v2ray_dynamic_port_end() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "请输入 "$yellow"V2Ray 动态端口结束 "$none"范围 ["$magenta"1-65535"$none"]" |
|
|
|
|
read -p "$(echo -e "(当前动态结束端口: ${magenta}$v2ray_dynamicPort_end$none):")" v2ray_dynamic_port_end_input |
|
|
|
|
read -p "$(echo -e "(当前动态结束端口: ${cyan}$v2ray_dynamicPort_end$none):")" v2ray_dynamic_port_end_input |
|
|
|
|
[ -z $v2ray_dynamic_port_end_input ] && error && continue |
|
|
|
|
case $v2ray_dynamic_port_end_input in |
|
|
|
|
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | [1-6][0-5][0-5][0-3][0-5]) |
|
|
|
@ -1436,7 +1578,7 @@ change_v2ray_id() { |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "是否确定要修改用户ID [${magenta}Y/N$none]" |
|
|
|
|
read -p "$(echo -e "默认 [${magenta}N$none]:")" y_n |
|
|
|
|
read -p "$(echo -e "默认 [${cyan}N$none]:")" y_n |
|
|
|
|
if [[ -z $y_n ]]; then |
|
|
|
|
echo |
|
|
|
|
echo -e "$green 已取消修改用户ID...$none" |
|
|
|
@ -1542,8 +1684,156 @@ change_domain() { |
|
|
|
|
echo |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
change_ws_path_config() { |
|
|
|
|
if [[ $v2ray_transport == 4 && $caddy_installed ]] && [[ $is_ws_path ]]; then |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "请输入想要 ${magenta}用来分流的路径$none , 例如 /233blog , 那么只需要输入 233blog 即可" |
|
|
|
|
read -p "$(echo -e "(当前分流的路径: [${cyan}/${ws_path}$none]):")" new_ws_path |
|
|
|
|
[[ -z $new_ws_path ]] && error && continue |
|
|
|
|
|
|
|
|
|
case $new_ws_path in |
|
|
|
|
$ws_path) |
|
|
|
|
echo |
|
|
|
|
echo -e " 大佬...跟 当前分流的路径 一毛一样啊...修改个鸡鸡哦 " |
|
|
|
|
echo |
|
|
|
|
error |
|
|
|
|
;; |
|
|
|
|
*/*) |
|
|
|
|
echo |
|
|
|
|
echo -e " 由于这个脚本太辣鸡了..所以不能包含 $red/$none 这个符号.... " |
|
|
|
|
echo |
|
|
|
|
error |
|
|
|
|
;; |
|
|
|
|
*) |
|
|
|
|
echo |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow 分流的路径 = ${cyan}/${new_ws_path}$none" |
|
|
|
|
echo "----------------------------------------------------------------" |
|
|
|
|
echo |
|
|
|
|
break |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
done |
|
|
|
|
pause |
|
|
|
|
sed -i "43s/$ws_path/$new_ws_path/" $backup |
|
|
|
|
ws_path=$new_ws_path |
|
|
|
|
caddy_config |
|
|
|
|
config |
|
|
|
|
clear |
|
|
|
|
view_v2ray_config_info |
|
|
|
|
download_v2ray_config_ask |
|
|
|
|
elif [[ $v2ray_transport == 4 && $caddy_installed ]]; then |
|
|
|
|
ws_path_config_ask |
|
|
|
|
if [[ $new_ws_path ]]; then |
|
|
|
|
sed -i "41s/false/true/; 43s/$ws_path/$new_ws_path/; $ d" $backup |
|
|
|
|
echo "$proxy_site" >>$backup |
|
|
|
|
ws_path=$new_ws_path |
|
|
|
|
is_ws_path=true |
|
|
|
|
caddy_config |
|
|
|
|
config |
|
|
|
|
clear |
|
|
|
|
view_v2ray_config_info |
|
|
|
|
download_v2ray_config_ask |
|
|
|
|
else |
|
|
|
|
echo |
|
|
|
|
echo |
|
|
|
|
echo " 给大佬点赞....好果断的放弃配置 网站伪装 和 路径分流" |
|
|
|
|
echo |
|
|
|
|
echo |
|
|
|
|
fi |
|
|
|
|
else |
|
|
|
|
echo |
|
|
|
|
echo -e "$red 抱歉...不支持修改...$none" |
|
|
|
|
echo |
|
|
|
|
echo -e " 备注..修改 分流的路径 仅支持传输协议为 ${yellow}WebSocket + TLS$none 并且$yellow 自动配置 TLS = 打开$none" |
|
|
|
|
echo |
|
|
|
|
echo -e " 当前传输协议为: ${cyan}${transport[$v2ray_transport - 1]}${none}" |
|
|
|
|
echo |
|
|
|
|
if [[ $caddy_installed ]]; then |
|
|
|
|
echo -e " 自动配置 TLS = ${cyan}打开$none" |
|
|
|
|
else |
|
|
|
|
echo -e " 自动配置 TLS = $red关闭$none" |
|
|
|
|
fi |
|
|
|
|
echo |
|
|
|
|
change_v2ray_transport_ask |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
change_proxy_site_config() { |
|
|
|
|
if [[ $v2ray_transport == 4 && $caddy_installed ]] && [[ $is_ws_path ]]; then |
|
|
|
|
echo |
|
|
|
|
while :; do |
|
|
|
|
echo -e "请输入 ${magenta}一个正确的$none ${cyan}网址$none 用来作为 ${cyan}网站的伪装$none , 例如 https://liyafly.com" |
|
|
|
|
echo -e "举例...你当前的域名是$green $domain $none, 伪装的网址的是 https://liyafly.com" |
|
|
|
|
echo -e "然后打开你的域名时候...显示出来的内容就是来自 https://liyafly.com 的内容" |
|
|
|
|
echo -e "其实就是一个反代...明白就好..." |
|
|
|
|
echo -e "如果不能伪装成功...可以使用 v2ray config 修改伪装的网址" |
|
|
|
|
read -p "$(echo -e "(当前伪装的网址: [${cyan}$(sed '$!d' $backup)$none]):")" proxy_site |
|
|
|
|
[[ -z $proxy_site ]] && error && continue |
|
|
|
|
|
|
|
|
|
case $proxy_site in |
|
|
|
|
*) |
|
|
|
|
echo |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow 伪装的网址 = ${cyan}${proxy_site}$none" |
|
|
|
|
echo "----------------------------------------------------------------" |
|
|
|
|
echo |
|
|
|
|
break |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
done |
|
|
|
|
pause |
|
|
|
|
sed -i "$ d" $backup |
|
|
|
|
echo "$proxy_site" >>$backup |
|
|
|
|
caddy_config |
|
|
|
|
echo |
|
|
|
|
echo |
|
|
|
|
echo " 哎哟...好像是修改成功了..." |
|
|
|
|
echo |
|
|
|
|
echo -e " 赶紧打开你的域名 ${cyan}https://${domain}$none 检查一下看看" |
|
|
|
|
echo |
|
|
|
|
echo |
|
|
|
|
elif [[ $v2ray_transport == 4 && $caddy_installed ]]; then |
|
|
|
|
ws_path_config_ask |
|
|
|
|
if [[ $new_ws_path ]]; then |
|
|
|
|
sed -i "41s/false/true/; 43s/$ws_path/$new_ws_path/; $ d" $backup |
|
|
|
|
echo "$proxy_site" >>$backup |
|
|
|
|
ws_path=$new_ws_path |
|
|
|
|
is_ws_path=true |
|
|
|
|
caddy_config |
|
|
|
|
config |
|
|
|
|
clear |
|
|
|
|
view_v2ray_config_info |
|
|
|
|
download_v2ray_config_ask |
|
|
|
|
else |
|
|
|
|
echo |
|
|
|
|
echo |
|
|
|
|
echo " 给大佬点赞....好果断的放弃配置 网站伪装 和 路径分流" |
|
|
|
|
echo |
|
|
|
|
echo |
|
|
|
|
fi |
|
|
|
|
else |
|
|
|
|
echo |
|
|
|
|
echo -e "$red 抱歉...不支持修改...$none" |
|
|
|
|
echo |
|
|
|
|
echo -e " 备注..修改 伪装的网址 仅支持传输协议为 ${yellow}WebSocket + TLS$none 并且$yellow 自动配置 TLS = 打开$none" |
|
|
|
|
echo |
|
|
|
|
echo -e " 当前传输协议为: ${cyan}${transport[$v2ray_transport - 1]}${none}" |
|
|
|
|
echo |
|
|
|
|
if [[ $caddy_installed ]]; then |
|
|
|
|
echo -e " 自动配置 TLS = ${cyan}打开$none" |
|
|
|
|
else |
|
|
|
|
echo -e " 自动配置 TLS = $red关闭$none" |
|
|
|
|
fi |
|
|
|
|
echo |
|
|
|
|
change_v2ray_transport_ask |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
domain_check() { |
|
|
|
|
test_domain=$(dig $new_domain +short) |
|
|
|
|
# test_domain=$(dig $new_domain +short) |
|
|
|
|
test_domain=$(ping $domain -c 1 | grep -oP -m1 "([\d.]+){3}\d") |
|
|
|
|
if [[ $test_domain != $ip ]]; then |
|
|
|
|
echo |
|
|
|
|
echo -e "$red 检测域名解析错误....$none" |
|
|
|
@ -1864,6 +2154,10 @@ create_v2ray_config_text() { |
|
|
|
|
echo |
|
|
|
|
echo "伪装类型 (header type) = ${header}" |
|
|
|
|
echo |
|
|
|
|
if [[ $is_ws_path ]]; then |
|
|
|
|
echo -e "$yellow WebSocket 路径 (WS path) = ${cyan}/${ws_path}$none" |
|
|
|
|
echo |
|
|
|
|
fi |
|
|
|
|
echo "TLS (Enable TLS) = 打开" |
|
|
|
|
echo |
|
|
|
|
echo -e " 请将 Obfs 设置为 $obfs ...并忽略 传输协议... (如果你使用 Pepi / ShadowRay) " |
|
|
|
@ -1894,16 +2188,16 @@ create_v2ray_config_text() { |
|
|
|
|
echo -e "帅帅的提示...此 V2Ray 配置不支持 Pepi / ShadowRay" |
|
|
|
|
echo |
|
|
|
|
fi |
|
|
|
|
if [[ $v2ray_transport -ge 9 && $is_blocked_ad ]]; then |
|
|
|
|
echo "备注: 动态端口已启用...广告拦截已开启..." |
|
|
|
|
echo |
|
|
|
|
elif [[ $v2ray_transport -ge 9 ]]; then |
|
|
|
|
echo "备注: 动态端口已启用..." |
|
|
|
|
echo |
|
|
|
|
elif [[ $is_blocked_ad ]]; then |
|
|
|
|
echo "备注: 广告拦截已开启.." |
|
|
|
|
echo |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
if [[ $v2ray_transport -ge 9 && $is_blocked_ad ]]; then |
|
|
|
|
echo "备注: 动态端口已启用...广告拦截已开启..." |
|
|
|
|
echo |
|
|
|
|
elif [[ $v2ray_transport -ge 9 ]]; then |
|
|
|
|
echo "备注: 动态端口已启用..." |
|
|
|
|
echo |
|
|
|
|
elif [[ $is_blocked_ad ]]; then |
|
|
|
|
echo "备注: 广告拦截已开启.." |
|
|
|
|
echo |
|
|
|
|
fi |
|
|
|
|
echo "---------- END -------------" |
|
|
|
|
echo |
|
|
|
@ -2993,6 +3287,11 @@ config() { |
|
|
|
|
|
|
|
|
|
if [[ $v2ray_transport_opt -eq 4 || $v2ray_transport -eq 4 ]]; then |
|
|
|
|
sed -i "s/233blog.com/$domain/; 22s/2333/443/; 25s/$old_id/$v2ray_id/" $v2ray_client_config |
|
|
|
|
if [[ $is_ws_path ]]; then |
|
|
|
|
sed -i "41s/233blog/$ws_path/" $v2ray_client_config |
|
|
|
|
else |
|
|
|
|
sed -i "41s/233blog//" $v2ray_client_config |
|
|
|
|
fi |
|
|
|
|
else |
|
|
|
|
[[ -z $ip ]] && get_ip |
|
|
|
|
sed -i "s/233blog.com/$ip/; 22s/2333/$v2ray_port/; 25s/$old_id/$v2ray_id/" $v2ray_client_config |
|
|
|
@ -3050,7 +3349,7 @@ _boom_() { |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow 配置信息链接: $cyan$link2$none" |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow V2RayN 二维码链接: $cyan$link3$none" |
|
|
|
|
echo -e "$yellow V2RayN / Kitsunebi 二维码链接: $cyan$link3$none" |
|
|
|
|
echo |
|
|
|
|
echo -e "$yellow Pepi / ShadowRay 二维码链接: $cyan$link$none" |
|
|
|
|
echo |
|
|
|
@ -3219,28 +3518,28 @@ case $args in |
|
|
|
|
menu) |
|
|
|
|
menu |
|
|
|
|
;; |
|
|
|
|
info) |
|
|
|
|
i | info) |
|
|
|
|
view_v2ray_config_info |
|
|
|
|
;; |
|
|
|
|
config) |
|
|
|
|
c | config) |
|
|
|
|
change_v2ray_config |
|
|
|
|
;; |
|
|
|
|
link) |
|
|
|
|
l | link) |
|
|
|
|
get_v2ray_config_link |
|
|
|
|
;; |
|
|
|
|
infolink) |
|
|
|
|
L | infolink) |
|
|
|
|
get_v2ray_config_info_link |
|
|
|
|
;; |
|
|
|
|
qr) |
|
|
|
|
q | qr) |
|
|
|
|
get_v2ray_config_qr_link |
|
|
|
|
;; |
|
|
|
|
ss) |
|
|
|
|
s | ss) |
|
|
|
|
change_shadowsocks_config |
|
|
|
|
;; |
|
|
|
|
ssinfo) |
|
|
|
|
S | ssinfo) |
|
|
|
|
view_shadowsocks_config_info |
|
|
|
|
;; |
|
|
|
|
ssqr) |
|
|
|
|
Q | ssqr) |
|
|
|
|
get_shadowsocks_config_qr_link |
|
|
|
|
;; |
|
|
|
|
status) |
|
|
|
@ -3263,14 +3562,14 @@ log) |
|
|
|
|
url | URL) |
|
|
|
|
get_v2ray_vmess_URL_link |
|
|
|
|
;; |
|
|
|
|
update) |
|
|
|
|
u | update) |
|
|
|
|
update_v2ray |
|
|
|
|
;; |
|
|
|
|
update.sh) |
|
|
|
|
U | update.sh) |
|
|
|
|
update_v2ray.sh |
|
|
|
|
exit |
|
|
|
|
;; |
|
|
|
|
uninstall) |
|
|
|
|
un | uninstall) |
|
|
|
|
uninstall_v2ray |
|
|
|
|
;; |
|
|
|
|
233 | 2333 | 233boy | 233blog | 233blog.com) |
|
|
|
|