pull/145/head
233boy 6 years ago
parent e73fe0d6eb
commit 7231b54b38
  1. 2
      config/backup.conf
  2. 157
      install.sh
  3. 31
      src/backup.sh
  4. 8
      src/ss-info.sh
  5. 4
      src/v2ray-info.sh
  6. 94
      v2ray.sh

@ -21,7 +21,7 @@ v2ray_transport=1
v2ray_port=2333 v2ray_port=2333
#---- UUID ----- #---- UUID -----
v2ray_id=e55c8d17-2cf3-b21a-bcf1-eeacb011ed79 v2ray_id=uuid
#---- alterId ----- #---- alterId -----
alterId=233 alterId=233

@ -48,7 +48,6 @@ else
fi fi
uuid=$(cat /proc/sys/kernel/random/uuid) uuid=$(cat /proc/sys/kernel/random/uuid)
old_id="e55c8d17-2cf3-b21a-bcf1-eeacb011ed79"
v2ray_server_config="/etc/v2ray/config.json" v2ray_server_config="/etc/v2ray/config.json"
v2ray_client_config="/etc/v2ray/233blog_v2ray_config.json" v2ray_client_config="/etc/v2ray/233blog_v2ray_config.json"
backup="/etc/v2ray/233blog_v2ray_backup.conf" backup="/etc/v2ray/233blog_v2ray_backup.conf"
@ -56,6 +55,9 @@ _v2ray_sh="/usr/local/sbin/v2ray"
systemd=true systemd=true
# _test=true # _test=true
# site
_site="ddog.xyz"
transport=( transport=(
TCP TCP
TCP_HTTP TCP_HTTP
@ -126,13 +128,13 @@ v2ray_config() {
echo "备注1: 含有 [dynamicPort] 的即启用动态端口.." echo "备注1: 含有 [dynamicPort] 的即启用动态端口.."
echo "备注2: [utp | srtp | wechat-video | dtls | wireguard] 分别伪装成 [BT下载 | 视频通话 | 微信视频通话 | DTLS 1.2 数据包 | WireGuard 数据包]" echo "备注2: [utp | srtp | wechat-video | dtls | wireguard] 分别伪装成 [BT下载 | 视频通话 | 微信视频通话 | DTLS 1.2 数据包 | WireGuard 数据包]"
echo echo
read -p "$(echo -e "(默认协议: ${cyan}TCP$none)"):" v2ray_transport read -p "$(echo -e "(默认协议: ${cyan}TCP$none)"):" new_v2ray_transport
[ -z "$v2ray_transport" ] && v2ray_transport=1 [ -z "$new_v2ray_transport" ] && new_v2ray_transport=1
case $v2ray_transport in case $new_v2ray_transport in
[1-9] | [1-2][0-9] | 3[0-2]) [1-9] | [1-2][0-9] | 3[0-2])
echo echo
echo echo
echo -e "$yellow V2Ray 传输协议 = $cyan${transport[$v2ray_transport - 1]}$none" echo -e "$yellow V2Ray 传输协议 = $cyan${transport[$new_v2ray_transport - 1]}$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -142,10 +144,10 @@ v2ray_config() {
;; ;;
esac esac
done done
v2ray_port_config new_v2ray_port_config
} }
v2ray_port_config() { new_v2ray_port_config() {
case $v2ray_transport in case $new_v2ray_transport in
4 | 5) 4 | 5)
tls_config tls_config
;; ;;
@ -153,13 +155,13 @@ v2ray_port_config() {
local random=$(shuf -i20001-65535 -n1) local random=$(shuf -i20001-65535 -n1)
while :; do while :; do
echo -e "请输入 "$yellow"V2Ray"$none" 端口 ["$magenta"1-65535"$none"]" echo -e "请输入 "$yellow"V2Ray"$none" 端口 ["$magenta"1-65535"$none"]"
read -p "$(echo -e "(默认端口: ${cyan}${random}$none):")" v2ray_port read -p "$(echo -e "(默认端口: ${cyan}${random}$none):")" new_v2ray_port
[ -z "$v2ray_port" ] && v2ray_port=$random [ -z "$new_v2ray_port" ] && new_v2ray_port=$random
case $v2ray_port in case $new_v2ray_port 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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
echo echo
echo echo
echo -e "$yellow V2Ray 端口 = $cyan$v2ray_port$none" echo -e "$yellow V2Ray 端口 = $cyan$new_v2ray_port$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -169,7 +171,7 @@ v2ray_port_config() {
;; ;;
esac esac
done done
if [[ $v2ray_transport -ge 18 ]]; then if [[ $new_v2ray_transport -ge 18 ]]; then
v2ray_dynamic_port_start v2ray_dynamic_port_start
fi fi
;; ;;
@ -183,11 +185,11 @@ v2ray_dynamic_port_start() {
read -p "$(echo -e "(默认开始端口: ${cyan}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 [ -z $v2ray_dynamic_port_start_input ] && v2ray_dynamic_port_start_input=10000
case $v2ray_dynamic_port_start_input in case $v2ray_dynamic_port_start_input in
$v2ray_port) $new_v2ray_port)
echo echo
echo " 不能和 V2Ray 端口一毛一样...." echo " 不能和 V2Ray 端口一毛一样...."
echo echo
echo -e " 当前 V2Ray 端口:${cyan}$v2ray_port${none}" echo -e " 当前 V2Ray 端口:${cyan}$new_v2ray_port${none}"
error error
;; ;;
[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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
@ -205,8 +207,8 @@ v2ray_dynamic_port_start() {
done done
if [[ $v2ray_dynamic_port_start_input -lt $v2ray_port ]]; then if [[ $v2ray_dynamic_port_start_input -lt $new_v2ray_port ]]; then
lt_v2ray_port=true lt_new_v2ray_port=true
fi fi
v2ray_dynamic_port_end v2ray_dynamic_port_end
@ -226,11 +228,11 @@ v2ray_dynamic_port_end() {
echo echo
echo -e " 当前 V2Ray 动态端口开始:${cyan}$v2ray_dynamic_port_start_input${none}" echo -e " 当前 V2Ray 动态端口开始:${cyan}$v2ray_dynamic_port_start_input${none}"
error error
elif [ $lt_v2ray_port ] && [[ ${v2ray_dynamic_port_end_input} -ge $v2ray_port ]]; then elif [ $lt_new_v2ray_port ] && [[ ${v2ray_dynamic_port_end_input} -ge $new_v2ray_port ]]; then
echo echo
echo " V2Ray 动态端口结束范围 不能包括 V2Ray 端口..." echo " V2Ray 动态端口结束范围 不能包括 V2Ray 端口..."
echo echo
echo -e " 当前 V2Ray 端口:${cyan}$v2ray_port${none}" echo -e " 当前 V2Ray 端口:${cyan}$new_v2ray_port${none}"
error error
else else
echo echo
@ -256,9 +258,9 @@ tls_config() {
local random=$(shuf -i20001-65535 -n1) local random=$(shuf -i20001-65535 -n1)
while :; do while :; do
echo -e "请输入 "$yellow"V2Ray"$none" 端口 ["$magenta"1-65535"$none"],不能选择 "$magenta"80"$none" 或 "$magenta"443"$none" 端口" echo -e "请输入 "$yellow"V2Ray"$none" 端口 ["$magenta"1-65535"$none"],不能选择 "$magenta"80"$none" 或 "$magenta"443"$none" 端口"
read -p "$(echo -e "(默认端口: ${cyan}${random}$none):")" v2ray_port read -p "$(echo -e "(默认端口: ${cyan}${random}$none):")" new_v2ray_port
[ -z "$v2ray_port" ] && v2ray_port=$random [ -z "$new_v2ray_port" ] && new_v2ray_port=$random
case $v2ray_port in case $new_v2ray_port in
80) 80)
echo echo
echo " ...都说了不能选择 80 端口了咯....." echo " ...都说了不能选择 80 端口了咯....."
@ -272,7 +274,7 @@ tls_config() {
[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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
echo echo
echo echo
echo -e "$yellow V2Ray 端口 = $cyan$v2ray_port$none" echo -e "$yellow V2Ray 端口 = $cyan$new_v2ray_port$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -326,7 +328,7 @@ tls_config() {
done done
if [[ $v2ray_transport -ne 5 ]]; then if [[ $new_v2ray_transport -ne 5 ]]; then
auto_tls_config auto_tls_config
else else
caddy=true caddy=true
@ -527,14 +529,14 @@ shadowsocks_port_config() {
read -p "$(echo -e "(默认端口: ${cyan}${random}$none):") " ssport read -p "$(echo -e "(默认端口: ${cyan}${random}$none):") " ssport
[ -z "$ssport" ] && ssport=$random [ -z "$ssport" ] && ssport=$random
case $ssport in case $ssport in
$v2ray_port) $new_v2ray_port)
echo echo
echo " 不能和 V2Ray 端口一毛一样...." echo " 不能和 V2Ray 端口一毛一样...."
error error
;; ;;
[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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
if [[ $v2ray_transport == [45] ]]; then if [[ $new_v2ray_transport == [45] ]]; then
local tls=ture local tls=true
fi fi
if [[ $tls && $ssport == "80" ]] || [[ $tls && $ssport == "443" ]]; then if [[ $tls && $ssport == "80" ]] || [[ $tls && $ssport == "443" ]]; then
echo echo
@ -635,11 +637,11 @@ install_info() {
echo echo
echo "---------- 安装信息 -------------" echo "---------- 安装信息 -------------"
echo echo
echo -e "$yellow V2Ray 传输协议 = $cyan${transport[$v2ray_transport - 1]}$none" echo -e "$yellow V2Ray 传输协议 = $cyan${transport[$new_v2ray_transport - 1]}$none"
if [[ $v2ray_transport == [45] ]]; then if [[ $new_v2ray_transport == [45] ]]; then
echo echo
echo -e "$yellow V2Ray 端口 = $cyan$v2ray_port$none" echo -e "$yellow V2Ray 端口 = $cyan$new_v2ray_port$none"
echo echo
echo -e "$yellow 你的域名 = $cyan$domain$none" echo -e "$yellow 你的域名 = $cyan$domain$none"
echo echo
@ -655,9 +657,9 @@ install_info() {
echo echo
echo -e "$yellow 路径分流 = ${cyan}/${path}$none" echo -e "$yellow 路径分流 = ${cyan}/${path}$none"
fi fi
elif [[ $v2ray_transport -ge 18 ]]; then elif [[ $new_v2ray_transport -ge 18 ]]; then
echo echo
echo -e "$yellow V2Ray 端口 = $cyan$v2ray_port$none" echo -e "$yellow V2Ray 端口 = $cyan$new_v2ray_port$none"
echo echo
echo -e "$yellow V2Ray 动态端口范围 = $cyan${v2ray_dynamic_port_start_input} - ${v2ray_dynamic_port_end_input}$none" echo -e "$yellow V2Ray 动态端口范围 = $cyan${v2ray_dynamic_port_start_input} - ${v2ray_dynamic_port_end_input}$none"
@ -667,7 +669,7 @@ install_info() {
fi fi
else else
echo echo
echo -e "$yellow V2Ray 端口 = $cyan$v2ray_port$none" echo -e "$yellow V2Ray 端口 = $cyan$new_v2ray_port$none"
if [[ $ban_ad ]]; then if [[ $ban_ad ]]; then
echo echo
@ -745,7 +747,7 @@ install_v2ray() {
echo echo
echo -e "$red 哎呀呀...安装失败了咯...$none" echo -e "$red 哎呀呀...安装失败了咯...$none"
echo echo
echo -e " 请确保你有完整的上传 v2ray6.com 的 V2Ray 一键安装脚本 & 管理脚本到当前 ${green}$(pwd) $none目录下" echo -e " 请确保你有完整的上传 $_site 的 V2Ray 一键安装脚本 & 管理脚本到当前 ${green}$(pwd) $none目录下"
echo echo
exit 1 exit 1
fi fi
@ -788,10 +790,13 @@ config() {
cp -f /etc/v2ray/233boy/v2ray/v2ray.sh $_v2ray_sh cp -f /etc/v2ray/233boy/v2ray/v2ray.sh $_v2ray_sh
chmod +x $_v2ray_sh chmod +x $_v2ray_sh
v2ray_id=$uuid
alterId=233
ban_bt=true ban_bt=true
if [[ $v2ray_transport -ge 18 ]]; then alterId=233
v2ray_id=$uuid
v2ray_port=$new_v2ray_port
v2ray_transport=$new_v2ray_transport
if [[ $new_v2ray_transport -ge 18 ]]; then
v2ray_dynamicPort_start=${v2ray_dynamic_port_start_input} v2ray_dynamicPort_start=${v2ray_dynamic_port_start_input}
v2ray_dynamicPort_end=${v2ray_dynamic_port_end_input} v2ray_dynamicPort_end=${v2ray_dynamic_port_end_input}
fi fi
@ -802,15 +807,15 @@ config() {
_iptables_save _iptables_save
[[ $shadowsocks ]] && open_port $ssport [[ $shadowsocks ]] && open_port $ssport
if [[ $v2ray_transport == [45] ]]; then if [[ $new_v2ray_transport == [45] ]]; then
open_port "80" open_port "80"
open_port "443" open_port "443"
open_port $v2ray_port open_port $new_v2ray_port
elif [[ $v2ray_transport -ge 18 ]]; then elif [[ $new_v2ray_transport -ge 18 ]]; then
open_port $v2ray_port open_port $new_v2ray_port
open_port "multiport" open_port "multiport"
else else
open_port $v2ray_port open_port $new_v2ray_port
fi fi
systemctl restart v2ray systemctl restart v2ray
backup_config backup_config
@ -818,19 +823,41 @@ config() {
} }
backup_config() { backup_config() {
sed -i "18s/=1/=$v2ray_transport/; 21s/=2333/=$v2ray_port/; 24s/=$old_id/=$uuid/" $backup
if [[ $v2ray_transport -ge 18 ]]; then # load backup script
sed -i "30s/=10000/=$v2ray_dynamic_port_start_input/; 33s/=20000/=$v2ray_dynamic_port_end_input/" $backup _load backup.sh
## v2ray transport, port, uuid
_first_backup v2ray
## dynamic port
if [[ $new_v2ray_transport -ge 18 ]]; then
_first_backup dynamicPort
fi fi
## ss
if [[ $shadowsocks ]]; then if [[ $shadowsocks ]]; then
sed -i "42s/=/=true/; 45s/=6666/=$ssport/; 48s/=233blog.com/=$sspass/; 51s/=chacha20-ietf/=$ssciphers/" $backup _first_backup +ss
fi fi
[[ $v2ray_transport == [45] ]] && sed -i "36s/=233blog.com/=$domain/" $backup
[[ $caddy ]] && sed -i "39s/=/=true/" $backup ## domain, ws+tls / http2
[[ $ban_ad ]] && sed -i "54s/=/=true/" $backup if [[ $new_v2ray_transport == [45] ]]; then
_first_backup domain
fi
## ws+tls / http2, auto config tls
if [[ $caddy ]]; then
_first_backup caddy
fi
## ban ad
if [[ $ban_ad ]]; then
_first_backup +ad
fi
## ws+tls / http2, path
if [[ $is_path ]]; then if [[ $is_path ]]; then
sed -i "57s/=/=true/; 60s/=233blog/=$path/" $backup _first_backup +path
sed -i "63s#=https://liyafly.com#=$proxy_site#" $backup
fi fi
} }
@ -902,7 +929,7 @@ _install() {
install_info install_info
# [[ $caddy ]] && domain_check # [[ $caddy ]] && domain_check
install_v2ray install_v2ray
if [[ $caddy || $v2ray_port == "80" ]]; then if [[ $caddy || $new_v2ray_port == "80" ]]; then
if [[ $cmd == "yum" ]]; then if [[ $cmd == "yum" ]]; then
[[ $(pgrep "httpd") ]] && systemctl stop httpd [[ $(pgrep "httpd") ]] && systemctl stop httpd
[[ $(command -v httpd) ]] && yum remove httpd -y [[ $(command -v httpd) ]] && yum remove httpd -y
@ -942,21 +969,21 @@ _uninstall() {
echo -e " echo -e "
$red 大胸弟...你貌似毛有安装 V2Ray ....卸载个鸡鸡哦...$none $red 大胸弟...你貌似毛有安装 V2Ray ....卸载个鸡鸡哦...$none
备注...仅支持卸载使用我 (v2ray6.com) 提供的 V2Ray 一键安装脚本 备注...仅支持卸载使用我 ($_site) 提供的 V2Ray 一键安装脚本
" && exit 1 " && exit 1
fi fi
} }
_disableselinux () { _disableselinux() {
# Configure SELinux # Configure SELinux
type selinuxenabled >/dev/null 2>&1 || return 0; type selinuxenabled >/dev/null 2>&1 || return 0
[[ ! -f /etc/selinux/config ]] && return 0; [[ ! -f /etc/selinux/config ]] && return 0
if selinuxenabled; then if selinuxenabled; then
setenforce Permissive setenforce Permissive
# disable selinux needs reboot, set to Permissive # disable selinux needs reboot, set to Permissive
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
fi fi
} }
args=$1 args=$1
@ -987,11 +1014,11 @@ esac
clear clear
while :; do while :; do
echo echo
echo "........... V2Ray 一键安装脚本 & 管理脚本 by v2ray6.com .........." echo "........... V2Ray 一键安装脚本 & 管理脚本 by $_site .........."
echo echo
echo "帮助说明: https://v2ray6.com/post/1/" echo "帮助说明: https://$_site/post/1/"
echo echo
echo "搭建教程: https://v2ray6.com/post/2/" echo "搭建教程: https://$_site/post/2/"
echo echo
echo " 1. 安装" echo " 1. 安装"
echo echo

@ -3,10 +3,10 @@ _backup() {
for keys in $*; do for keys in $*; do
case $keys in case $keys in
v2ray_transport) v2ray_transport)
sed -i "s/v2ray_transport=$v2ray_transport/v2ray_transport=$v2ray_transport_opt/" $backup sed -i "s/v2ray_transport=$v2ray_transport/v2ray_transport=$new_v2ray_transport/" $backup
;; ;;
v2ray_port) v2ray_port)
sed -i "s/v2ray_port=$v2ray_port/v2ray_port=$v2ray_port_opt/" $backup sed -i "s/v2ray_port=$v2ray_port/v2ray_port=$new_v2ray_port/" $backup
;; ;;
uuid) uuid)
sed -i "s/v2ray_id=$v2ray_id/v2ray_id=$uuid/" $backup sed -i "s/v2ray_id=$v2ray_id/v2ray_id=$uuid/" $backup
@ -95,3 +95,30 @@ _backup() {
esac esac
done done
} }
_first_backup(){
for keys in $*; do
case $keys in
v2ray)
sed -i "s/v2ray_transport=1/v2ray_transport=$v2ray_transport/; s/v2ray_port=2333/v2ray_port=$v2ray_port/; s/v2ray_id=uuid/v2ray_id=$uuid/" $backup
;;
dynamicPort)
sed -i "s/v2ray_dynamicPort_start=10000/v2ray_dynamicPort_start=$v2ray_dynamic_port_start_input/; s/v2ray_dynamicPort_end=20000/v2ray_dynamicPort_end=$v2ray_dynamic_port_end_input/" $backup
;;
domain)
sed -i "s/domain=233blog.com/domain=$domain/" $backup
;;
caddy)
sed -i "s/caddy=/caddy=true/" $backup
;;
+ss)
sed -i "s/shadowsocks=/shadowsocks=true/; s/ssport=6666/ssport=$ssport/; s/sspass=233blog.com/sspass=$sspass/; s/ssciphers=chacha20-ietf/ssciphers=$ssciphers/" $backup
;;
+ad)
sed -i "s/ban_ad=/ban_ad=true/" $backup
;;
+path)
sed -i "s/path_status=/path_status=true/; s/path=233blog/path=$path/; s#proxy_site=https://liyafly.com#proxy_site=$proxy_site#" $backup
;;
esac
done
}

