feat(脚本): 重构README、单独安装5时不再安装nginx、acme.sh 、添加utls、修改全部安装后个性化安装协议没有删除的问题、修改定时脚本日志错误的问题

pull/656/head
mack-a 2023-04-26 14:59:30 +08:00
parent 13c65c9b70
commit c78f1dc2d6
3 changed files with 130 additions and 83 deletions

View File

@ -1,36 +1,30 @@
# v2ray-agent # v2ray-agent
> [感谢 JetBrains 提供的非商业开源软件开发授权](https://www.jetbrains.com/?from=v2ray-agent) - [感谢 JetBrains 提供的非商业开源软件开发授权](https://www.jetbrains.com/?from=v2ray-agent)
- [Thanks for non-commercial open source development authorization by JetBrains](https://www.jetbrains.com/?from=v2ray-agent)
> [Thanks for non-commercial open source development authorization by JetBrains](https://www.jetbrains.com/?from=v2ray-agent) - [English Version](https://github.com/mack-a/v2ray-agent/blob/master/documents/en/README_EN.md)
> [English Version](https://github.com/mack-a/v2ray-agent/blob/master/documents/en/README_EN.md)
- [官方网站](https://www.v2ray-agent.com/)、[Telegram群](https://t.me/technologyshare)、[Telegram Channel](https://t.me/v2rayAgentChannel)
- [VPS选购指南](https://www.v2ray-agent.com/archives/1679975663984) - [VPS选购指南](https://www.v2ray-agent.com/archives/1679975663984)
- [ChatGPT解锁](https://www.v2ray-agent.com/archives/olinkshen-du-ce-ping) - [ChatGPT解锁](https://www.v2ray-agent.com/archives/olinkshen-du-ce-ping)
- **请给个⭐支持一下** - **请给个⭐支持一下**
<details><summary>项目介绍</summary>
<br/>
# 项目介绍
- Xray-core/v2ray-core一键安装脚本 - Xray-core/v2ray-core一键安装脚本
- 支持多种传输协议包括VLESS、VMess、Trojan和Hysteria支持多种协议组合。 - 支持多种传输协议包括VLESS、VMess、Trojan和Hysteria支持多种协议组合。
- 支持自动申请和更新SSL证书并且提供了一个伪装站点。详情请查看[官方网站](https://www.v2ray-agent.com/archives/1679931532764) - 支持自动申请和更新SSL证书并且提供了一个伪装站点。详情请查看[官方网站](https://www.v2ray-agent.com/archives/1679931532764)
- [支持无需域名的VLESS Reality特性](https://www.v2ray-agent.com/archives/1680104902581) - [支持无需域名的VLESS Reality特性](https://www.v2ray-agent.com/archives/1680104902581)
- [脚本使用教程推荐](https://www.v2ray-agent.com/categories/jiao-cheng) - [脚本使用教程推荐](https://www.v2ray-agent.com/categories/jiao-cheng)
- [Reality教程和介绍【推荐阅读】](https://www.v2ray-agent.com/archives/1680104902581) - [Reality教程和介绍【推荐阅读】](https://www.v2ray-agent.com/archives/1680104902581)
</details>
# 线路推荐
- [CN2 GIA](https://www.v2ray-agent.com/categories/vps) <details><summary>快速开始</summary>
- [AS9929](https://www.v2ray-agent.com/categories/vps) <br/>
- [AS4837](https://www.v2ray-agent.com/categories/vps)
- [日本软银](https://www.v2ray-agent.com/categories/vps)
- [CMI](https://www.v2ray-agent.com/categories/vps)
# 安装脚本 ## 1.安装脚本
- 支持快捷方式启动安装完毕后shell输入【**vasma**】即可打开脚本,脚本执行路径[**/etc/v2ray-agent/install.sh**] - 支持快捷方式启动安装完毕后shell输入【**vasma**】即可打开脚本,脚本执行路径[**/etc/v2ray-agent/install.sh**]
@ -44,29 +38,56 @@ wget -P /root -N --no-check-certificate "https://raw.githubusercontent.com/mack-
``` ```
wget -P /root -N --no-check-certificate "https://www.v2ray-agent.com/v2ray-agent/install.sh" && chmod 700 /root/install.sh && /root/install.sh wget -P /root -N --no-check-certificate "https://www.v2ray-agent.com/v2ray-agent/install.sh" && chmod 700 /root/install.sh && /root/install.sh
``` ```
## 2.一图版教程
# 反馈和建议
- 如果您在使用过程中遇到任何问题或者有任何建议,欢迎在这里提交[issue](https://github.com/mack-a/v2ray-agent/issues),或者[加入](https://t.me/technologyshare)这个电报群进行交流。
# 捐赠
[您可以使用我的AFF进行购买VPS捐赠-官网](https://www.v2ray-agent.com/categories/vps)
[您可以使用我的AFF进行购买VPS捐赠-Github](https://github.com/mack-a/v2ray-agent/blob/master/documents/donation_aff.md)
[支持通过虚拟币向我捐赠](https://www.v2ray-agent.com/1679123834836)
# 示例图
<img src="https://raw.githubusercontent.com/mack-a/v2ray-agent/master/fodder/install/install.jpg" width=700> <img src="https://raw.githubusercontent.com/mack-a/v2ray-agent/master/fodder/install/install.jpg" width=700>
# 许可证 </details>
<details><summary>VPS线路推荐</summary>
<br/>
> 推荐使用以下VPS线路您将享受到更优质的使用体验。即使再好的协议也比不上一个高品质的VPS。因此推荐以下VPS线路
- [CN2 GIA](https://www.v2ray-agent.com/categories/vps)
- [AS9929](https://www.v2ray-agent.com/categories/vps)
- [AS4837](https://www.v2ray-agent.com/categories/vps)
- [日本软银](https://www.v2ray-agent.com/categories/vps)
- [CMI](https://www.v2ray-agent.com/categories/vps)
</details>
<details><summary>反馈和建议</summary>
<br/>
- 如果您在使用过程中遇到任何问题或者有任何建议,欢迎在这里提交[issue](https://github.com/mack-a/v2ray-agent/issues),或者[加入](https://t.me/technologyshare)这个电报群进行交流。
</details>
<details><summary>联系我</summary>
<br/>
- [官方网站](https://www.v2ray-agent.com/)、[Telegram群](https://t.me/technologyshare)、[Telegram Channel](https://t.me/v2rayAgentChannel)
</details>
<details><summary>捐赠</summary>
<br/>
- 感谢您对开源项目的关注和支持。一直在努力开发和完善这个项目。如果您觉得这个项目对您有帮助,欢迎通过以下方式进行捐赠。
[购买VPS捐赠](https://www.v2ray-agent.com/categories/vps)
[通过虚拟币向我捐赠](https://www.v2ray-agent.com/1679123834836)
</details>
<details><summary>许可证</summary>
<br/>
[AGPL-3.0](https://github.com/mack-a/v2ray-agent/blob/master/LICENSE) [AGPL-3.0](https://github.com/mack-a/v2ray-agent/blob/master/LICENSE)
</details>
## Stargazers over time ## Stargazers over time
[![Stargazers over time](https://starchart.cc/mack-a/v2ray-agent.svg)](https://starchart.cc/mack-a/v2ray-agent) [![Stargazers over time](https://starchart.cc/mack-a/v2ray-agent.svg)](https://starchart.cc/mack-a/v2ray-agent)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@ -801,25 +801,29 @@ installTools() {
fi fi
# 检测nginx版本并提供是否卸载的选项 # 检测nginx版本并提供是否卸载的选项
if [[ "${selectCustomInstallType}" == "7" ]]; then
if ! find /usr/bin /usr/sbin | grep -q -w nginx; then echoContent green " ---> 检测到无需依赖Nginx的服务跳过安装"
echoContent green " ---> 安装nginx"
installNginxTools
else else
nginxVersion=$(nginx -v 2>&1) if ! find /usr/bin /usr/sbin | grep -q -w nginx; then
nginxVersion=$(echo "${nginxVersion}" | awk -F "[n][g][i][n][x][/]" '{print $2}' | awk -F "[.]" '{print $2}') echoContent green " ---> 安装nginx"
if [[ ${nginxVersion} -lt 14 ]]; then installNginxTools
read -r -p "读取到当前的Nginx版本不支持gRPC会导致安装失败是否卸载Nginx后重新安装 [y/n]:" unInstallNginxStatus else
if [[ "${unInstallNginxStatus}" == "y" ]]; then nginxVersion=$(nginx -v 2>&1)
${removeType} nginx >/dev/null 2>&1 nginxVersion=$(echo "${nginxVersion}" | awk -F "[n][g][i][n][x][/]" '{print $2}' | awk -F "[.]" '{print $2}')
echoContent yellow " ---> nginx卸载完成" if [[ ${nginxVersion} -lt 14 ]]; then
echoContent green " ---> 安装nginx" read -r -p "读取到当前的Nginx版本不支持gRPC会导致安装失败是否卸载Nginx后重新安装 [y/n]:" unInstallNginxStatus
installNginxTools >/dev/null 2>&1 if [[ "${unInstallNginxStatus}" == "y" ]]; then
else ${removeType} nginx >/dev/null 2>&1
exit 0 echoContent yellow " ---> nginx卸载完成"
echoContent green " ---> 安装nginx"
installNginxTools >/dev/null 2>&1
else
exit 0
fi
fi fi
fi fi
fi fi
if ! find /usr/bin /usr/sbin | grep -q -w semanage; then if ! find /usr/bin /usr/sbin | grep -q -w semanage; then
echoContent green " ---> 安装semanage" echoContent green " ---> 安装semanage"
${installType} bash-completion >/dev/null 2>&1 ${installType} bash-completion >/dev/null 2>&1
@ -838,22 +842,26 @@ installTools() {
fi fi
fi fi
if [[ "${selectCustomInstallType}" == "7" ]]; then
echoContent green " ---> 检测到无需依赖证书的服务,跳过安装"
else
if [[ ! -d "$HOME/.acme.sh" ]] || [[ -d "$HOME/.acme.sh" && -z $(find "$HOME/.acme.sh/acme.sh") ]]; then
echoContent green " ---> 安装acme.sh"
curl -s https://get.acme.sh | sh >/etc/v2ray-agent/tls/acme.log 2>&1
if [[ ! -d "$HOME/.acme.sh" ]] || [[ -d "$HOME/.acme.sh" && -z $(find "$HOME/.acme.sh/acme.sh") ]]; then if [[ ! -d "$HOME/.acme.sh" ]] || [[ -z $(find "$HOME/.acme.sh/acme.sh") ]]; then
echoContent green " ---> 安装acme.sh" echoContent red " acme安装失败--->"
curl -s https://get.acme.sh | sh >/etc/v2ray-agent/tls/acme.log 2>&1 tail -n 100 /etc/v2ray-agent/tls/acme.log
echoContent yellow "错误排查:"
if [[ ! -d "$HOME/.acme.sh" ]] || [[ -z $(find "$HOME/.acme.sh/acme.sh") ]]; then echoContent red " 1.获取Github文件失败请等待Github恢复后尝试恢复进度可查看 [https://www.githubstatus.com/]"
echoContent red " acme安装失败--->" echoContent red " 2.acme.sh脚本出现bug可查看[https://github.com/acmesh-official/acme.sh] issues"
tail -n 100 /etc/v2ray-agent/tls/acme.log echoContent red " 3.如纯IPv6机器请设置NAT64,可执行下方命令"
echoContent yellow "错误排查:" echoContent skyBlue " echo -e \"nameserver 2001:67c:2b0::4\\\nnameserver 2001:67c:2b0::6\" >> /etc/resolv.conf"
echoContent red " 1.获取Github文件失败请等待Github恢复后尝试恢复进度可查看 [https://www.githubstatus.com/]" exit 0
echoContent red " 2.acme.sh脚本出现bug可查看[https://github.com/acmesh-official/acme.sh] issues" fi
echoContent red " 3.如纯IPv6机器请设置NAT64,可执行下方命令"
echoContent skyBlue " echo -e \"nameserver 2001:67c:2b0::4\\\nnameserver 2001:67c:2b0::6\" >> /etc/resolv.conf"
exit 0
fi fi
fi fi
} }
# 安装Nginx # 安装Nginx
@ -3161,6 +3169,8 @@ EOF
] ]
} }
EOF EOF
else
rm /etc/v2ray-agent/xray/conf/04_trojan_TCP_inbounds.json >/dev/null 2>&1
fi fi
# VLESS_WS_TLS # VLESS_WS_TLS
@ -3190,6 +3200,8 @@ EOF
] ]
} }
EOF EOF
else
rm /etc/v2ray-agent/xray/conf/03_VLESS_WS_inbounds.json >/dev/null 2>&1
fi fi
# trojan_grpc # trojan_grpc
@ -3223,6 +3235,8 @@ EOF
] ]
} }
EOF EOF
else
rm /etc/v2ray-agent/xray/conf/04_trojan_gRPC_inbounds.json >/dev/null 2>&1
fi fi
# VMess_WS # VMess_WS
@ -3251,6 +3265,8 @@ EOF
] ]
} }
EOF EOF
else
rm /etc/v2ray-agent/xray/conf/05_VMess_WS_inbounds.json >/dev/null 2>&1
fi fi
if echo "${selectCustomInstallType}" | grep -q 5 || [[ "$1" == "all" ]]; then if echo "${selectCustomInstallType}" | grep -q 5 || [[ "$1" == "all" ]]; then
@ -3276,6 +3292,8 @@ EOF
] ]
} }
EOF EOF
else
rm /etc/v2ray-agent/xray/conf/06_VLESS_gRPC_inbounds.json >/dev/null 2>&1
fi fi
# VLESS Vision # VLESS Vision
if echo "${selectCustomInstallType}" | grep -q 0 || [[ "$1" == "all" ]]; then if echo "${selectCustomInstallType}" | grep -q 0 || [[ "$1" == "all" ]]; then
@ -3317,6 +3335,8 @@ EOF
] ]
} }
EOF EOF
else
rm /etc/v2ray-agent/xray/conf/02_VLESS_TCP_inbounds.json >/dev/null 2>&1
fi fi
# VLESS_TCP/reality # VLESS_TCP/reality
@ -3394,6 +3414,9 @@ EOF
} }
EOF EOF
else
rm /etc/v2ray-agent/xray/conf/07_VLESS_vision_reality_inbounds.json >/dev/null 2>&1
rm /etc/v2ray-agent/xray/conf/08_VLESS_reality_fallback_grpc_inbounds.json >/dev/null 2>&1
fi fi
} }
# 初始化Xray Reality配置 # 初始化Xray Reality配置
@ -3440,12 +3463,12 @@ defaultBase64Code() {
if [[ "${coreInstallType}" == "1" ]] && echo "${currentInstallProtocolType}" | grep -q 0; then if [[ "${coreInstallType}" == "1" ]] && echo "${currentInstallProtocolType}" | grep -q 0; then
echoContent yellow " ---> 通用格式(VLESS+TCP+TLS_Vision)" echoContent yellow " ---> 通用格式(VLESS+TCP+TLS_Vision)"
echoContent green " vless://${id}@${currentHost}:${currentDefaultPort}?encryption=none&security=tls&type=tcp&host=${currentHost}&headerType=none&sni=${currentHost}&flow=xtls-rprx-vision#${email}\n" echoContent green " vless://${id}@${currentHost}:${currentDefaultPort}?encryption=none&security=tls&fp=chrome&type=tcp&host=${currentHost}&headerType=none&sni=${currentHost}&flow=xtls-rprx-vision#${email}\n"
echoContent yellow " ---> 格式化明文(VLESS+TCP+TLS_Vision)" echoContent yellow " ---> 格式化明文(VLESS+TCP+TLS_Vision)"
echoContent green "协议类型:VLESS地址:${currentHost},端口:${currentDefaultPort}用户ID:${id},安全:tls传输方式:tcpflow:xtls-rprx-vision账户名:${email}\n" echoContent green "协议类型:VLESS地址:${currentHost},端口:${currentDefaultPort}用户ID:${id},安全:tlsclient-fingerprint: chrome传输方式:tcpflow:xtls-rprx-vision账户名:${email}\n"
cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}" cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}"
vless://${id}@${currentHost}:${currentDefaultPort}?encryption=none&security=tls&type=tcp&host=${currentHost}&headerType=none&sni=${currentHost}&flow=xtls-rprx-vision#${email} vless://${id}@${currentHost}:${currentDefaultPort}?encryption=none&security=tls&type=tcp&host=${currentHost}&fp=chrome&headerType=none&sni=${currentHost}&flow=xtls-rprx-vision#${email}
EOF EOF
cat <<EOF >>"/etc/v2ray-agent/subscribe_local/clashMeta/${user}" cat <<EOF >>"/etc/v2ray-agent/subscribe_local/clashMeta/${user}"
- name: "${email}" - name: "${email}"
@ -3460,19 +3483,19 @@ EOF
client-fingerprint: chrome client-fingerprint: chrome
EOF EOF
echoContent yellow " ---> 二维码 VLESS(VLESS+TCP+TLS_Vision)" echoContent yellow " ---> 二维码 VLESS(VLESS+TCP+TLS_Vision)"
echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=vless%3A%2F%2F${id}%40${currentHost}%3A${currentDefaultPort}%3Fencryption%3Dnone%26security%3Dtls%26type%3Dtcp%26${currentHost}%3D${currentHost}%26headerType%3Dnone%26sni%3D${currentHost}%26flow%3Dxtls-rprx-vision%23${email}\n" echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=vless%3A%2F%2F${id}%40${currentHost}%3A${currentDefaultPort}%3Fencryption%3Dnone%26fp%3Dchrome%26security%3Dtls%26type%3Dtcp%26${currentHost}%3D${currentHost}%26headerType%3Dnone%26sni%3D${currentHost}%26flow%3Dxtls-rprx-vision%23${email}\n"
elif [[ "${coreInstallType}" == 2 ]]; then elif [[ "${coreInstallType}" == 2 ]]; then
echoContent yellow " ---> 通用格式(VLESS+TCP+TLS)" echoContent yellow " ---> 通用格式(VLESS+TCP+TLS)"
echoContent green " vless://${id}@${currentHost}:${currentDefaultPort}?security=tls&encryption=none&host=${currentHost}&headerType=none&type=tcp#${email}\n" echoContent green " vless://${id}@${currentHost}:${currentDefaultPort}?security=tls&encryption=none&host=${currentHost}&fp=chrome&headerType=none&type=tcp#${email}\n"
echoContent yellow " ---> 格式化明文(VLESS+TCP+TLS)" echoContent yellow " ---> 格式化明文(VLESS+TCP+TLS)"
echoContent green " 协议类型:VLESS地址:${currentHost},端口:${currentDefaultPort}用户ID:${id},安全:tls传输方式:tcp账户名:${email}\n" echoContent green " 协议类型:VLESS地址:${currentHost},端口:${currentDefaultPort}用户ID:${id},安全:tlsclient-fingerprint: chrome,传输方式:tcp账户名:${email}\n"
cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}" cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}"
vless://${id}@${currentHost}:${currentDefaultPort}?security=tls&encryption=none&host=${currentHost}&headerType=none&type=tcp#${email} vless://${id}@${currentHost}:${currentDefaultPort}?security=tls&encryption=none&host=${currentHost}&fp=chrome&headerType=none&type=tcp#${email}
EOF EOF
echoContent yellow " ---> 二维码 VLESS(VLESS+TCP+TLS)" echoContent yellow " ---> 二维码 VLESS(VLESS+TCP+TLS)"
echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=vless%3a%2f%2f${id}%40${currentHost}%3a${currentDefaultPort}%3fsecurity%3dtls%26encryption%3dnone%26host%3d${currentHost}%26headerType%3dnone%26type%3dtcp%23${email}\n" echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=vless%3a%2f%2f${id}%40${currentHost}%3a${currentDefaultPort}%3fsecurity%3dtls%26encryption%3dnone%26fp%3Dchrome%26host%3d${currentHost}%26headerType%3dnone%26type%3dtcp%23${email}\n"
fi fi
elif [[ "${type}" == "trojanTCPXTLS" ]]; then elif [[ "${type}" == "trojanTCPXTLS" ]]; then
@ -3523,13 +3546,13 @@ EOF
elif [[ "${type}" == "vlessws" ]]; then elif [[ "${type}" == "vlessws" ]]; then
echoContent yellow " ---> 通用格式(VLESS+WS+TLS)" echoContent yellow " ---> 通用格式(VLESS+WS+TLS)"
echoContent green " vless://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&security=tls&type=ws&host=${currentHost}&sni=${currentHost}&path=/${currentPath}ws#${email}\n" echoContent green " vless://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&security=tls&type=ws&host=${currentHost}&sni=${currentHost}&fp=chrome&path=/${currentPath}ws#${email}\n"
echoContent yellow " ---> 格式化明文(VLESS+WS+TLS)" echoContent yellow " ---> 格式化明文(VLESS+WS+TLS)"
echoContent green " 协议类型:VLESS地址:${currentAdd},伪装域名/SNI:${currentHost},端口:${currentDefaultPort}用户ID:${id},安全:tls传输方式:ws路径:/${currentPath}ws账户名:${email}\n" echoContent green " 协议类型:VLESS地址:${currentAdd},伪装域名/SNI:${currentHost},端口:${currentDefaultPort}client-fingerprint: chrome,用户ID:${id},安全:tls传输方式:ws路径:/${currentPath}ws账户名:${email}\n"
cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}" cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}"
vless://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&security=tls&type=ws&host=${currentHost}&sni=${currentHost}&path=/${currentPath}ws#${email} vless://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&security=tls&type=ws&host=${currentHost}&sni=${currentHost}&fp=chrome&path=/${currentPath}ws#${email}
EOF EOF
cat <<EOF >>"/etc/v2ray-agent/subscribe_local/clashMeta/${user}" cat <<EOF >>"/etc/v2ray-agent/subscribe_local/clashMeta/${user}"
- name: "${email}" - name: "${email}"
@ -3549,29 +3572,29 @@ EOF
EOF EOF
echoContent yellow " ---> 二维码 VLESS(VLESS+WS+TLS)" echoContent yellow " ---> 二维码 VLESS(VLESS+WS+TLS)"
echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=vless%3A%2F%2F${id}%40${currentAdd}%3A${currentDefaultPort}%3Fencryption%3Dnone%26security%3Dtls%26type%3Dws%26host%3D${currentHost}%26sni%3D${currentHost}%26path%3D%252f${currentPath}ws%23${email}" echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=vless%3A%2F%2F${id}%40${currentAdd}%3A${currentDefaultPort}%3Fencryption%3Dnone%26security%3Dtls%26type%3Dws%26host%3D${currentHost}%26fp%3Dchrome%26sni%3D${currentHost}%26path%3D%252f${currentPath}ws%23${email}"
elif [[ "${type}" == "vlessgrpc" ]]; then elif [[ "${type}" == "vlessgrpc" ]]; then
echoContent yellow " ---> 通用格式(VLESS+gRPC+TLS)" echoContent yellow " ---> 通用格式(VLESS+gRPC+TLS)"
echoContent green " vless://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&security=tls&type=grpc&host=${currentHost}&path=${currentPath}grpc&serviceName=${currentPath}grpc&alpn=h2&sni=${currentHost}#${email}\n" echoContent green " vless://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&security=tls&type=grpc&host=${currentHost}&path=${currentPath}grpc&fp=chrome&serviceName=${currentPath}grpc&alpn=h2&sni=${currentHost}#${email}\n"
echoContent yellow " ---> 格式化明文(VLESS+gRPC+TLS)" echoContent yellow " ---> 格式化明文(VLESS+gRPC+TLS)"
echoContent green " 协议类型:VLESS地址:${currentAdd},伪装域名/SNI:${currentHost},端口:${currentDefaultPort}用户ID:${id},安全:tls传输方式:gRPCalpn:h2serviceName:${currentPath}grpc账户名:${email}\n" echoContent green " 协议类型:VLESS地址:${currentAdd},伪装域名/SNI:${currentHost},端口:${currentDefaultPort}用户ID:${id},安全:tls传输方式:gRPCalpn:h2client-fingerprint: chrome,serviceName:${currentPath}grpc账户名:${email}\n"
cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}" cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}"
vless://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&security=tls&type=grpc&host=${currentHost}&path=${currentPath}grpc&serviceName=${currentPath}grpc&alpn=h2&sni=${currentHost}#${email} vless://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&security=tls&type=grpc&host=${currentHost}&path=${currentPath}grpc&serviceName=${currentPath}grpc&fp=chrome&alpn=h2&sni=${currentHost}#${email}
EOF EOF
echoContent yellow " ---> 二维码 VLESS(VLESS+gRPC+TLS)" echoContent yellow " ---> 二维码 VLESS(VLESS+gRPC+TLS)"
echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=vless%3A%2F%2F${id}%40${currentAdd}%3A${currentDefaultPort}%3Fencryption%3Dnone%26security%3Dtls%26type%3Dgrpc%26host%3D${currentHost}%26serviceName%3D${currentPath}grpc%26path%3D${currentPath}grpc%26sni%3D${currentHost}%26alpn%3Dh2%23${email}" echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=vless%3A%2F%2F${id}%40${currentAdd}%3A${currentDefaultPort}%3Fencryption%3Dnone%26security%3Dtls%26type%3Dgrpc%26host%3D${currentHost}%26serviceName%3D${currentPath}grpc%26fp%3Dchrome%26path%3D${currentPath}grpc%26sni%3D${currentHost}%26alpn%3Dh2%23${email}"
elif [[ "${type}" == "trojan" ]]; then elif [[ "${type}" == "trojan" ]]; then
# URLEncode # URLEncode
echoContent yellow " ---> Trojan(TLS)" echoContent yellow " ---> Trojan(TLS)"
echoContent green " trojan://${id}@${currentHost}:${currentDefaultPort}?peer=${currentHost}&sni=${currentHost}&alpn=http/1.1#${currentHost}_Trojan\n" echoContent green " trojan://${id}@${currentHost}:${currentDefaultPort}?peer=${currentHost}&fp=chrome&sni=${currentHost}&alpn=http/1.1#${currentHost}_Trojan\n"
cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}" cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}"
trojan://${id}@${currentHost}:${currentDefaultPort}?peer=${currentHost}&sni=${currentHost}&alpn=http/1.1#${email}_Trojan trojan://${id}@${currentHost}:${currentDefaultPort}?peer=${currentHost}&fp=chrome&sni=${currentHost}&alpn=http/1.1#${email}_Trojan
EOF EOF
cat <<EOF >>"/etc/v2ray-agent/subscribe_local/clashMeta/${user}" cat <<EOF >>"/etc/v2ray-agent/subscribe_local/clashMeta/${user}"
@ -3585,15 +3608,15 @@ EOF
sni: ${currentHost} sni: ${currentHost}
EOF EOF
echoContent yellow " ---> 二维码 Trojan(TLS)" echoContent yellow " ---> 二维码 Trojan(TLS)"
echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=trojan%3a%2f%2f${id}%40${currentHost}%3a${port}%3fpeer%3d${currentHost}%26sni%3d${currentHost}%26alpn%3Dhttp/1.1%23${email}\n" echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=trojan%3a%2f%2f${id}%40${currentHost}%3a${port}%3fpeer%3d${currentHost}%26fp%3Dchrome%26sni%3d${currentHost}%26alpn%3Dhttp/1.1%23${email}\n"
elif [[ "${type}" == "trojangrpc" ]]; then elif [[ "${type}" == "trojangrpc" ]]; then
# URLEncode # URLEncode
echoContent yellow " ---> Trojan gRPC(TLS)" echoContent yellow " ---> Trojan gRPC(TLS)"
echoContent green " trojan://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&peer=${currentHost}&security=tls&type=grpc&sni=${currentHost}&alpn=h2&path=${currentPath}trojangrpc&serviceName=${currentPath}trojangrpc#${email}\n" echoContent green " trojan://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&peer=${currentHost}&fp=chrome&security=tls&type=grpc&sni=${currentHost}&alpn=h2&path=${currentPath}trojangrpc&serviceName=${currentPath}trojangrpc#${email}\n"
cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}" cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}"
trojan://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&peer=${currentHost}&security=tls&type=grpc&sni=${currentHost}&alpn=h2&path=${currentPath}trojangrpc&serviceName=${currentPath}trojangrpc#${email} trojan://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&peer=${currentHost}&security=tls&type=grpc&fp=chrome&sni=${currentHost}&alpn=h2&path=${currentPath}trojangrpc&serviceName=${currentPath}trojangrpc#${email}
EOF EOF
cat <<EOF >>"/etc/v2ray-agent/subscribe_local/clashMeta/${user}" cat <<EOF >>"/etc/v2ray-agent/subscribe_local/clashMeta/${user}"
- name: "${email}" - name: "${email}"
@ -3608,7 +3631,7 @@ EOF
grpc-service-name: "${currentPath}trojangrpc" grpc-service-name: "${currentPath}trojangrpc"
EOF EOF
echoContent yellow " ---> 二维码 Trojan gRPC(TLS)" echoContent yellow " ---> 二维码 Trojan gRPC(TLS)"
echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=trojan%3a%2f%2f${id}%40${currentAdd}%3a${currentDefaultPort}%3Fencryption%3Dnone%26security%3Dtls%26peer%3d${currentHost}%26type%3Dgrpc%26sni%3d${currentHost}%26path%3D${currentPath}trojangrpc%26alpn%3Dh2%26serviceName%3D${currentPath}trojangrpc%23${email}\n" echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=trojan%3a%2f%2f${id}%40${currentAdd}%3a${currentDefaultPort}%3Fencryption%3Dnone%26fp%3Dchrome%26security%3Dtls%26peer%3d${currentHost}%26type%3Dgrpc%26sni%3d${currentHost}%26path%3D${currentPath}trojangrpc%26alpn%3Dh2%26serviceName%3D${currentPath}trojangrpc%23${email}\n"
elif [[ "${type}" == "hysteria" ]]; then elif [[ "${type}" == "hysteria" ]]; then
local hysteriaEmail= local hysteriaEmail=
@ -4709,6 +4732,9 @@ EOF
tail -f ${configPathLog}error.log tail -f ${configPathLog}error.log
;; ;;
4) 4)
if [[ ! -f "/etc/v2ray-agent/crontab_tls.log" ]]; then
touch /etc/v2ray-agent/crontab_tls.log
fi
tail -n 100 /etc/v2ray-agent/crontab_tls.log tail -n 100 /etc/v2ray-agent/crontab_tls.log
;; ;;
5) 5)
@ -6775,7 +6801,7 @@ menu() {
cd "$HOME" || exit cd "$HOME" || exit
echoContent red "\n==============================================================" echoContent red "\n=============================================================="
echoContent green "作者mack-a" echoContent green "作者mack-a"
echoContent green "当前版本v2.8.10" echoContent green "当前版本v2.8.11"
echoContent green "Githubhttps://github.com/mack-a/v2ray-agent" echoContent green "Githubhttps://github.com/mack-a/v2ray-agent"
echoContent green "描述:八合一共存脚本\c" echoContent green "描述:八合一共存脚本\c"
showInstallStatus showInstallStatus