mirror of https://github.com/mack-a/v2ray-agent
feat(脚本): 兼容1panel、sing-box兼容1panel以及宝塔面板
parent
5877634a00
commit
73e8e99aa1
115
install.sh
115
install.sh
|
@ -570,6 +570,42 @@ checkBTPanel() {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
check1Panel() {
|
||||||
|
if [[ -n $(pgrep -f "1panel") ]]; then
|
||||||
|
# 读取域名
|
||||||
|
if [[ -d '/opt/1panel/apps/openresty/openresty/www/sites/' && -n $(find /opt/1panel/apps/openresty/openresty/www/sites/*/ssl/fullchain.pem) ]]; then
|
||||||
|
if [[ -z "${currentHost}" ]]; then
|
||||||
|
echoContent skyBlue "\n读取1Panel配置\n"
|
||||||
|
|
||||||
|
find /opt/1panel/apps/openresty/openresty/www/sites/*/ssl/fullchain.pem | awk -F "[/]" '{print $9}' | awk '{print NR""":"$0}'
|
||||||
|
|
||||||
|
read -r -p "请输入编号选择:" selectBTDomain
|
||||||
|
else
|
||||||
|
selectBTDomain=$(find /opt/1panel/apps/openresty/openresty/www/sites/*/ssl/fullchain.pem | awk -F "[/]" '{print $9}' | awk '{print NR""":"$0}' | grep "${currentHost}" | cut -d ":" -f 1)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "${selectBTDomain}" ]]; then
|
||||||
|
btDomain=$(find /opt/1panel/apps/openresty/openresty/www/sites/*/ssl/fullchain.pem | awk -F "[/]" '{print $9}' | awk '{print NR""":"$0}' | grep "${selectBTDomain}:" | cut -d ":" -f 2)
|
||||||
|
|
||||||
|
if [[ -z "${btDomain}" ]]; then
|
||||||
|
echoContent red " ---> 选择错误,请重新选择"
|
||||||
|
check1Panel
|
||||||
|
else
|
||||||
|
domain=${btDomain}
|
||||||
|
if [[ ! -f "/etc/v2ray-agent/tls/${btDomain}.crt" && ! -f "/etc/v2ray-agent/tls/${btDomain}.key" ]]; then
|
||||||
|
ln -s "/opt/1panel/apps/openresty/openresty/www/sites/${btDomain}/ssl/fullchain.pem" "/etc/v2ray-agent/tls/${btDomain}.crt"
|
||||||
|
ln -s "/opt/1panel/apps/openresty/openresty/www/sites/${btDomain}/ssl/privkey.pem" "/etc/v2ray-agent/tls/${btDomain}.key"
|
||||||
|
fi
|
||||||
|
|
||||||
|
nginxStaticPath="/opt/1panel/apps/openresty/openresty/www/sites/${btDomain}/index/"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echoContent red " ---> 选择错误,请重新选择"
|
||||||
|
check1Panel
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
# 读取当前alpn的顺序
|
# 读取当前alpn的顺序
|
||||||
readInstallAlpn() {
|
readInstallAlpn() {
|
||||||
if [[ -n "${currentInstallProtocolType}" && -z "${realityStatus}" ]]; then
|
if [[ -n "${currentInstallProtocolType}" && -z "${realityStatus}" ]]; then
|
||||||
|
@ -791,6 +827,7 @@ readConfigHostPathUUID() {
|
||||||
dest=$(jq -r -c '.inbounds[0].settings.fallbacks[]|select(.alpn)|.dest' ${configPath}${frontingType}.json | head -1)
|
dest=$(jq -r -c '.inbounds[0].settings.fallbacks[]|select(.alpn)|.dest' ${configPath}${frontingType}.json | head -1)
|
||||||
if [[ "${dest}" == "31302" || "${dest}" == "31304" ]]; then
|
if [[ "${dest}" == "31302" || "${dest}" == "31304" ]]; then
|
||||||
checkBTPanel
|
checkBTPanel
|
||||||
|
check1Panel
|
||||||
if grep -q "trojangrpc {" <${nginxConfigPath}alone.conf; then
|
if grep -q "trojangrpc {" <${nginxConfigPath}alone.conf; then
|
||||||
currentPath=$(grep "trojangrpc {" <${nginxConfigPath}alone.conf | awk -F "[/]" '{print $2}' | awk -F "[t][r][o][j][a][n]" '{print $1}')
|
currentPath=$(grep "trojangrpc {" <${nginxConfigPath}alone.conf | awk -F "[/]" '{print $2}' | awk -F "[t][r][o][j][a][n]" '{print $1}')
|
||||||
elif grep -q "grpc {" <${nginxConfigPath}alone.conf; then
|
elif grep -q "grpc {" <${nginxConfigPath}alone.conf; then
|
||||||
|
@ -1239,10 +1276,11 @@ checkPortOpen() {
|
||||||
local domain=$2
|
local domain=$2
|
||||||
local checkPortOpenResult=
|
local checkPortOpenResult=
|
||||||
allowPort "${port}"
|
allowPort "${port}"
|
||||||
|
if [[ -z "${btDomain}" ]]; then
|
||||||
|
|
||||||
# 初始化nginx配置
|
# 初始化nginx配置
|
||||||
touch ${nginxConfigPath}checkPortOpen.conf
|
touch ${nginxConfigPath}checkPortOpen.conf
|
||||||
cat <<EOF >${nginxConfigPath}checkPortOpen.conf
|
cat <<EOF >${nginxConfigPath}checkPortOpen.conf
|
||||||
server {
|
server {
|
||||||
listen ${port};
|
listen ${port};
|
||||||
listen [::]:${port};
|
listen [::]:${port};
|
||||||
|
@ -1260,29 +1298,30 @@ server {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
handleNginx start
|
handleNginx start
|
||||||
# 检查域名+端口的开放
|
# 检查域名+端口的开放
|
||||||
checkPortOpenResult=$(curl -s -m 10 "http://${domain}:${port}/checkPort")
|
checkPortOpenResult=$(curl -s -m 10 "http://${domain}:${port}/checkPort")
|
||||||
localIP=$(curl -s -m 10 "http://${domain}:${port}/ip")
|
localIP=$(curl -s -m 10 "http://${domain}:${port}/ip")
|
||||||
rm "${nginxConfigPath}checkPortOpen.conf"
|
rm "${nginxConfigPath}checkPortOpen.conf"
|
||||||
handleNginx stop
|
handleNginx stop
|
||||||
if [[ "${checkPortOpenResult}" == "fjkvymb6len" ]]; then
|
if [[ "${checkPortOpenResult}" == "fjkvymb6len" ]]; then
|
||||||
echoContent green " ---> 检测到${port}端口已开放"
|
echoContent green " ---> 检测到${port}端口已开放"
|
||||||
else
|
|
||||||
echoContent green " ---> 未检测到${port}端口开放,退出安装"
|
|
||||||
if echo "${checkPortOpenResult}" | grep -q "cloudflare"; then
|
|
||||||
echoContent yellow " ---> 请关闭云朵后等待三分钟重新尝试"
|
|
||||||
else
|
else
|
||||||
if [[ -z "${checkPortOpenResult}" ]]; then
|
echoContent green " ---> 未检测到${port}端口开放,退出安装"
|
||||||
echoContent red " ---> 请检查是否有网页防火墙,比如Oracle等云服务商"
|
if echo "${checkPortOpenResult}" | grep -q "cloudflare"; then
|
||||||
echoContent red " ---> 检查是否自己安装过nginx并且有配置冲突,可以尝试DD纯净系统后重新尝试"
|
echoContent yellow " ---> 请关闭云朵后等待三分钟重新尝试"
|
||||||
else
|
else
|
||||||
echoContent red " ---> 错误日志:${checkPortOpenResult},请将此错误日志通过issues提交反馈"
|
if [[ -z "${checkPortOpenResult}" ]]; then
|
||||||
|
echoContent red " ---> 请检查是否有网页防火墙,比如Oracle等云服务商"
|
||||||
|
echoContent red " ---> 检查是否自己安装过nginx并且有配置冲突,可以尝试DD纯净系统后重新尝试"
|
||||||
|
else
|
||||||
|
echoContent red " ---> 错误日志:${checkPortOpenResult},请将此错误日志通过issues提交反馈"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
exit 0
|
||||||
fi
|
fi
|
||||||
exit 0
|
checkIP "${localIP}"
|
||||||
fi
|
fi
|
||||||
checkIP "${localIP}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# 初始化Nginx申请证书配置
|
# 初始化Nginx申请证书配置
|
||||||
|
@ -1689,7 +1728,7 @@ customPortFunction() {
|
||||||
echo
|
echo
|
||||||
|
|
||||||
if [[ -n "${btDomain}" ]]; then
|
if [[ -n "${btDomain}" ]]; then
|
||||||
echoContent yellow "请输入端口[不可与BT Panel端口相同,回车随机]"
|
echoContent yellow "请输入端口[不可与BT Panel/1Panel端口相同,回车随机]"
|
||||||
read -r -p "端口:" port
|
read -r -p "端口:" port
|
||||||
if [[ -z "${port}" ]]; then
|
if [[ -z "${port}" ]]; then
|
||||||
port=$((RANDOM % 20001 + 10000))
|
port=$((RANDOM % 20001 + 10000))
|
||||||
|
@ -7610,7 +7649,6 @@ customSingBoxInstall() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${selectCustomInstallType//,/}" =~ ^[0-9]+$ ]]; then
|
if [[ "${selectCustomInstallType//,/}" =~ ^[0-9]+$ ]]; then
|
||||||
# checkBTPanel
|
|
||||||
totalProgress=9
|
totalProgress=9
|
||||||
installTools 1
|
installTools 1
|
||||||
# 申请tls
|
# 申请tls
|
||||||
|
@ -7679,10 +7717,11 @@ customXrayInstall() {
|
||||||
if [[ "${selectCustomInstallType//,/}" =~ ^[0-7]+$ ]]; then
|
if [[ "${selectCustomInstallType//,/}" =~ ^[0-7]+$ ]]; then
|
||||||
unInstallSubscribe
|
unInstallSubscribe
|
||||||
checkBTPanel
|
checkBTPanel
|
||||||
|
check1Panel
|
||||||
totalProgress=12
|
totalProgress=12
|
||||||
installTools 1
|
installTools 1
|
||||||
if [[ -n "${btDomain}" ]]; then
|
if [[ -n "${btDomain}" ]]; then
|
||||||
echoContent skyBlue "\n进度 3/${totalProgress} : 检测到宝塔面板,跳过申请TLS步骤"
|
echoContent skyBlue "\n进度 3/${totalProgress} : 检测到宝塔面板/1Panel,跳过申请TLS步骤"
|
||||||
handleXray stop
|
handleXray stop
|
||||||
customPortFunction
|
customPortFunction
|
||||||
else
|
else
|
||||||
|
@ -7702,7 +7741,7 @@ customXrayInstall() {
|
||||||
randomPathFunction 4
|
randomPathFunction 4
|
||||||
fi
|
fi
|
||||||
if [[ -n "${btDomain}" ]]; then
|
if [[ -n "${btDomain}" ]]; then
|
||||||
echoContent skyBlue "\n进度 6/${totalProgress} : 检测到宝塔面板,跳过伪装网站"
|
echoContent skyBlue "\n进度 6/${totalProgress} : 检测到宝塔面板/1Panel,跳过伪装网站"
|
||||||
else
|
else
|
||||||
nginxBlog 6
|
nginxBlog 6
|
||||||
fi
|
fi
|
||||||
|
@ -7765,11 +7804,12 @@ selectCoreInstall() {
|
||||||
xrayCoreInstall() {
|
xrayCoreInstall() {
|
||||||
unInstallSubscribe
|
unInstallSubscribe
|
||||||
checkBTPanel
|
checkBTPanel
|
||||||
|
check1Panel
|
||||||
selectCustomInstallType=
|
selectCustomInstallType=
|
||||||
totalProgress=12
|
totalProgress=12
|
||||||
installTools 2
|
installTools 2
|
||||||
if [[ -n "${btDomain}" ]]; then
|
if [[ -n "${btDomain}" ]]; then
|
||||||
echoContent skyBlue "\n进度 3/${totalProgress} : 检测到宝塔面板,跳过申请TLS步骤"
|
echoContent skyBlue "\n进度 3/${totalProgress} : 检测到宝塔面板/1Panel,跳过申请TLS步骤"
|
||||||
handleXray stop
|
handleXray stop
|
||||||
customPortFunction
|
customPortFunction
|
||||||
else
|
else
|
||||||
|
@ -7789,7 +7829,7 @@ xrayCoreInstall() {
|
||||||
cleanUp singBoxDel
|
cleanUp singBoxDel
|
||||||
installCronTLS 9
|
installCronTLS 9
|
||||||
if [[ -n "${btDomain}" ]]; then
|
if [[ -n "${btDomain}" ]]; then
|
||||||
echoContent skyBlue "\n进度 11/${totalProgress} : 检测到宝塔面板,跳过伪装网站"
|
echoContent skyBlue "\n进度 11/${totalProgress} : 检测到宝塔面板/1Panel,跳过伪装网站"
|
||||||
else
|
else
|
||||||
nginxBlog 10
|
nginxBlog 10
|
||||||
fi
|
fi
|
||||||
|
@ -7806,7 +7846,8 @@ xrayCoreInstall() {
|
||||||
|
|
||||||
# sing-box 全部安装
|
# sing-box 全部安装
|
||||||
singBoxInstall() {
|
singBoxInstall() {
|
||||||
# checkBTPanel
|
checkBTPanel
|
||||||
|
check1Panel
|
||||||
selectCustomInstallType=
|
selectCustomInstallType=
|
||||||
totalProgress=8
|
totalProgress=8
|
||||||
installTools 2
|
installTools 2
|
||||||
|
@ -7816,11 +7857,17 @@ singBoxInstall() {
|
||||||
# customPortFunction
|
# customPortFunction
|
||||||
# else
|
# else
|
||||||
# 申请tls
|
# 申请tls
|
||||||
initTLSNginxConfig 3
|
|
||||||
handleXray stop
|
if [[ -n "${btDomain}" ]]; then
|
||||||
# handleNginx start
|
echoContent skyBlue "\n进度 3/${totalProgress} : 检测到宝塔面板/1Panel,跳过申请TLS步骤"
|
||||||
installTLS 4
|
handleXray stop
|
||||||
# fi
|
customPortFunction
|
||||||
|
else
|
||||||
|
# 申请tls
|
||||||
|
initTLSNginxConfig 3
|
||||||
|
handleXray stop
|
||||||
|
installTLS 4
|
||||||
|
fi
|
||||||
|
|
||||||
handleNginx stop
|
handleNginx stop
|
||||||
|
|
||||||
|
@ -9106,7 +9153,7 @@ menu() {
|
||||||
cd "$HOME" || exit
|
cd "$HOME" || exit
|
||||||
echoContent red "\n=============================================================="
|
echoContent red "\n=============================================================="
|
||||||
echoContent green "作者:mack-a"
|
echoContent green "作者:mack-a"
|
||||||
echoContent green "当前版本:v3.2.47"
|
echoContent green "当前版本:v3.2.48"
|
||||||
echoContent green "Github:https://github.com/mack-a/v2ray-agent"
|
echoContent green "Github:https://github.com/mack-a/v2ray-agent"
|
||||||
echoContent green "描述:八合一共存脚本\c"
|
echoContent green "描述:八合一共存脚本\c"
|
||||||
showInstallStatus
|
showInstallStatus
|
||||||
|
|
Loading…
Reference in New Issue