@ -1,12 +1,12 @@
[[ -z $ip ]] && get_ip [[ -z $ip ]] && get_ip
if [[ $shadowsocks ]]; then if [[ $shadowsocks ]]; then
#local ss="ss://$(echo -n "${ssciphers}:${sspass}@${ip}:${ssport}" | base64 -w 0)#v2ray6.com_ss_${ip}" #local ss="ss://$(echo -n "${ssciphers}:${sspass}@${ip}:${ssport}" | base64 -w 0)#${_site}_ss_${ip}"
local cipherstr=$(echo -n ${ssciphers}:${sspass} | base64 -w 0 | sed 's/=*$//') local cipherstr=$(echo -n ${ssciphers}:${sspass} | base64 -w 0 | sed 's/=*$//')
local clientopt=$(echo ${ssrayopt} | sed 's/server;\?//') local clientopt=$(echo ${ssrayopt} | sed 's/server;\?//')
local opt="?plugin=$(echo "v2ray-plugin;${clientopt}" | sed 's/=/%3d/g; s/;/%3b/g;')" local opt="?plugin=$(echo "v2ray-plugin;${clientopt}" | sed 's/=/%3d/g; s/;/%3b/g;')"
local ss="ss://${cipherstr}@${ip}:${ssport}#v2ray6.com_ss_${ip}" local ss="ss://${cipherstr}@${ip}:${ssport}#${_site}_ss_${ip}"
local ssplugin="ss://${cipherstr}@${ssray_domain}:${ssrayport}/${opt}#v2ray6.com_ssv2_${ssray_domain}" local ssplugin="ss://${cipherstr}@${ssray_domain}:${ssrayport}/${opt}#${_site}_ssv2_${ssray_domain}"
echo echo
echo "---------- Shadowsocks 配置信息 -------------" echo "---------- Shadowsocks 配置信息 -------------"
@ -14,7 +14,7 @@ if [[ $shadowsocks ]]; then
echo -e "$yellow 服务器地址 = $cyan${ip}$none" echo -e "$yellow 服务器地址 = $cyan${ip}$none"
echo echo
if [[ $v6ip ]]; then if [[ $v6ip ]]; then
local ssv6="ss://${cipherstr}@[${v6ip}]:${ssport}#v2ray6.com_ss_${ip}" local ssv6="ss://${cipherstr}@[${v6ip}]:${ssport}#${_site}_ss_${ip}"
echo -e "$yellow 服务器IPv6地址 = $cyan${v6ip}$none" echo -e "$yellow 服务器IPv6地址 = $cyan${v6ip}$none"
echo echo
fi fi

