feat(脚本): 添加移除用户、添加单个用户可自定义uuid、修复ipv6人机验证时重启的core的问题
parent
507053165f
commit
2086433698
120
install.sh
120
install.sh
|
@ -2482,7 +2482,7 @@ manageUser(){
|
||||||
echoContent skyBlue "\n进度 $1/${totalProgress} : 多用户管理"
|
echoContent skyBlue "\n进度 $1/${totalProgress} : 多用户管理"
|
||||||
echoContent skyBlue "-----------------------------------------------------"
|
echoContent skyBlue "-----------------------------------------------------"
|
||||||
echoContent yellow "1.添加用户"
|
echoContent yellow "1.添加用户"
|
||||||
echoContent yellow "2.删除用户[todo]"
|
echoContent yellow "2.删除用户"
|
||||||
echoContent skyBlue "-----------------------------------------------------"
|
echoContent skyBlue "-----------------------------------------------------"
|
||||||
read -p "请选择:" manageUserType
|
read -p "请选择:" manageUserType
|
||||||
if [[ "${manageUserType}" = "1" ]]
|
if [[ "${manageUserType}" = "1" ]]
|
||||||
|
@ -2490,16 +2490,45 @@ manageUser(){
|
||||||
addUser
|
addUser
|
||||||
elif [[ "${manageUserType}" = "2" ]]
|
elif [[ "${manageUserType}" = "2" ]]
|
||||||
then
|
then
|
||||||
# removeUser
|
removeUser
|
||||||
echo
|
|
||||||
else
|
else
|
||||||
echoContent red " ---> 选择错误"
|
echoContent red " ---> 选择错误"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 自定义uuid
|
||||||
|
customUUID(){
|
||||||
|
read -p "是否自定义UUID ?[y/n]:" customUUIDStatus
|
||||||
|
echo
|
||||||
|
if [[ "${customUUIDStatus}" = "y" ]]
|
||||||
|
then
|
||||||
|
read -p "请输入合法的UUID:" currentCustomUUID
|
||||||
|
echo
|
||||||
|
if [[ -z "${currentCustomUUID}" ]]
|
||||||
|
then
|
||||||
|
echoContent red " ---> UUID不可位空"
|
||||||
|
else
|
||||||
|
local repeat=
|
||||||
|
cat ${configPath}02_VLESS_TCP_inbounds.json|jq '.inbounds[0].settings.clients[].id'|awk -F "[\"]" '{print $2}'|while read line
|
||||||
|
do
|
||||||
|
if [[ "${line}" = "${currentCustomUUID}" ]]
|
||||||
|
then
|
||||||
|
echo repeat >/tmp/v2ray-agent
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ -f "/tmp/v2ray-agent" && ! -z `cat /tmp/v2ray-agent` ]]
|
||||||
|
then
|
||||||
|
echoContent red " ---> UUID不可重复"
|
||||||
|
rm /tmp/v2ray-agent
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
# 添加用户
|
# 添加用户
|
||||||
addUser(){
|
addUser(){
|
||||||
read -p "请输入要添加的用户数量:" userNum
|
read -p "请输入要添加的用户数量:" userNum
|
||||||
|
echo
|
||||||
if [[ -z ${userNum} || ${userNum} -le 0 ]]
|
if [[ -z ${userNum} || ${userNum} -le 0 ]]
|
||||||
then
|
then
|
||||||
echoContent red " ---> 输入有误,请重新输入"
|
echoContent red " ---> 输入有误,请重新输入"
|
||||||
|
@ -2508,10 +2537,20 @@ addUser(){
|
||||||
# 生成用户
|
# 生成用户
|
||||||
local users=
|
local users=
|
||||||
local trojanGoUsers=
|
local trojanGoUsers=
|
||||||
|
if [[ "${userNum}" = "1" ]]
|
||||||
|
then
|
||||||
|
customUUID
|
||||||
|
fi
|
||||||
while [[ ${userNum} -gt 0 ]]
|
while [[ ${userNum} -gt 0 ]]
|
||||||
do
|
do
|
||||||
let userNum--
|
let userNum--
|
||||||
uuid=`${coreInstallPath} uuid`
|
if [[ ! -z "${currentCustomUUID}" ]]
|
||||||
|
then
|
||||||
|
uuid=${currentCustomUUID}
|
||||||
|
else
|
||||||
|
uuid=`${coreInstallPath} uuid`
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ ${userNum} = 0 ]]
|
if [[ ${userNum} = 0 ]]
|
||||||
then
|
then
|
||||||
users=${users}{\"id\":\"${uuid}\",\"flow\":\"xtls-rprx-direct\",\"email\":\"${currentHost}_${uuid}\"}
|
users=${users}{\"id\":\"${uuid}\",\"flow\":\"xtls-rprx-direct\",\"email\":\"${currentHost}_${uuid}\"}
|
||||||
|
@ -2538,29 +2577,29 @@ addUser(){
|
||||||
|
|
||||||
if [[ ! -z `echo ${currentInstallProtocolType} | grep 0` ]]
|
if [[ ! -z `echo ${currentInstallProtocolType} | grep 0` ]]
|
||||||
then
|
then
|
||||||
echo `cat ${configPath}02_VLESS_TCP_inbounds.json|jq '.inbounds[0].settings.clients += ['${users}']'` > ${configPath}02_VLESS_TCP_inbounds.json
|
echo `cat ${configPath}02_VLESS_TCP_inbounds.json|jq -r '.inbounds[0].settings.clients += ['${users}']'` > ${configPath}02_VLESS_TCP_inbounds.json
|
||||||
fi
|
fi
|
||||||
|
|
||||||
users=`echo ${users}|sed 's/"flow":"xtls-rprx-direct",//g'`
|
users=`echo ${users}|sed 's/"flow":"xtls-rprx-direct",//g'`
|
||||||
|
|
||||||
if [[ ! -z `echo ${currentInstallProtocolType} | grep 1` ]]
|
if [[ ! -z `echo ${currentInstallProtocolType} | grep 1` ]]
|
||||||
then
|
then
|
||||||
echo `cat ${configPath}03_VLESS_WS_inbounds.json|jq '.inbounds[0].settings.clients += ['${users}']'` > ${configPath}03_VLESS_WS_inbounds.json
|
echo `cat ${configPath}03_VLESS_WS_inbounds.json|jq -r '.inbounds[0].settings.clients += ['${users}']'` > ${configPath}03_VLESS_WS_inbounds.json
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -z `echo ${currentInstallProtocolType}|grep 2` ]]
|
if [[ ! -z `echo ${currentInstallProtocolType}|grep 2` ]]
|
||||||
then
|
then
|
||||||
echo `cat ${configPath}04_VMess_TCP_inbounds.json|jq '.inbounds[0].settings.clients += ['${users}']'` > ${configPath}04_VMess_TCP_inbounds.json
|
echo `cat ${configPath}04_VMess_TCP_inbounds.json|jq -r '.inbounds[0].settings.clients += ['${users}']'` > ${configPath}04_VMess_TCP_inbounds.json
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -z `echo ${currentInstallProtocolType} | grep 3` ]]
|
if [[ ! -z `echo ${currentInstallProtocolType} | grep 3` ]]
|
||||||
then
|
then
|
||||||
echo `cat ${configPath}05_VMess_WS_inbounds.json|jq '.inbounds[0].settings.clients += ['${users}']'` > ${configPath}05_VMess_WS_inbounds.json
|
echo `cat ${configPath}05_VMess_WS_inbounds.json|jq -r '.inbounds[0].settings.clients += ['${users}']'` > ${configPath}05_VMess_WS_inbounds.json
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -z `echo ${currentInstallProtocolType} | grep 4` ]]
|
if [[ ! -z `echo ${currentInstallProtocolType} | grep 4` ]]
|
||||||
then
|
then
|
||||||
echo `cat ${configPath}../../trojan/config_full.json|jq '.password += ['${trojanGoUsers}']'` > ${configPath}../../trojan/config_full.json
|
echo `cat ${configPath}../../trojan/config_full.json|jq -r '.password += ['${trojanGoUsers}']'` > ${configPath}../../trojan/config_full.json
|
||||||
handleTrojanGo stop
|
handleTrojanGo stop
|
||||||
handleTrojanGo start
|
handleTrojanGo start
|
||||||
fi
|
fi
|
||||||
|
@ -2579,6 +2618,55 @@ addUser(){
|
||||||
showAccounts 1
|
showAccounts 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 移除用户
|
||||||
|
removeUser(){
|
||||||
|
if [[ ! -z `echo ${currentInstallProtocolType} | grep 0` ]]
|
||||||
|
then
|
||||||
|
cat ${configPath}02_VLESS_TCP_inbounds.json|jq .inbounds[0].settings.clients|jq .[].id|awk -F "[\"]" '{print $2}'|awk '{print NR""":"$0}'
|
||||||
|
read -p "请选择要删除的用户编号:" delUserIndex
|
||||||
|
if [[ `cat ${configPath}02_VLESS_TCP_inbounds.json|jq -r '.inbounds[0].settings.clients|length'` -lt ${delUserIndex} ]]
|
||||||
|
then
|
||||||
|
echoContent red " ---> 选择错误"
|
||||||
|
else
|
||||||
|
delUserIndex=`expr ${delUserIndex} - 1`
|
||||||
|
echo delUserIndex:${delUserIndex}
|
||||||
|
echo `cat ${configPath}02_VLESS_TCP_inbounds.json|jq -r 'del(.inbounds[0].settings.clients['${delUserIndex}'])'` > ${configPath}02_VLESS_TCP_inbounds.json
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ ! -z "${delUserIndex}" ]]
|
||||||
|
then
|
||||||
|
if [[ ! -z `echo ${currentInstallProtocolType} | grep 1` ]]
|
||||||
|
then
|
||||||
|
echo `cat ${configPath}03_VLESS_WS_inbounds.json|jq -r 'del(.inbounds[0].settings.clients['${delUserIndex}'])'` > ${configPath}03_VLESS_WS_inbounds.json
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -z `echo ${currentInstallProtocolType}|grep 2` ]]
|
||||||
|
then
|
||||||
|
echo `cat ${configPath}04_VMess_TCP_inbounds.json|jq -r 'del(.inbounds[0].settings.clients['${delUserIndex}'])'` > ${configPath}04_VMess_TCP_inbounds.json
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -z `echo ${currentInstallProtocolType} | grep 3` ]]
|
||||||
|
then
|
||||||
|
echo `cat ${configPath}05_VMess_WS_inbounds.json|jq -r 'del(.inbounds[0].settings.clients['${delUserIndex}'])'` > ${configPath}05_VMess_WS_inbounds.json
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -z `echo ${currentInstallProtocolType} | grep 4` ]]
|
||||||
|
then
|
||||||
|
echo `cat ${configPath}../../trojan/config_full.json|jq -r 'del(.password['${delUserIndex}'])'` > ${configPath}../../trojan/config_full.json
|
||||||
|
handleTrojanGo stop
|
||||||
|
handleTrojanGo start
|
||||||
|
fi
|
||||||
|
if [[ "${coreInstallType}" = "1" ]]
|
||||||
|
then
|
||||||
|
handleXray stop
|
||||||
|
handleXray start
|
||||||
|
elif [[ "${coreInstallType}" = "2" || "${coreInstallType}" = "3" ]]
|
||||||
|
then
|
||||||
|
handleV2Ray stop
|
||||||
|
handleV2Ray start
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
# 更新脚本
|
# 更新脚本
|
||||||
updateV2RayAgent(){
|
updateV2RayAgent(){
|
||||||
echoContent skyBlue "\n进度 $1/${totalProgress} : 更新v2ray-agent脚本"
|
echoContent skyBlue "\n进度 $1/${totalProgress} : 更新v2ray-agent脚本"
|
||||||
|
@ -2800,8 +2888,16 @@ EOF
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
handleXray stop
|
if [[ "${coreInstallType}" = "1" ]]
|
||||||
handleXray start
|
then
|
||||||
|
handleXray stop
|
||||||
|
handleXray start
|
||||||
|
|
||||||
|
elif [[ "${coreInstallType}" = "2" || "${coreInstallType}" = "3" ]]
|
||||||
|
then
|
||||||
|
handleV2Ray stop
|
||||||
|
handleV2Ray start
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# v2ray-core个性化安装
|
# v2ray-core个性化安装
|
||||||
|
@ -3088,7 +3184,7 @@ menu(){
|
||||||
cd
|
cd
|
||||||
echoContent red "\n=============================================================="
|
echoContent red "\n=============================================================="
|
||||||
echoContent green "作者:mack-a"
|
echoContent green "作者:mack-a"
|
||||||
echoContent green "当前版本:v2.2.9"
|
echoContent green "当前版本:v2.2.10"
|
||||||
echoContent green "Github:https://github.com/mack-a/v2ray-agent"
|
echoContent green "Github:https://github.com/mack-a/v2ray-agent"
|
||||||
echoContent green "描述:七合一共存脚本"
|
echoContent green "描述:七合一共存脚本"
|
||||||
echoContent red "=============================================================="
|
echoContent red "=============================================================="
|
||||||
|
|
Loading…
Reference in New Issue