feat(脚本): 兼容1panel、sing-box兼容1panel以及宝塔面板

pull/1030/head
mack-a 2024-05-09 17:01:37 +08:00
parent 5877634a00
commit 73e8e99aa1
1 changed files with 81 additions and 34 deletions

View File

@ -570,6 +570,42 @@ checkBTPanel() {
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的顺序
readInstallAlpn() {
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)
if [[ "${dest}" == "31302" || "${dest}" == "31304" ]]; then
checkBTPanel
check1Panel
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}')
elif grep -q "grpc {" <${nginxConfigPath}alone.conf; then
@ -1239,10 +1276,11 @@ checkPortOpen() {
local domain=$2
local checkPortOpenResult=
allowPort "${port}"
if [[ -z "${btDomain}" ]]; then
# 初始化nginx配置
touch ${nginxConfigPath}checkPortOpen.conf
cat <<EOF >${nginxConfigPath}checkPortOpen.conf
# 初始化nginx配置
touch ${nginxConfigPath}checkPortOpen.conf
cat <<EOF >${nginxConfigPath}checkPortOpen.conf
server {
listen ${port};
listen [::]:${port};
@ -1260,29 +1298,30 @@ server {
}
}
EOF
handleNginx start
# 检查域名+端口的开放
checkPortOpenResult=$(curl -s -m 10 "http://${domain}:${port}/checkPort")
localIP=$(curl -s -m 10 "http://${domain}:${port}/ip")
rm "${nginxConfigPath}checkPortOpen.conf"
handleNginx stop
if [[ "${checkPortOpenResult}" == "fjkvymb6len" ]]; then
echoContent green " ---> 检测到${port}端口已开放"
else
echoContent green " ---> 未检测到${port}端口开放,退出安装"
if echo "${checkPortOpenResult}" | grep -q "cloudflare"; then
echoContent yellow " ---> 请关闭云朵后等待三分钟重新尝试"
handleNginx start
# 检查域名+端口的开放
checkPortOpenResult=$(curl -s -m 10 "http://${domain}:${port}/checkPort")
localIP=$(curl -s -m 10 "http://${domain}:${port}/ip")
rm "${nginxConfigPath}checkPortOpen.conf"
handleNginx stop
if [[ "${checkPortOpenResult}" == "fjkvymb6len" ]]; then
echoContent green " ---> 检测到${port}端口已开放"
else
if [[ -z "${checkPortOpenResult}" ]]; then
echoContent red " ---> 请检查是否有网页防火墙比如Oracle等云服务商"
echoContent red " ---> 检查是否自己安装过nginx并且有配置冲突可以尝试DD纯净系统后重新尝试"
echoContent green " ---> 未检测到${port}端口开放,退出安装"
if echo "${checkPortOpenResult}" | grep -q "cloudflare"; then
echoContent yellow " ---> 请关闭云朵后等待三分钟重新尝试"
else
echoContent red " ---> 错误日志:${checkPortOpenResult}请将此错误日志通过issues提交反馈"
if [[ -z "${checkPortOpenResult}" ]]; then
echoContent red " ---> 请检查是否有网页防火墙比如Oracle等云服务商"
echoContent red " ---> 检查是否自己安装过nginx并且有配置冲突可以尝试DD纯净系统后重新尝试"
else
echoContent red " ---> 错误日志:${checkPortOpenResult}请将此错误日志通过issues提交反馈"
fi
fi
exit 0
fi
exit 0
checkIP "${localIP}"
fi
checkIP "${localIP}"
}
# 初始化Nginx申请证书配置
@ -1689,7 +1728,7 @@ customPortFunction() {
echo
if [[ -n "${btDomain}" ]]; then
echoContent yellow "请输入端口[不可与BT Panel端口相同,回车随机]"
echoContent yellow "请输入端口[不可与BT Panel/1Panel端口相同,回车随机]"
read -r -p "端口:" port
if [[ -z "${port}" ]]; then
port=$((RANDOM % 20001 + 10000))
@ -7610,7 +7649,6 @@ customSingBoxInstall() {
fi
if [[ "${selectCustomInstallType//,/}" =~ ^[0-9]+$ ]]; then
# checkBTPanel
totalProgress=9
installTools 1
# 申请tls
@ -7679,10 +7717,11 @@ customXrayInstall() {
if [[ "${selectCustomInstallType//,/}" =~ ^[0-7]+$ ]]; then
unInstallSubscribe
checkBTPanel
check1Panel
totalProgress=12
installTools 1
if [[ -n "${btDomain}" ]]; then
echoContent skyBlue "\n进度 3/${totalProgress} : 检测到宝塔面板跳过申请TLS步骤"
echoContent skyBlue "\n进度 3/${totalProgress} : 检测到宝塔面板/1Panel跳过申请TLS步骤"
handleXray stop
customPortFunction
else
@ -7702,7 +7741,7 @@ customXrayInstall() {
randomPathFunction 4
fi
if [[ -n "${btDomain}" ]]; then
echoContent skyBlue "\n进度 6/${totalProgress} : 检测到宝塔面板,跳过伪装网站"
echoContent skyBlue "\n进度 6/${totalProgress} : 检测到宝塔面板/1Panel,跳过伪装网站"
else
nginxBlog 6
fi
@ -7765,11 +7804,12 @@ selectCoreInstall() {
xrayCoreInstall() {
unInstallSubscribe
checkBTPanel
check1Panel
selectCustomInstallType=
totalProgress=12
installTools 2
if [[ -n "${btDomain}" ]]; then
echoContent skyBlue "\n进度 3/${totalProgress} : 检测到宝塔面板跳过申请TLS步骤"
echoContent skyBlue "\n进度 3/${totalProgress} : 检测到宝塔面板/1Panel跳过申请TLS步骤"
handleXray stop
customPortFunction
else
@ -7789,7 +7829,7 @@ xrayCoreInstall() {
cleanUp singBoxDel
installCronTLS 9
if [[ -n "${btDomain}" ]]; then
echoContent skyBlue "\n进度 11/${totalProgress} : 检测到宝塔面板,跳过伪装网站"
echoContent skyBlue "\n进度 11/${totalProgress} : 检测到宝塔面板/1Panel,跳过伪装网站"
else
nginxBlog 10
fi
@ -7806,7 +7846,8 @@ xrayCoreInstall() {
# sing-box 全部安装
singBoxInstall() {
# checkBTPanel
checkBTPanel
check1Panel
selectCustomInstallType=
totalProgress=8
installTools 2
@ -7816,11 +7857,17 @@ singBoxInstall() {
# customPortFunction
# else
# 申请tls
initTLSNginxConfig 3
handleXray stop
# handleNginx start
installTLS 4
# fi
if [[ -n "${btDomain}" ]]; then
echoContent skyBlue "\n进度 3/${totalProgress} : 检测到宝塔面板/1Panel跳过申请TLS步骤"
handleXray stop
customPortFunction
else
# 申请tls
initTLSNginxConfig 3
handleXray stop
installTLS 4
fi
handleNginx stop
@ -9106,7 +9153,7 @@ menu() {
cd "$HOME" || exit
echoContent red "\n=============================================================="
echoContent green "作者mack-a"
echoContent green "当前版本v3.2.47"
echoContent green "当前版本v3.2.48"
echoContent green "Githubhttps://github.com/mack-a/v2ray-agent"
echoContent green "描述:八合一共存脚本\c"
showInstallStatus