@ -78,7 +78,7 @@ _v2_info() {
if [[ $v2ray_transport == [45] ]]; then if [[ $v2ray_transport == [45] ]]; then
if [[ ! $caddy ]]; then if [[ ! $caddy ]]; then
echo echo
echo -e " $red警告$none$yellow请自行配置 TLS...教程: https://v2ray6.com/post/3/$none" echo -e " $red警告$none$yellow请自行配置 TLS...教程: https://${_site}/post/3/$none"
fi fi
echo echo
echo -e "$yellow 地址 (Address) = $cyan${domain}$none" echo -e "$yellow 地址 (Address) = $cyan${domain}$none"
@ -134,7 +134,7 @@ _v2_info() {
fi fi
echo "---------- END -------------" echo "---------- END -------------"
echo echo
echo "V2Ray 客户端使用教程: https://v2ray6.com/post/4/" echo "V2Ray 客户端使用教程: https://${_site}/post/4/"
echo echo
echo -e "提示: 输入$cyan v2ray url $none可生成 vmess URL 链接 / 输入$cyan v2ray qr $none可生成二维码链接" echo -e "提示: 输入$cyan v2ray url $none可生成 vmess URL 链接 / 输入$cyan v2ray qr $none可生成二维码链接"
echo echo

@ -61,7 +61,6 @@ fi
[[ -f $ssraybackup ]] && source $ssraybackup [[ -f $ssraybackup ]] && source $ssraybackup
uuid=$(cat /proc/sys/kernel/random/uuid) uuid=$(cat /proc/sys/kernel/random/uuid)
old_id="e55c8d17-2cf3-b21a-bcf1-eeacb011ed79"
v2ray_server_config="/etc/v2ray/config.json" v2ray_server_config="/etc/v2ray/config.json"
v2ray_client_config="/etc/v2ray/233blog_v2ray_config.json" v2ray_client_config="/etc/v2ray/233blog_v2ray_config.json"
v2ray_pid=$(pgrep -f /usr/bin/v2ray/v2ray) v2ray_pid=$(pgrep -f /usr/bin/v2ray/v2ray)
@ -72,6 +71,9 @@ v2ray_ver="$(/usr/bin/v2ray/v2ray -version | head -n 1 | cut -d " " -f2)"
systemd=true systemd=true
# _test=true # _test=true
# site
_site="ddog.xyz"
if [[ $v2ray_ver != v* ]]; then if [[ $v2ray_ver != v* ]]; then
v2ray_ver="v$v2ray_ver" v2ray_ver="v$v2ray_ver"
fi fi
@ -121,7 +123,7 @@ create_vmess_URL_config() {
cat >/etc/v2ray/vmess_qr.json <<-EOF cat >/etc/v2ray/vmess_qr.json <<-EOF
{ {
"v": "2", "v": "2",
"ps": "v2ray6.com_${domain}", "ps": "${_site}_${domain}",
"add": "${domain}", "add": "${domain}",
"port": "443", "port": "443",
"id": "${v2ray_id}", "id": "${v2ray_id}",
@ -138,7 +140,7 @@ create_vmess_URL_config() {
cat >/etc/v2ray/vmess_qr.json <<-EOF cat >/etc/v2ray/vmess_qr.json <<-EOF
{ {
"v": "2", "v": "2",
"ps": "v2ray6.com_${ip}", "ps": "${_site}_${ip}",
"add": "${ip}", "add": "${ip}",
"port": "${v2ray_port}", "port": "${v2ray_port}",
"id": "${v2ray_id}", "id": "${v2ray_id}",
@ -154,7 +156,7 @@ create_vmess_URL_config() {
cat >/etc/v2ray/vmess_qrv6.json <<-EOF cat >/etc/v2ray/vmess_qrv6.json <<-EOF
{ {
"v": "2", "v": "2",
"ps": "v2ray6.com_${v6ip}", "ps": "${_site}_${v6ip}",
"add": "${ip}", "add": "${ip}",
"port": "${v2ray_port}", "port": "${v2ray_port}",
"id": "${v2ray_id}", "id": "${v2ray_id}",
@ -228,7 +230,7 @@ get_shadowsocks_config_qr_link() {
echo -e "$green 正在生成链接.... 稍等片刻即可....$none" echo -e "$green 正在生成链接.... 稍等片刻即可....$none"
echo echo
get_ip get_ip
local ss="ss://$(echo -n "${ssciphers}:${sspass}@${ip}:${ssport}" | base64 -w 0)#v2ray6.com_ss_${ip}" local ss="ss://$(echo -n "${ssciphers}:${sspass}@${ip}:${ssport}" | base64 -w 0)#${_site}_ss_${ip}"
echo "${ss}" >/tmp/233blog_shadowsocks.txt echo "${ss}" >/tmp/233blog_shadowsocks.txt
cat /tmp/233blog_shadowsocks.txt | qrencode -s 50 -o /tmp/233blog_shadowsocks.png cat /tmp/233blog_shadowsocks.txt | qrencode -s 50 -o /tmp/233blog_shadowsocks.png
@ -365,7 +367,7 @@ shadowsocks_port_config() {
;; ;;
[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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
if [[ $v2ray_transport == [45] ]]; then if [[ $v2ray_transport == [45] ]]; then
local tls=ture local tls=true
fi fi
if [[ $tls && $new_ssport == "80" ]] || [[ $tls && $new_ssport == "443" ]]; then if [[ $tls && $new_ssport == "80" ]] || [[ $tls && $new_ssport == "443" ]]; then
echo echo
@ -483,7 +485,7 @@ change_shadowsocks_port() {
;; ;;
[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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
if [[ $v2ray_transport == [45] ]]; then if [[ $v2ray_transport == [45] ]]; then
local tls=ture local tls=true
fi fi
if [[ $tls && $new_ssport == "80" ]] || [[ $tls && $new_ssport == "443" ]]; then if [[ $tls && $new_ssport == "80" ]] || [[ $tls && $new_ssport == "443" ]]; then
echo echo
@ -1011,46 +1013,46 @@ change_v2ray_port() {
echo echo
while :; do while :; do
echo -e "请输入 "$yellow"V2Ray"$none" 端口 ["$magenta"1-65535"$none"]" echo -e "请输入 "$yellow"V2Ray"$none" 端口 ["$magenta"1-65535"$none"]"
read -p "$(echo -e "(当前端口: ${cyan}${v2ray_port}$none):")" v2ray_port_opt read -p "$(echo -e "(当前端口: ${cyan}${v2ray_port}$none):")" new_v2ray_port
[[ -z $v2ray_port_opt ]] && error && continue [[ -z $new_v2ray_port ]] && error && continue
case $v2ray_port_opt in case $new_v2ray_port in
$v2ray_port) $v2ray_port)
echo echo
echo " 哎呀...跟当前端口一毛一样呀...修改个鸡鸡哦" echo " 哎呀...跟当前端口一毛一样呀...修改个鸡鸡哦"
error error
;; ;;
[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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [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] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
if [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $v2ray_port_opt || $v2ray_dynamicPort_end == $v2ray_port_opt ]]; then if [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $new_v2ray_port || $v2ray_dynamicPort_end == $new_v2ray_port ]]; then
echo echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}" echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}"
error error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $v2ray_port_opt && $v2ray_port_opt -le $v2ray_dynamicPort_end ]]; then elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $new_v2ray_port && $new_v2ray_port -le $v2ray_dynamicPort_end ]]; then
echo echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}" echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}"
error error
elif [[ $shadowsocks && $v2ray_port_opt == $ssport ]]; then elif [[ $shadowsocks && $new_v2ray_port == $ssport ]]; then
echo echo
echo -e "抱歉, 此端口跟 Shadowsocks 端口冲突...当前 Shadowsocks 端口: ${cyan}$ssport$none" echo -e "抱歉, 此端口跟 Shadowsocks 端口冲突...当前 Shadowsocks 端口: ${cyan}$ssport$none"
error error
elif [[ $socks && $v2ray_port_opt == $socks_port ]]; then elif [[ $socks && $new_v2ray_port == $socks_port ]]; then
echo echo
echo -e "抱歉, 此端口跟 Socks 端口冲突...当前 Socks 端口: ${cyan}$socks_port$none" echo -e "抱歉, 此端口跟 Socks 端口冲突...当前 Socks 端口: ${cyan}$socks_port$none"
error error
elif [[ $mtproto && $v2ray_port_opt == $mtproto_port ]]; then elif [[ $mtproto && $new_v2ray_port == $mtproto_port ]]; then
echo echo
echo -e "抱歉, 此端口跟 MTProto 端口冲突...当前 MTProto 端口: ${cyan}$mtproto_port$none" echo -e "抱歉, 此端口跟 MTProto 端口冲突...当前 MTProto 端口: ${cyan}$mtproto_port$none"
error error
else else
echo echo
echo echo
echo -e "$yellow V2Ray 端口 = $cyan$v2ray_port_opt$none" echo -e "$yellow V2Ray 端口 = $cyan$new_v2ray_port$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
pause pause
backup_config v2ray_port backup_config v2ray_port
del_port $v2ray_port del_port $v2ray_port
open_port $v2ray_port_opt open_port $new_v2ray_port
v2ray_port=$v2ray_port_opt v2ray_port=$new_v2ray_port
config config
clear clear
view_v2ray_config_info view_v2ray_config_info
@ -1101,11 +1103,11 @@ change_v2ray_transport() {
echo "备注1: 含有 [dynamicPort] 的即启用动态端口.." echo "备注1: 含有 [dynamicPort] 的即启用动态端口.."
echo "备注2: [utp | srtp | wechat-video | dtls | wireguard] 分别伪装成 [BT下载 | 视频通话 | 微信视频通话 | DTLS 1.2 数据包 | WireGuard 数据包]" echo "备注2: [utp | srtp | wechat-video | dtls | wireguard] 分别伪装成 [BT下载 | 视频通话 | 微信视频通话 | DTLS 1.2 数据包 | WireGuard 数据包]"
echo echo
read -p "$(echo -e "(当前传输协议: ${cyan}${transport[$v2ray_transport - 1]}$none)"):" v2ray_transport_opt read -p "$(echo -e "(当前传输协议: ${cyan}${transport[$v2ray_transport - 1]}$none)"):" new_v2ray_transport
if [ -z "$v2ray_transport_opt" ]; then if [ -z "$new_v2ray_transport" ]; then
error error
else else
case $v2ray_transport_opt in case $new_v2ray_transport in
$v2ray_transport) $v2ray_transport)
echo echo
echo " 哎呀...跟当前传输协议一毛一样呀...修改个鸡鸡哦" echo " 哎呀...跟当前传输协议一毛一样呀...修改个鸡鸡哦"
@ -1114,32 +1116,32 @@ change_v2ray_transport() {
4 | 5) 4 | 5)
if [[ $v2ray_port == "80" || $v2ray_port == "443" ]]; then if [[ $v2ray_port == "80" || $v2ray_port == "443" ]]; then
echo echo
echo -e " 抱歉...如果你想要使用${cyan} ${transport[$v2ray_transport_opt - 1]} $none传输协议.. ${red}V2Ray 端口不能为 80 或者 443 ...$none" echo -e " 抱歉...如果你想要使用${cyan} ${transport[$new_v2ray_transport - 1]} $none传输协议.. ${red}V2Ray 端口不能为 80 或者 443 ...$none"
echo echo
echo -e " 当前 V2Ray 端口: ${cyan}$v2ray_port$none" echo -e " 当前 V2Ray 端口: ${cyan}$v2ray_port$none"
error error
elif [[ $shadowsocks ]] && [[ $ssport == "80" || $ssport == "443" ]]; then elif [[ $shadowsocks ]] && [[ $ssport == "80" || $ssport == "443" ]]; then
echo echo
echo -e " 抱歉...如果你想要使用${cyan} ${transport[$v2ray_transport_opt - 1]} $none传输协议.. ${red}Shadowsocks 端口不能为 80 或者 443 ...$none" echo -e " 抱歉...如果你想要使用${cyan} ${transport[$new_v2ray_transport - 1]} $none传输协议.. ${red}Shadowsocks 端口不能为 80 或者 443 ...$none"
echo echo
echo -e " 当前 Shadowsocks 端口: ${cyan}$ssport$none" echo -e " 当前 Shadowsocks 端口: ${cyan}$ssport$none"
error error
elif [[ $socks ]] && [[ $socks_port == "80" || $socks_port == "443" ]]; then elif [[ $socks ]] && [[ $socks_port == "80" || $socks_port == "443" ]]; then
echo echo
echo -e " 抱歉...如果你想要使用${cyan} ${transport[$v2ray_transport_opt - 1]} $none传输协议.. ${red}Socks 端口不能为 80 或者 443 ...$none" echo -e " 抱歉...如果你想要使用${cyan} ${transport[$new_v2ray_transport - 1]} $none传输协议.. ${red}Socks 端口不能为 80 或者 443 ...$none"
echo echo
echo -e " 当前 Socks 端口: ${cyan}$socks_port$none" echo -e " 当前 Socks 端口: ${cyan}$socks_port$none"
error error
elif [[ $mtproto ]] && [[ $mtproto_port == "80" || $mtproto_port == "443" ]]; then elif [[ $mtproto ]] && [[ $mtproto_port == "80" || $mtproto_port == "443" ]]; then
echo echo
echo -e " 抱歉...如果你想要使用${cyan} ${transport[$v2ray_transport_opt - 1]} $none传输协议.. ${red}MTProto 端口不能为 80 或者 443 ...$none" echo -e " 抱歉...如果你想要使用${cyan} ${transport[$new_v2ray_transport - 1]} $none传输协议.. ${red}MTProto 端口不能为 80 或者 443 ...$none"
echo echo
echo -e " 当前 MTProto 端口: ${cyan}$mtproto_port$none" echo -e " 当前 MTProto 端口: ${cyan}$mtproto_port$none"
error error
else else
echo echo
echo echo
echo -e "$yellow V2Ray 传输协议 = $cyan${transport[$v2ray_transport_opt - 1]}$none" echo -e "$yellow V2Ray 传输协议 = $cyan${transport[$new_v2ray_transport - 1]}$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -1148,7 +1150,7 @@ change_v2ray_transport() {
[1-9] | [1-2][0-9] | 3[0-2]) [1-9] | [1-2][0-9] | 3[0-2])
echo echo
echo echo
echo -e "$yellow V2Ray 传输协议 = $cyan${transport[$v2ray_transport_opt - 1]}$none" echo -e "$yellow V2Ray 传输协议 = $cyan${transport[$new_v2ray_transport - 1]}$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -1162,9 +1164,9 @@ change_v2ray_transport() {
done done
pause pause
if [[ $v2ray_transport_opt == [45] ]]; then if [[ $new_v2ray_transport == [45] ]]; then
tls_config tls_config
elif [[ $v2ray_transport_opt -ge 18 ]]; then elif [[ $new_v2ray_transport -ge 18 ]]; then
v2ray_dynamic_port_start v2ray_dynamic_port_start
v2ray_dynamic_port_end v2ray_dynamic_port_end
pause pause
@ -1172,14 +1174,14 @@ change_v2ray_transport() {
open_port "multiport" open_port "multiport"
backup_config v2ray_transport v2ray_dynamicPort_start v2ray_dynamicPort_end backup_config v2ray_transport v2ray_dynamicPort_start v2ray_dynamicPort_end
port_range="${v2ray_dynamic_port_start_input}-${v2ray_dynamic_port_end_input}" port_range="${v2ray_dynamic_port_start_input}-${v2ray_dynamic_port_end_input}"
v2ray_transport=$v2ray_transport_opt v2ray_transport=$new_v2ray_transport
config config
clear clear
view_v2ray_config_info view_v2ray_config_info
else else
old_transport old_transport
backup_config v2ray_transport backup_config v2ray_transport
v2ray_transport=$v2ray_transport_opt v2ray_transport=$new_v2ray_transport
config config
clear clear
view_v2ray_config_info view_v2ray_config_info
@ -1282,13 +1284,13 @@ tls_config() {
else else
update-rc.d -f caddy defaults >/dev/null 2>&1 update-rc.d -f caddy defaults >/dev/null 2>&1
fi fi
v2ray_transport=$v2ray_transport_opt v2ray_transport=$new_v2ray_transport
caddy_config caddy_config
config config
clear clear
view_v2ray_config_info view_v2ray_config_info
else else
if [[ $v2ray_transport_opt == 5 ]]; then if [[ $new_v2ray_transport == 5 ]]; then
path_config_ask path_config_ask
pause pause
domain_check domain_check
@ -1306,7 +1308,7 @@ tls_config() {
install_caddy install_caddy
open_port "80" open_port "80"
open_port "443" open_port "443"
v2ray_transport=$v2ray_transport_opt v2ray_transport=$new_v2ray_transport
caddy_config caddy_config
config config
caddy=true caddy=true
@ -1361,7 +1363,7 @@ auto_tls_config() {
install_caddy install_caddy
open_port "80" open_port "80"
open_port "443" open_port "443"
v2ray_transport=$v2ray_transport_opt v2ray_transport=$new_v2ray_transport
caddy_config caddy_config
config config
caddy=true caddy=true
@ -1383,7 +1385,7 @@ auto_tls_config() {
domain=$new_domain domain=$new_domain
open_port "80" open_port "80"
open_port "443" open_port "443"
v2ray_transport=$v2ray_transport_opt v2ray_transport=$new_v2ray_transport
config config
clear clear
view_v2ray_config_info view_v2ray_config_info
@ -2414,7 +2416,7 @@ get_v2ray_config() {
echo echo
echo -e "${yellow} HTTP 监听端口 = ${cyan}6666$none" echo -e "${yellow} HTTP 监听端口 = ${cyan}6666$none"
echo echo
echo "V2Ray 客户端使用教程: https://v2ray6.com/post/4/" echo "V2Ray 客户端使用教程: https://${_site}/post/4/"
echo echo
break break
else else
@ -2441,7 +2443,7 @@ get_v2ray_config_link() {
echo echo
echo -e "${yellow} HTTP 监听端口 = ${cyan}6666$none" echo -e "${yellow} HTTP 监听端口 = ${cyan}6666$none"
echo echo
echo " V2Ray 客户端使用教程: https://v2ray6.com/post/4/" echo " V2Ray 客户端使用教程: https://${_site}/post/4/"
echo echo
echo "备注...链接将在 14 天后失效" echo "备注...链接将在 14 天后失效"
echo echo
@ -2463,7 +2465,7 @@ create_v2ray_config_text() {
if [[ $v2ray_transport == [45] ]]; then if [[ $v2ray_transport == [45] ]]; then
if [[ ! $caddy ]]; then if [[ ! $caddy ]]; then
echo echo
echo " 警告!请自行配置 TLS...教程: https://v2ray6.com/post/3/" echo " 警告!请自行配置 TLS...教程: https://${_site}/post/3/"
fi fi
echo echo
echo "地址 (Address) = ${domain}" echo "地址 (Address) = ${domain}"
@ -2516,7 +2518,7 @@ create_v2ray_config_text() {
fi fi
echo "---------- END -------------" echo "---------- END -------------"
echo echo
echo "V2Ray 客户端使用教程: https://v2ray6.com/post/4/" echo "V2Ray 客户端使用教程: https://${_site}/post/4/"
echo echo
} }
get_v2ray_config_info_link() { get_v2ray_config_info_link() {
@ -2532,7 +2534,7 @@ get_v2ray_config_info_link() {
echo echo
echo -e "$yellow 链接 = $cyan$link$none" echo -e "$yellow 链接 = $cyan$link$none"
echo echo
echo -e " V2Ray 客户端使用教程: https://v2ray6.com/post/4/" echo -e " V2Ray 客户端使用教程: https://${_site}/post/4/"
echo echo
echo "备注...链接将在 14 天后失效..." echo "备注...链接将在 14 天后失效..."
echo echo
@ -2567,7 +2569,7 @@ get_v2ray_config_qr_link() {
echo -e "$red 友情提醒: 请务必核对扫码结果 (V2RayNG 除外) $none" echo -e "$red 友情提醒: 请务必核对扫码结果 (V2RayNG 除外) $none"
echo echo
echo echo
echo " V2Ray 客户端使用教程: https://v2ray6.com/post/4/" echo " V2Ray 客户端使用教程: https://${_site}/post/4/"
echo echo
echo "备注...链接将在 14 天后失效" echo "备注...链接将在 14 天后失效"
echo echo
@ -2788,7 +2790,7 @@ do_service() {
} }
_help() { _help() {
echo echo
echo "........... V2Ray 管理脚本帮助信息 by v2ray6.com .........." echo "........... V2Ray 管理脚本帮助信息 by ${_site} .........."
echo -e " echo -e "
${green}v2ray menu $none管理 V2Ray (同等于直接输入 v2ray) ${green}v2ray menu $none管理 V2Ray (同等于直接输入 v2ray)
@ -2831,17 +2833,17 @@ menu() {
clear clear
while :; do while :; do
echo echo
echo "........... V2Ray 管理脚本 $_version by v2ray6.com .........." echo "........... V2Ray 管理脚本 $_version by ${_site} .........."
echo echo
echo -e "## V2Ray 版本: $cyan$v2ray_ver$none / V2Ray 状态: $v2ray_status ##" echo -e "## V2Ray 版本: $cyan$v2ray_ver$none / V2Ray 状态: $v2ray_status ##"
echo echo
echo "帮助说明: https://v2ray6.com/post/1/" echo "帮助说明: https://${_site}/post/1/"
echo echo
echo "反馈问题: https://github.com/233boy/v2ray/issues" echo "反馈问题: https://github.com/233boy/v2ray/issues"
echo echo
echo "TG 群组: https://t.me/blog233" echo "TG 群组: https://t.me/blog233"
echo echo
echo "捐赠脚本作者: https://v2ray6.com/donate/" echo "捐赠脚本作者: https://${_site}/donate/"
echo echo
echo "捐助 V2Ray: https://www.v2ray.com/chapter_00/02_donate.html" echo "捐助 V2Ray: https://www.v2ray.com/chapter_00/02_donate.html"
echo echo

Loading…
Cancel
Save