diff --git a/install.sh b/install.sh index 1ac051e..ec15a13 100644 --- a/install.sh +++ b/install.sh @@ -675,8 +675,11 @@ readXrayCoreRealityConfig # 初始化安装目录 mkdirTools() { mkdir -p /etc/v2ray-agent/tls - mkdir -p /etc/v2ray-agent/subscribe - mkdir -p /etc/v2ray-agent/subscribe_tmp + mkdir -p /etc/v2ray-agent/subscribe/default + mkdir -p /etc/v2ray-agent/subscribe/clashMeta + mkdir -p /etc/v2ray-agent/subscribe/clashMetaProfiles + mkdir -p /etc/v2ray-agent/subscribe_tmp/default + mkdir -p /etc/v2ray-agent/subscribe_tmp/clashMeta mkdir -p /etc/v2ray-agent/v2ray/conf mkdir -p /etc/v2ray-agent/v2ray/tmp mkdir -p /etc/v2ray-agent/xray/conf @@ -1059,7 +1062,7 @@ server { keepalive_timeout 1071906480m; location /s/ { - add_header Content-Type text/plain; + default_type 'text/plain; charset=utf-8'; alias /etc/v2ray-agent/subscribe/; } @@ -1096,7 +1099,7 @@ server { server_name ${domain}; root ${nginxStaticPath}; location /s/ { - add_header Content-Type text/plain; + default_type 'text/plain; charset=utf-8'; alias /etc/v2ray-agent/subscribe/; } location /${currentPath}grpc { @@ -1121,7 +1124,7 @@ server { server_name ${domain}; root ${nginxStaticPath}; location /s/ { - add_header Content-Type text/plain; + default_type 'text/plain; charset=utf-8'; alias /etc/v2ray-agent/subscribe/; } location /${currentPath}trojangrpc { @@ -1145,7 +1148,7 @@ server { server_name ${domain}; root ${nginxStaticPath}; location /s/ { - add_header Content-Type text/plain; + default_type 'text/plain; charset=utf-8'; alias /etc/v2ray-agent/subscribe/; } location / { @@ -1160,7 +1163,7 @@ server { server_name ${domain}; root ${nginxStaticPath}; location /s/ { - add_header Content-Type text/plain; + default_type 'text/plain; charset=utf-8'; alias /etc/v2ray-agent/subscribe/; } location / { @@ -3426,8 +3429,20 @@ defaultBase64Code() { echoContent yellow " ---> 格式化明文(VLESS+TCP+TLS_Vision)" echoContent green "协议类型:VLESS,地址:${currentHost},端口:${currentDefaultPort},用户ID:${id},安全:tls,传输方式:tcp,flow:xtls-rprx-vision,账户名:${email}\n" - cat <>"/etc/v2ray-agent/subscribe_tmp/${id}" + cat <>"/etc/v2ray-agent/subscribe_tmp/default/${id}" vless://${id}@${currentHost}:${currentDefaultPort}?encryption=none&security=tls&type=tcp&host=${currentHost}&headerType=none&sni=${currentHost}&flow=xtls-rprx-vision#${email} +EOF + cat <>"/etc/v2ray-agent/subscribe_tmp/clashMeta/${id}" + - name: "${email}" + type: vless + server: ${currentHost} + port: ${currentDefaultPort} + uuid: ${id} + network: tcp + tls: true + udp: true + flow: xtls-rprx-vision + client-fingerprint: chrome EOF 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" @@ -3438,7 +3453,7 @@ EOF echoContent yellow " ---> 格式化明文(VLESS+TCP+TLS)" echoContent green " 协议类型:VLESS,地址:${currentHost},端口:${currentDefaultPort},用户ID:${id},安全:tls,传输方式:tcp,账户名:${email}\n" - cat <>"/etc/v2ray-agent/subscribe_tmp/${id}" + cat <>"/etc/v2ray-agent/subscribe_tmp/default/${id}" vless://${id}@${currentHost}:${currentDefaultPort}?security=tls&encryption=none&host=${currentHost}&headerType=none&type=tcp#${email} EOF echoContent yellow " ---> 二维码 VLESS(VLESS+TCP+TLS)" @@ -3451,7 +3466,7 @@ EOF echoContent yellow " ---> 格式化明文(Trojan+TCP+TLS_Vision)" echoContent green "协议类型:Trojan,地址:${currentHost},端口:${currentDefaultPort},用户ID:${id},安全:xtls,传输方式:tcp,flow:xtls-rprx-vision,账户名:${email}\n" - cat <>"/etc/v2ray-agent/subscribe_tmp/${id}" + cat <>"/etc/v2ray-agent/subscribe_tmp/default/${id}" trojan://${id}@${currentHost}:${currentDefaultPort}?encryption=none&security=xtls&type=tcp&host=${currentHost}&headerType=none&sni=${currentHost}&flow=xtls-rprx-vision#${email} EOF echoContent yellow " ---> 二维码 Trojan(Trojan+TCP+TLS_Vision)" @@ -3467,8 +3482,26 @@ EOF echoContent green " vmess://${qrCodeBase64Default}\n" echoContent yellow " ---> 二维码 vmess(VMess+WS+TLS)" - cat <>"/etc/v2ray-agent/subscribe_tmp/${id}" + cat <>"/etc/v2ray-agent/subscribe_tmp/default/${id}" vmess://${qrCodeBase64Default} +EOF + cat <>"/etc/v2ray-agent/subscribe_tmp/clashMeta/${id}" + - name: "${email}" + type: vmess + server: ${currentHost} + port: ${currentDefaultPort} + uuid: ${id} + alterId: 0 + cipher: none + udp: true + tls: true + client-fingerprint: chrome + servername: ${currentAdd} + network: ws + ws-opts: + path: /${currentPath}vws + headers: + Host: ${currentHost} EOF echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=vmess://${qrCodeBase64Default}\n" @@ -3480,8 +3513,24 @@ EOF echoContent yellow " ---> 格式化明文(VLESS+WS+TLS)" echoContent green " 协议类型:VLESS,地址:${currentAdd},伪装域名/SNI:${currentHost},端口:${currentDefaultPort},用户ID:${id},安全:tls,传输方式:ws,路径:/${currentPath}ws,账户名:${email}\n" - cat <>"/etc/v2ray-agent/subscribe_tmp/${id}" + cat <>"/etc/v2ray-agent/subscribe_tmp/default/${id}" vless://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&security=tls&type=ws&host=${currentHost}&sni=${currentHost}&path=/${currentPath}ws#${email} +EOF + cat <>"/etc/v2ray-agent/subscribe_tmp/clashMeta/${id}" + - name: "${email}" + type: vless + server: ${currentAdd} + port: ${currentDefaultPort} + uuid: ${id} + udp: true + tls: true + network: ws + client-fingerprint: chrome + servername: ${currentHost} + ws-opts: + path: /${currentPath}ws + headers: + Host: ${currentHost} EOF echoContent yellow " ---> 二维码 VLESS(VLESS+WS+TLS)" @@ -3495,7 +3544,7 @@ EOF echoContent yellow " ---> 格式化明文(VLESS+gRPC+TLS)" echoContent green " 协议类型:VLESS,地址:${currentAdd},伪装域名/SNI:${currentHost},端口:${currentDefaultPort},用户ID:${id},安全:tls,传输方式:gRPC,alpn:h2,serviceName:${currentPath}grpc,账户名:${email}\n" - cat <>"/etc/v2ray-agent/subscribe_tmp/${id}" + cat <>"/etc/v2ray-agent/subscribe_tmp/default/${id}" vless://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&security=tls&type=grpc&host=${currentHost}&path=${currentPath}grpc&serviceName=${currentPath}grpc&alpn=h2&sni=${currentHost}#${email} EOF echoContent yellow " ---> 二维码 VLESS(VLESS+gRPC+TLS)" @@ -3506,8 +3555,19 @@ EOF echoContent yellow " ---> Trojan(TLS)" echoContent green " trojan://${id}@${currentHost}:${currentDefaultPort}?peer=${currentHost}&sni=${currentHost}&alpn=http/1.1#${currentHost}_Trojan\n" - cat <>"/etc/v2ray-agent/subscribe_tmp/${id}" + cat <>"/etc/v2ray-agent/subscribe_tmp/default/${id}" trojan://${id}@${currentHost}:${currentDefaultPort}?peer=${currentHost}&sni=${currentHost}&alpn=http/1.1#${email}_Trojan +EOF + + cat <>"/etc/v2ray-agent/subscribe_tmp/clashMeta/${id}" + - name: "${email}" + type: trojan + server: ${currentHost} + port: ${currentDefaultPort} + password: ${id} + client-fingerprint: chrome + udp: true + sni: ${currentHost} EOF 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" @@ -3517,8 +3577,20 @@ EOF 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" - cat <>"/etc/v2ray-agent/subscribe_tmp/${id}" + cat <>"/etc/v2ray-agent/subscribe_tmp/default/${id}" trojan://${id}@${currentAdd}:${currentDefaultPort}?encryption=none&peer=${currentHost}&security=tls&type=grpc&sni=${currentHost}&alpn=h2&path=${currentPath}trojangrpc&serviceName=${currentPath}trojangrpc#${email} +EOF + cat <>"/etc/v2ray-agent/subscribe_tmp/clashMeta/${id}" + - name: "${email}" + server: ${currentAdd} + port: ${currentDefaultPort} + type: trojan + password: ${id} + network: grpc + sni: ${currentHost} + udp: true + grpc-opts: + grpc-service-name: "${currentPath}trojangrpc" EOF 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" @@ -3528,8 +3600,21 @@ EOF hysteriaEmail=$(echo "${email}" | awk -F "[_]" '{print $1}')_hysteria echoContent yellow " ---> Hysteria(TLS)" echoContent green " hysteria://${currentHost}:${hysteriaPort}?protocol=${hysteriaProtocol}&auth=${id}&peer=${currentHost}&insecure=0&alpn=h3&upmbps=${hysteriaClientUploadSpeed}&downmbps=${hysteriaClientDownloadSpeed}#${hysteriaEmail}\n" - cat <>"/etc/v2ray-agent/subscribe_tmp/${id}" + cat <>"/etc/v2ray-agent/subscribe_tmp/default/${id}" hysteria://${currentHost}:${hysteriaPort}?protocol=${hysteriaProtocol}&auth=${id}&peer=${currentHost}&insecure=0&alpn=h3&upmbps=${hysteriaClientUploadSpeed}&downmbps=${hysteriaClientDownloadSpeed}#${hysteriaEmail} +EOF + cat <>"/etc/v2ray-agent/subscribe_tmp/clashMeta/${id}" + - name: "${hysteriaEmail}" + type: hysteria + server: ${currentHost} + port: ${hysteriaPort} + auth_str: ${id} + alpn: + - h3 + protocol: ${hysteriaProtocol} + up: "${hysteriaClientUploadSpeed}" + down: "${hysteriaClientDownloadSpeed}" + sni: ${currentHost} EOF echoContent yellow " ---> 二维码 Hysteria(TLS)" echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=hysteria%3A%2F%2F${currentHost}%3A${hysteriaPort}%3Fprotocol%3D${hysteriaProtocol}%26auth%3D${id}%26peer%3D${currentHost}%26insecure%3D0%26alpn%3Dh3%26upmbps%3D${hysteriaClientUploadSpeed}%26downmbps%3D${hysteriaClientDownloadSpeed}%23${hysteriaEmail}\n" @@ -3539,8 +3624,23 @@ EOF echoContent yellow " ---> 格式化明文(VLESS+reality+uTLS+Vision)" echoContent green "协议类型:VLESS reality,地址:$(getPublicIP),publicKey:${currentRealityPublicKey},serverNames:${currentRealityServerNames},端口:${currentRealityPort},用户ID:${id},传输方式:tcp,账户名:${email}\n" - cat <>"/etc/v2ray-agent/subscribe_tmp/${id}" + cat <>"/etc/v2ray-agent/subscribe_tmp/default/${id}" vless://${id}@$(getPublicIP):${currentRealityPort}?encryption=none&security=reality&type=tcp&sni=${currentRealityServerNames}&fp=chrome&pbk=${currentRealityPublicKey}&flow=xtls-rprx-vision#${email} +EOF + cat <>"/etc/v2ray-agent/subscribe_tmp/clashMeta/${id}" + - name: "${email}" + type: vless + server: $(getPublicIP) + port: ${currentRealityPort} + uuid: ${id} + network: tcp + tls: true + udp: true + flow: xtls-rprx-vision + servername: ${currentRealityServerNames} + reality-opts: + public-key: ${currentRealityPublicKey} + client-fingerprint: chrome EOF echoContent yellow " ---> 二维码 VLESS(VLESS+reality+uTLS+Vision)" echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=vless%3A%2F%2F${id}%40$(getPublicIP)%3A${currentRealityPort}%3Fencryption%3Dnone%26security%3Dreality%26type%3Dtcp%26sni%3D${currentRealityServerNames}%26fp%3Dchrome%26pbk%3D${currentRealityPublicKey}%26flow%3Dxtls-rprx-vision%23${email}\n" @@ -3551,8 +3651,24 @@ EOF echoContent yellow " ---> 格式化明文(VLESS+reality+uTLS+gRPC)" echoContent green "协议类型:VLESS reality,serviceName:grpc,地址:$(getPublicIP),publicKey:${currentRealityPublicKey},serverNames:${currentRealityServerNames},端口:${currentRealityPort},用户ID:${id},传输方式:gRPC,client-fingerprint:chrome,账户名:${email}\n" - cat <>"/etc/v2ray-agent/subscribe_tmp/${id}" + cat <>"/etc/v2ray-agent/subscribe_tmp/default/${id}" vless://${id}@$(getPublicIP):${currentRealityPort}?encryption=none&security=reality&type=grpc&sni=${currentRealityServerNames}&fp=chrome&pbk=${currentRealityPublicKey}&path=grpc&serviceName=grpc#${email} +EOF + cat <>"/etc/v2ray-agent/subscribe_tmp/clashMeta/${id}" + - name: "${email}" + type: vless + server: $(getPublicIP) + port: ${currentRealityPort} + uuid: ${id} + network: grpc + tls: true + udp: true + servername: ${currentRealityServerNames} + reality-opts: + public-key: ${currentRealityPublicKey} + grpc-opts: + grpc-service-name: "grpc" + client-fingerprint: chrome EOF echoContent yellow " ---> 二维码 VLESS(VLESS+reality+uTLS+gRPC)" echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=vless%3A%2F%2F${id}%40$(getPublicIP)%3A${currentRealityPort}%3Fencryption%3Dnone%26security%3Dreality%26type%3Dgrpc%26sni%3D${currentRealityServerNames}%26fp%3Dchrome%26pbk%3D${currentRealityPublicKey}%26path%3Dgrpc%26serviceName%3Dgrpc%23${email}\n" @@ -5855,6 +5971,222 @@ manageAccount() { fi } +# clashMeta配置文件 +clashMetaConfig() { + local url=$1 + local id=$2 + cat <"/etc/v2ray-agent/subscribe/clashMetaProfiles/${id}" +port: 7890 +socks-port: 7891 +allow-lan: true +mode: Rule +log-level: debug +external-controller: 127.0.0.1:9090 +dns: + enable: true + ipv6: false + listen: 0.0.0.0:53 + enhanced-mode: redir-host + nameserver: + - https://doh.pub/dns-query + - tls://dot.pub:853 + - https://223.5.5.5/dns-query + - tls://223.5.5.5:853 + default-nameserver: + - 114.114.114.114 + - 119.29.29.29 + - 223.5.5.5 +proxy-providers: + provider1: + type: http + path: ./provider1.yaml + url: ${url} + interval: 3600 + health-check: + enable: false + url: http://www.gstatic.com/generate_204 + interval: 300 +proxy-groups: + - name: 节点选择 + type: select + use: + - provider1 + proxies: + - 自动选择 + - 故障转移 + - 负载均衡 + - DIRECT + - name: 手动切换 + type: select + use: + - provider1 + proxies: null + - name: 自动选择 + type: url-test + url: http://www.gstatic.com/generate_204 + interval: 36000 + tolerance: 50 + use: + - provider1 + proxies: null + - name: 故障转移 + type: fallback + url: http://www.gstatic.com/generate_204 + interval: 300 + tolerance: 50 + use: + - provider1 + proxies: + - 自动选择 + - name: 负载均衡 + type: load-balance + url: http://www.gstatic.com/generate_204 + interval: 300 + tolerance: 50 + use: + - provider1 + proxies: null + - name: 全球代理 + type: select + use: + - provider1 + proxies: + - 自动选择 + - name: Telegram + type: select + use: + - provider1 + proxies: + - 自动选择 + - 手动切换 + - name: YouTube + type: select + use: + - provider1 + proxies: + - 自动选择 + - 手动切换 + - name: Github + type: select + use: + - provider1 + proxies: + - 自动选择 + - 手动切换 + - DIRECT + - name: Google + type: select + use: + - provider1 + proxies: + - 自动选择 + - 手动切换 + - DIRECT + - name: 国内媒体 + type: select + use: + - provider1 + proxies: + - DIRECT + - name: 本地直连 + type: select + use: + - provider1 + proxies: + - DIRECT + - 节点选择 + - 自动选择 + - name: 漏网之鱼 + type: select + use: + - provider1 + proxies: + - DIRECT + - 节点选择 + - 手动切换 + - 自动选择 +rule-providers: + reject: + type: http + behavior: domain + url: https://ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/reject.txt + path: ./ruleset/reject.yaml + interval: 86400 + proxy: + type: http + behavior: domain + url: https://ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/proxy.txt + path: ./ruleset/proxy.yaml + interval: 86400 + direct: + type: http + behavior: domain + url: https://ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/direct.txt + path: ./ruleset/direct.yaml + interval: 86400 + private: + type: http + behavior: domain + url: https://ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/private.txt + path: ./ruleset/private.yaml + interval: 86400 + gfw: + type: http + behavior: domain + url: https://ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/gfw.txt + path: ./ruleset/gfw.yaml + interval: 86400 + greatfire: + type: http + behavior: domain + url: https://ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/greatfire.txt + path: ./ruleset/greatfire.yaml + interval: 86400 + tld-not-cn: + type: http + behavior: domain + url: https://ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/tld-not-cn.txt + path: ./ruleset/tld-not-cn.yaml + interval: 86400 + telegramcidr: + type: http + behavior: ipcidr + url: https://ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/telegramcidr.txt + path: ./ruleset/telegramcidr.yaml + interval: 86400 + cncidr: + type: http + behavior: ipcidr + url: https://ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/cncidr.txt + path: ./ruleset/cncidr.yaml + interval: 86400 + lancidr: + type: http + behavior: ipcidr + url: https://ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/lancidr.txt + path: ./ruleset/lancidr.yaml + interval: 86400 + applications: + type: http + behavior: classical + url: https://ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/applications.txt + path: ./ruleset/applications.yaml + interval: 86400 + +rules: + - GEOIP,LAN,本地直连 + - GEOIP,CN,本地直连 + - RULE-SET,applications,本地直连 + - RULE-SET,direct,本地直连 + - RULE-SET,lancidr,本地直连 + - RULE-SET,cncidr,本地直连 + - RULE-SET,telegramcidr,Telegram + - RULE-SET,proxy,全球代理 + - RULE-SET,gfw,全球代理 + - MATCH,漏网之鱼 +EOF + +} # 订阅 subscribe() { readInstallProtocolType @@ -5864,29 +6196,44 @@ subscribe() { echoContent skyBlue "-------------------------备注---------------------------------" echoContent yellow "# 查看订阅时会重新生成订阅" echoContent yellow "# 每次添加、删除账号需要重新查看订阅" - rm -rf /etc/v2ray-agent/subscribe/* - rm -rf /etc/v2ray-agent/subscribe_tmp/* + rm -rf /etc/v2ray-agent/subscribe/default/* + rm -rf /etc/v2ray-agent/subscribe/clashMeta/* + rm -rf /etc/v2ray-agent/subscribe_tmp/default/* + rm -rf /etc/v2ray-agent/subscribe_tmp/clashMeta/* showAccounts >/dev/null mv /etc/v2ray-agent/subscribe_tmp/* /etc/v2ray-agent/subscribe/ - if [[ -n $(ls /etc/v2ray-agent/subscribe/) ]]; then - find /etc/v2ray-agent/subscribe/* | while read -r email; do - email=$(echo "${email}" | awk -F "[b][e][/]" '{print $2}') + if [[ -n $(ls /etc/v2ray-agent/subscribe/default/) ]]; then + find /etc/v2ray-agent/subscribe/default/* | while read -r email; do + email=$(echo "${email}" | awk -F "[d][e][f][a][u][l][t][/]" '{print $2}') local base64Result - base64Result=$(base64 -w 0 "/etc/v2ray-agent/subscribe/${email}") - echo "${base64Result}" >"/etc/v2ray-agent/subscribe/${email}" + base64Result=$(base64 -w 0 "/etc/v2ray-agent/subscribe/default/${email}") + echo "${base64Result}" >"/etc/v2ray-agent/subscribe/default/${email}" echoContent skyBlue "--------------------------------------------------------------" - echoContent yellow "email:${email}\n" local currentDomain=${currentHost} if [[ -n "${currentDefaultPort}" && "${currentDefaultPort}" != "443" ]]; then currentDomain="${currentHost}:${currentDefaultPort}" fi + echoContent skyBlue "\n----------默认订阅----------\n" + echoContent yellow "email:${email}\n" + echoContent yellow "url:https://${currentDomain}/s/default/${email}\n" + echoContent yellow "在线二维码:https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=https://${currentDomain}/s/default/${email}\n" + echo "https://${currentDomain}/s/default/${email}" | qrencode -s 10 -m 1 -t UTF8 + + # clashMeta + if [[ -f "/etc/v2ray-agent/subscribe/clashMeta/${email}" ]]; then + + sed -i '1i\proxies:' "/etc/v2ray-agent/subscribe/clashMeta/${email}" + local clashProxyUrl="https://${currentDomain}/s/clashMeta/${email}" + clashMetaConfig "${clashProxyUrl}" "${email}" + echoContent skyBlue "\n----------clashMeta订阅----------\n" + echoContent yellow "url:https://${currentDomain}/s/clashMetaProfiles/${email}\n" + echoContent yellow "在线二维码:https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=https://${currentDomain}/s/clashMetaProfiles/${email}\n" + echo "https://${currentDomain}/s/clashMetaProfiles/${email}" | qrencode -s 10 -m 1 -t UTF8 + fi - echoContent yellow "url:https://${currentDomain}/s/${email}\n" - echoContent yellow "在线二维码:https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=https://${currentDomain}/s/${email}\n" - echo "https://${currentDomain}/s/${email}" | qrencode -s 10 -m 1 -t UTF8 echoContent skyBlue "--------------------------------------------------------------" done fi @@ -6145,7 +6492,7 @@ menu() { cd "$HOME" || exit echoContent red "\n==============================================================" echoContent green "作者:mack-a" - echoContent green "当前版本:v2.8.4" + echoContent green "当前版本:v2.8.5" echoContent green "Github:https://github.com/mack-a/v2ray-agent" echoContent green "描述:八合一共存脚本\c" showInstallStatus