feat(脚本): 添加reality

dev
mack-a 2023-03-09 14:03:15 +08:00
parent ebdffda53a
commit e640d5f10c
1 changed files with 222 additions and 78 deletions

View File

@ -234,6 +234,10 @@ initVar() {
# hysteria上行速度 # hysteria上行速度
hysteriaClientUploadSpeed= hysteriaClientUploadSpeed=
# Reality
realityPrivateKey=
realityServerNames=
realityDestDomain=
} }
# 读取tls证书详情 # 读取tls证书详情
@ -322,6 +326,10 @@ readInstallProtocolType() {
if echo "${row}" | grep -q VLESS_gRPC_inbounds; then if echo "${row}" | grep -q VLESS_gRPC_inbounds; then
currentInstallProtocolType=${currentInstallProtocolType}'5' currentInstallProtocolType=${currentInstallProtocolType}'5'
fi fi
if echo "${row}" | grep -q VLESS_reality_inbounds; then
currentInstallProtocolType=${currentInstallProtocolType}'7'
frontingType=02_VLESS_reality_inbounds
fi
done < <(find ${configPath} -name "*inbounds.json" | awk -F "[.]" '{print $1}') done < <(find ${configPath} -name "*inbounds.json" | awk -F "[.]" '{print $1}')
if [[ -n "${hysteriaConfigPath}" ]]; then if [[ -n "${hysteriaConfigPath}" ]]; then
@ -3069,60 +3077,110 @@ EOF
addClients "/etc/v2ray-agent/xray/conf/06_VLESS_gRPC_inbounds.json" "${addClientsStatus}" addClients "/etc/v2ray-agent/xray/conf/06_VLESS_gRPC_inbounds.json" "${addClientsStatus}"
fi fi
# VLESS_TCP # VLESS_TCP/reality
getClients "${configPath}../tmp/02_VLESS_TCP_inbounds.json" "${addClientsStatus}" if echo "${selectCustomInstallType}" | grep -q 7; then
local defaultPort=443 getClients "${configPath}../tmp/02_VLESS_TCP_inbounds.json" "${addClientsStatus}"
if [[ -n "${customPort}" ]]; then local defaultPort=443
defaultPort=${customPort} if [[ -n "${customPort}" ]]; then
fi defaultPort=${customPort}
fi
cat <<EOF >/etc/v2ray-agent/xray/conf/02_VLESS_TCP_inbounds.json cat <<EOF >/etc/v2ray-agent/xray/conf/02_VLESS_reality_inbounds.json
{ {
"inbounds":[ "inbounds": [
{ {
"port": ${defaultPort}, "port": ${defaultPort},
"protocol": "vless", "protocol": "vless",
"tag":"VLESSTCP", "tag": "VLESSReality",
"settings": { "settings": {
"clients": [ "clients": [
{ {
"id": "${uuid}", "id": "${uuid}",
"add":"${add}", "add": "${add}",
"flow":"xtls-rprx-vision", "flow": "xtls-rprx-vision",
"email": "default_VLESS_TCP/TLS_Vision" "email": "default_VLESS_reality_Vision"
} }
], ],
"decryption": "none", "decryption": "none"
"fallbacks": [ },
${fallbacksList} "streamSettings": {
] "network": "tcp",
}, "security": "reality",
"streamSettings": { "realitySettings": {
"network": "tcp", "show": false,
"security": "tls", "dest": "${realityDestDomain}",
"tlsSettings": { "xver": 0,
"minVersion": "1.2", "serverNames": [
"alpn": [ ${realityServerNames}
"http/1.1", ],
"h2" "privateKey": "${realityPrivateKey}",
], "maxTimeDiff": 0,
"certificates": [ "shortIds": [
{ ""
"certificateFile": "/etc/v2ray-agent/tls/${domain}.crt", ]
"keyFile": "/etc/v2ray-agent/tls/${domain}.key",
"ocspStapling": 3600,
"usage":"encipherment"
} }
] }
} }
} ]
}
]
} }
EOF EOF
addClients "/etc/v2ray-agent/xray/conf/02_VLESS_TCP_inbounds.json" "${addClientsStatus}" addClients "/etc/v2ray-agent/xray/conf/02_VLESS_TCP_inbounds.json" "${addClientsStatus}"
} else
getClients "${configPath}../tmp/02_VLESS_TCP_inbounds.json" "${addClientsStatus}"
local defaultPort=443
if [[ -n "${customPort}" ]]; then
defaultPort=${customPort}
fi
cat <<EOF >/etc/v2ray-agent/xray/conf/02_VLESS_TCP_inbounds.json
{
"inbounds":[
{
"port": ${defaultPort},
"protocol": "vless",
"tag":"VLESSTCP",
"settings": {
"clients": [
{
"id": "${uuid}",
"add":"${add}",
"flow":"xtls-rprx-vision",
"email": "default_VLESS_TCP/TLS_Vision"
}
],
"decryption": "none",
"fallbacks": [
${fallbacksList}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"minVersion": "1.2",
"alpn": [
"http/1.1",
"h2"
],
"certificates": [
{
"certificateFile": "/etc/v2ray-agent/tls/${domain}.crt",
"keyFile": "/etc/v2ray-agent/tls/${domain}.key",
"ocspStapling": 3600,
"usage":"encipherment"
}
]
}
}
}
]
}
EOF
addClients "/etc/v2ray-agent/xray/conf/02_VLESS_TCP_inbounds.json" "${addClientsStatus}"
fi
}
# 初始化Xray Reality配置
# 自定义CDN IP # 自定义CDN IP
customCDNIP() { customCDNIP() {
echoContent skyBlue "\n进度 $1/${totalProgress} : 添加cloudflare自选CNAME" echoContent skyBlue "\n进度 $1/${totalProgress} : 添加cloudflare自选CNAME"
@ -5328,6 +5386,7 @@ xrayCoreInstall() {
checkGFWStatue 12 checkGFWStatue 12
showAccounts 13 showAccounts 13
} }
# Hysteria安装 # Hysteria安装
hysteriaCoreInstall() { hysteriaCoreInstall() {
if [[ -z "${coreInstallType}" ]]; then if [[ -z "${coreInstallType}" ]]; then
@ -5483,6 +5542,87 @@ switchAlpn() {
fi fi
reloadCore reloadCore
} }
# 初始化 reality 配置
initXrayRealityConfig() {
echoContent skyBlue "\n进度 $1/${totalProgress} : 初始化 Xray-core reality配置"
echoContent skyBlue "\n ---> 生成 reality privateKey\n"
realityPrivateKey=$(${ctlPath} x25519)
echoContent skyBlue "\n ---> 配置回落的域名\n"
read -r -p "请输入:" realityDestDomain
echoContent skyBlue "\n ---> 配置客户端可用的serverName\n"
echoContent red "\n=============================================================="
echoContent yellow "# 注意事项\n"
echoContent yellow "录入示例:bing.com,www.bing.com\n"
read -r -p "请输入:" realityServerNames
realityServerNames=\"${realityServerNames//,/\",\"}\"
}
# xray-core Reality 安装
xrayCoreRealityInstall() {
totalProgress=13
installTools 2
# 下载核心
installXray 6
# 生成 privateKey、配置回落地址、配置serverNames
initXrayRealityConfig 2
# 初始化配置
initXrayConfig custom 7
# 启动
handleXray start
# 展示账号
cleanUp v2rayClean
selectCustomInstallType=
randomPathFunction 5
# 安装Xray
# handleV2Ray stop
installXrayService 7
customCDNIP 8
initXrayConfig all 9
cleanUp v2rayDel
installCronTLS 10
nginxBlog 11
updateRedirectNginxConf
handleXray stop
sleep 2
handleXray start
handleNginx start
# 生成账号
checkGFWStatue 12
showAccounts 13
}
# reality管理
manageReality() {
echoContent skyBlue "\n进度 1/1 : reality管理"
echoContent red "\n=============================================================="
local hysteriaStatus=
if [[ -n "${hysteriaConfigPath}" ]]; then
echoContent yellow "1.重新安装"
echoContent yellow "2.卸载"
hysteriaStatus=true
else
echoContent yellow "1.安装"
fi
echoContent red "=============================================================="
read -r -p "请选择:" installRealityStatus
if [[ "${installRealityStatus}" == "1" ]]; then
selectCustomInstallType="7"
hysteriaCoreInstall
elif [[ "${installRealityStatus}" == "2" && "${hysteriaStatus}" == "true" ]]; then
unInstallHysteriaCore
elif [[ "${installRealityStatus}" == "3" && "${hysteriaStatus}" == "true" ]]; then
hysteriaVersionManageMenu 1
elif [[ "${installRealityStatus}" == "4" && "${hysteriaStatus}" == "true" ]]; then
journalctl -fu hysteria
fi
}
# hysteria管理 # hysteria管理
manageHysteria() { manageHysteria() {
@ -5568,25 +5708,26 @@ menu() {
fi fi
echoContent yellow "4.Hysteria管理" echoContent yellow "4.Hysteria管理"
echoContent yellow "5.REALITY管理"
echoContent skyBlue "-------------------------工具管理-----------------------------" echoContent skyBlue "-------------------------工具管理-----------------------------"
echoContent yellow "5.账号管理" echoContent yellow "6.账号管理"
echoContent yellow "6.更换伪装站" echoContent yellow "7.更换伪装站"
echoContent yellow "7.更新证书" echoContent yellow "8.更新证书"
echoContent yellow "8.更换CDN节点" echoContent yellow "9.更换CDN节点"
echoContent yellow "9.IPv6分流" echoContent yellow "10.IPv6分流"
echoContent yellow "10.WARP分流" echoContent yellow "11.WARP分流"
echoContent yellow "11.流媒体工具" echoContent yellow "12.流媒体工具"
echoContent yellow "12.添加新端口" echoContent yellow "13.添加新端口"
echoContent yellow "13.BT下载管理" echoContent yellow "14.BT下载管理"
echoContent yellow "14.切换alpn" echoContent yellow "15.切换alpn"
echoContent yellow "15.域名黑名单" echoContent yellow "16.域名黑名单"
echoContent skyBlue "-------------------------版本管理-----------------------------" echoContent skyBlue "-------------------------版本管理-----------------------------"
echoContent yellow "16.core管理" echoContent yellow "17.core管理"
echoContent yellow "17.更新脚本" echoContent yellow "18.更新脚本"
echoContent yellow "18.安装BBR、DD脚本" echoContent yellow "19.安装BBR、DD脚本"
echoContent skyBlue "-------------------------脚本管理-----------------------------" echoContent skyBlue "-------------------------脚本管理-----------------------------"
echoContent yellow "19.查看日志" echoContent yellow "20.查看日志"
echoContent yellow "20.卸载脚本" echoContent yellow "21.卸载脚本"
echoContent red "==============================================================" echoContent red "=============================================================="
mkdirTools mkdirTools
aliasInstall aliasInstall
@ -5605,51 +5746,54 @@ menu() {
manageHysteria manageHysteria
;; ;;
5) 5)
manageAccount 1 manageReality 1
;; ;;
6) 6)
updateNginxBlog 1 manageAccount 1
;; ;;
7) 7)
renewalTLS 1 updateNginxBlog 1
;; ;;
8) 8)
updateV2RayCDN 1 renewalTLS 1
;; ;;
9) 9)
ipv6Routing 1 updateV2RayCDN 1
;; ;;
10) 10)
warpRouting 1 ipv6Routing 1
;; ;;
11) 11)
streamingToolbox 1 warpRouting 1
;; ;;
12) 12)
addCorePort 1 streamingToolbox 1
;; ;;
13) 13)
btTools 1 addCorePort 1
;; ;;
14) 14)
switchAlpn 1 btTools 1
;; ;;
15) 15)
blacklist 1 switchAlpn 1
;; ;;
16) 16)
coreVersionManageMenu 1 blacklist 1
;; ;;
17) 17)
updateV2RayAgent 1 coreVersionManageMenu 1
;; ;;
18) 18)
bbrInstall updateV2RayAgent 1
;; ;;
19) 19)
checkLog 1 bbrInstall
;; ;;
20) 20)
checkLog 1
;;
21)
unInstall 1 unInstall 1
;; ;;
esac esac