mirror of
https://github.com/mack-a/v2ray-agent.git
synced 2026-09-02 13:56:37 +00:00
fix(脚本): 修复xhttp无法通过CDN的问题、修复sing-box特定协议无法删除用户问题、修复singbox无法删除anytls用户的问题
This commit is contained in:
+40
-34
@@ -731,7 +731,7 @@ allowPort() {
|
|||||||
local updateFirewalldStatus=
|
local updateFirewalldStatus=
|
||||||
if ! iptables -L | grep -q "$1/${type}(mack-a)"; then
|
if ! iptables -L | grep -q "$1/${type}(mack-a)"; then
|
||||||
updateFirewalldStatus=true
|
updateFirewalldStatus=true
|
||||||
iptables -I INPUT -p ${type} --dport "$1" -m comment --comment "allow $1/${type}(mack-a)" -j ACCEPT
|
iptables -I INPUT -p "${type}" --dport "$1" -m comment --comment "allow $1/${type}(mack-a)" -j ACCEPT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if echo "${updateFirewalldStatus}" | grep -q "true"; then
|
if echo "${updateFirewalldStatus}" | grep -q "true"; then
|
||||||
@@ -1878,13 +1878,13 @@ acmeInstallSSL() {
|
|||||||
|
|
||||||
if [[ "${dnsAPIType}" == "cloudflare" ]]; then
|
if [[ "${dnsAPIType}" == "cloudflare" ]]; then
|
||||||
echoContent green " ---> DNS API 生成证书中"
|
echoContent green " ---> DNS API 生成证书中"
|
||||||
sudo CF_Token="${cfAPIToken}" "$HOME/.acme.sh/acme.sh" --issue -d "${dnsAPIDomain}" -d "${dnsTLSDomain}" --dns dns_cf -k ec-256 --server "${sslType}" ${sslIPv6} 2>&1 | tee -a /etc/v2ray-agent/tls/acme.log >/dev/null
|
sudo CF_Token="${cfAPIToken}" "$HOME/.acme.sh/acme.sh" --issue -d "${dnsAPIDomain}" -d "${dnsTLSDomain}" --dns dns_cf -k ec-256 --server "${sslType}" "${sslIPv6}" 2>&1 | tee -a /etc/v2ray-agent/tls/acme.log >/dev/null
|
||||||
elif [[ "${dnsAPIType}" == "aliyun" ]]; then
|
elif [[ "${dnsAPIType}" == "aliyun" ]]; then
|
||||||
echoContent green " ---> DNS API 生成证书中"
|
echoContent green " ---> DNS API 生成证书中"
|
||||||
sudo Ali_Key="${aliKey}" Ali_Secret="${aliSecret}" "$HOME/.acme.sh/acme.sh" --issue -d "${dnsAPIDomain}" -d "${dnsTLSDomain}" --dns dns_ali -k ec-256 --server "${sslType}" ${sslIPv6} 2>&1 | tee -a /etc/v2ray-agent/tls/acme.log >/dev/null
|
sudo Ali_Key="${aliKey}" Ali_Secret="${aliSecret}" "$HOME/.acme.sh/acme.sh" --issue -d "${dnsAPIDomain}" -d "${dnsTLSDomain}" --dns dns_ali -k ec-256 --server "${sslType}" "${sslIPv6}" 2>&1 | tee -a /etc/v2ray-agent/tls/acme.log >/dev/null
|
||||||
else
|
else
|
||||||
echoContent green " ---> 生成证书中"
|
echoContent green " ---> 生成证书中"
|
||||||
sudo "$HOME/.acme.sh/acme.sh" --issue -d "${tlsDomain}" --standalone -k ec-256 --server "${sslType}" ${sslIPv6} 2>&1 | tee -a /etc/v2ray-agent/tls/acme.log >/dev/null
|
sudo "$HOME/.acme.sh/acme.sh" --issue -d "${tlsDomain}" --standalone -k ec-256 --server "${sslType}" "${sslIPv6}" 2>&1 | tee -a /etc/v2ray-agent/tls/acme.log >/dev/null
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
# 自定义端口
|
# 自定义端口
|
||||||
@@ -4866,15 +4866,15 @@ EOF
|
|||||||
elif [[ "${type}" == "vlessXHTTP" ]]; then
|
elif [[ "${type}" == "vlessXHTTP" ]]; then
|
||||||
|
|
||||||
echoContent yellow " ---> 通用格式(VLESS+reality+XHTTP)"
|
echoContent yellow " ---> 通用格式(VLESS+reality+XHTTP)"
|
||||||
echoContent green " vless://${id}@$(getPublicIP):${port}?encryption=none&security=reality&type=xhttp&sni=${xrayVLESSRealityXHTTPServerName}&host=${xrayVLESSRealityXHTTPServerName}&fp=chrome&path=${path}&pbk=${currentRealityXHTTPPublicKey}&sid=6ba85179e30d4fc2#${email}\n"
|
echoContent green " vless://${id}@${add}:${port}?encryption=none&security=reality&type=xhttp&sni=${xrayVLESSRealityXHTTPServerName}&host=${xrayVLESSRealityXHTTPServerName}&fp=chrome&path=${path}&pbk=${currentRealityXHTTPPublicKey}&sid=6ba85179e30d4fc2#${email}\n"
|
||||||
|
|
||||||
echoContent yellow " ---> 格式化明文(VLESS+reality+XHTTP)"
|
echoContent yellow " ---> 格式化明文(VLESS+reality+XHTTP)"
|
||||||
echoContent green "协议类型:VLESS reality,地址:$(getPublicIP),publicKey:${currentRealityXHTTPPublicKey},shortId: 6ba85179e30d4fc2,serverNames:${xrayVLESSRealityXHTTPServerName},端口:${port},路径:${path},SNI:${xrayVLESSRealityXHTTPServerName},伪装域名:${xrayVLESSRealityXHTTPServerName},用户ID:${id},传输方式:xhttp,账户名:${email}\n"
|
echoContent green "协议类型:VLESS reality,地址:${add},publicKey:${currentRealityXHTTPPublicKey},shortId: 6ba85179e30d4fc2,serverNames:${xrayVLESSRealityXHTTPServerName},端口:${port},路径:${path},SNI:${xrayVLESSRealityXHTTPServerName},伪装域名:${xrayVLESSRealityXHTTPServerName},用户ID:${id},传输方式:xhttp,账户名:${email}\n"
|
||||||
cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}"
|
cat <<EOF >>"/etc/v2ray-agent/subscribe_local/default/${user}"
|
||||||
vless://${id}@$(getPublicIP):${port}?encryption=none&security=reality&type=xhttp&sni=${xrayVLESSRealityXHTTPServerName}&fp=chrome&path=${path}&pbk=${currentRealityXHTTPPublicKey}&sid=6ba85179e30d4fc2#${email}
|
vless://${id}@${add}:${port}?encryption=none&security=reality&type=xhttp&sni=${xrayVLESSRealityXHTTPServerName}&fp=chrome&path=${path}&pbk=${currentRealityXHTTPPublicKey}&sid=6ba85179e30d4fc2#${email}
|
||||||
EOF
|
EOF
|
||||||
echoContent yellow " ---> 二维码 VLESS(VLESS+reality+XHTTP)"
|
echoContent yellow " ---> 二维码 VLESS(VLESS+reality+XHTTP)"
|
||||||
echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=vless%3A%2F%2F${id}%40$(getPublicIP)%3A${port}%3Fencryption%3Dnone%26security%3Dreality%26type%3Dxhttp%26sni%3D${xrayVLESSRealityXHTTPServerName}%26fp%3Dchrome%26path%3D${path}%26host%3D${xrayVLESSRealityXHTTPServerName}%26pbk%3D${currentRealityXHTTPPublicKey}%26sid%3D6ba85179e30d4fc2%23${email}\n"
|
echoContent green " https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=vless%3A%2F%2F${id}%40${add}%3A${port}%3Fencryption%3Dnone%26security%3Dreality%26type%3Dxhttp%26sni%3D${xrayVLESSRealityXHTTPServerName}%26fp%3Dchrome%26path%3D${path}%26host%3D${xrayVLESSRealityXHTTPServerName}%26pbk%3D${currentRealityXHTTPPublicKey}%26sid%3D6ba85179e30d4fc2%23${email}\n"
|
||||||
|
|
||||||
elif
|
elif
|
||||||
[[ "${type}" == "vlessgrpc" ]]
|
[[ "${type}" == "vlessgrpc" ]]
|
||||||
@@ -6134,72 +6134,78 @@ removeUser() {
|
|||||||
|
|
||||||
if echo ${currentInstallProtocolType} | grep -q ",0,"; then
|
if echo ${currentInstallProtocolType} | grep -q ",0,"; then
|
||||||
local vlessVision
|
local vlessVision
|
||||||
vlessVision=$(jq -r 'del(.inbounds[0].settings.clients['${delUserIndex}']//.inbounds[0].users['${delUserIndex}'])' ${configPath}02_VLESS_TCP_inbounds.json)
|
vlessVision=$(jq -r 'del(.inbounds[0].settings.clients['"${delUserIndex}"']//.inbounds[0].users['"${delUserIndex}"'])' ${configPath}02_VLESS_TCP_inbounds.json)
|
||||||
echo "${vlessVision}" | jq . >${configPath}02_VLESS_TCP_inbounds.json
|
echo "${vlessVision}" | jq . >${configPath}02_VLESS_TCP_inbounds.json
|
||||||
fi
|
fi
|
||||||
if echo ${currentInstallProtocolType} | grep -q ",1,"; then
|
if echo ${currentInstallProtocolType} | grep -q ",1,"; then
|
||||||
local vlessWSResult
|
local vlessWSResult
|
||||||
vlessWSResult=$(jq -r 'del(.inbounds[0].settings.clients['${delUserIndex}'])//.inbounds[0].users['${delUserIndex}'])' ${configPath}03_VLESS_WS_inbounds.json)
|
vlessWSResult=$(jq -r 'del(.inbounds[0].settings.clients['"${delUserIndex}"']//.inbounds[0].users['"${delUserIndex}"'])' ${configPath}03_VLESS_WS_inbounds.json)
|
||||||
echo "${vlessWSResult}" | jq . >${configPath}03_VLESS_WS_inbounds.json
|
echo "${vlessWSResult}" | jq . >${configPath}03_VLESS_WS_inbounds.json
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if echo ${currentInstallProtocolType} | grep -q ",2,"; then
|
if echo ${currentInstallProtocolType} | grep -q ",2,"; then
|
||||||
local trojangRPCUsers
|
local trojangRPCUsers
|
||||||
trojangRPCUsers=$(jq -r 'del(.inbounds[0].settings.clients['${delUserIndex}'])//.inbounds[0].users['${delUserIndex}'])' ${configPath}04_trojan_gRPC_inbounds.json)
|
trojangRPCUsers=$(jq -r 'del(.inbounds[0].settings.clients['"${delUserIndex}"']//.inbounds[0].users['"${delUserIndex}"')' ${configPath}04_trojan_gRPC_inbounds.json)
|
||||||
echo "${trojangRPCUsers}" | jq . >${configPath}04_trojan_gRPC_inbounds.json
|
echo "${trojangRPCUsers}" | jq . >${configPath}04_trojan_gRPC_inbounds.json
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if echo ${currentInstallProtocolType} | grep -q ",3,"; then
|
if echo ${currentInstallProtocolType} | grep -q ",3,"; then
|
||||||
local vmessWSResult
|
local vmessWSResult
|
||||||
vmessWSResult=$(jq -r 'del(.inbounds[0].settings.clients['${delUserIndex}']//.inbounds[0].users['${delUserIndex}'])' ${configPath}05_VMess_WS_inbounds.json)
|
vmessWSResult=$(jq -r 'del(.inbounds[0].settings.clients['"${delUserIndex}"']//.inbounds[0].users['"${delUserIndex}"'])' ${configPath}05_VMess_WS_inbounds.json)
|
||||||
echo "${vmessWSResult}" | jq . >${configPath}05_VMess_WS_inbounds.json
|
echo "${vmessWSResult}" | jq . >${configPath}05_VMess_WS_inbounds.json
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if echo ${currentInstallProtocolType} | grep -q ",5,"; then
|
if echo ${currentInstallProtocolType} | grep -q ",5,"; then
|
||||||
local vlessGRPCResult
|
local vlessGRPCResult
|
||||||
vlessGRPCResult=$(jq -r 'del(.inbounds[0].settings.clients['${delUserIndex}']//.inbounds[0].users['${delUserIndex}'])' ${configPath}06_VLESS_gRPC_inbounds.json)
|
vlessGRPCResult=$(jq -r 'del(.inbounds[0].settings.clients['"${delUserIndex}"']//.inbounds[0].users['"${delUserIndex}"'])' ${configPath}06_VLESS_gRPC_inbounds.json)
|
||||||
echo "${vlessGRPCResult}" | jq . >${configPath}06_VLESS_gRPC_inbounds.json
|
echo "${vlessGRPCResult}" | jq . >${configPath}06_VLESS_gRPC_inbounds.json
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if echo ${currentInstallProtocolType} | grep -q ",4,"; then
|
if echo ${currentInstallProtocolType} | grep -q ",4,"; then
|
||||||
local trojanTCPResult
|
local trojanTCPResult
|
||||||
trojanTCPResult=$(jq -r 'del(.inbounds[0].settings.clients['${delUserIndex}']//.inbounds[0].users['${delUserIndex}'])' ${configPath}04_trojan_TCP_inbounds.json)
|
trojanTCPResult=$(jq -r 'del(.inbounds[0].settings.clients['"${delUserIndex}"']//.inbounds[0].users['"${delUserIndex}"'])' ${configPath}04_trojan_TCP_inbounds.json)
|
||||||
echo "${trojanTCPResult}" | jq . >${configPath}04_trojan_TCP_inbounds.json
|
echo "${trojanTCPResult}" | jq . >${configPath}04_trojan_TCP_inbounds.json
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if echo ${currentInstallProtocolType} | grep -q ",7,"; then
|
|
||||||
local vlessRealityResult
|
|
||||||
vlessRealityResult=$(jq -r 'del(.inbounds[1].settings.clients['${delUserIndex}']//.inbounds[0].users['${delUserIndex}']//.inbounds[0].users['${delUserIndex}'])' ${configPath}07_VLESS_vision_reality_inbounds.json)
|
|
||||||
echo "${vlessRealityResult}" | jq . >${configPath}07_VLESS_vision_reality_inbounds.json
|
|
||||||
fi
|
|
||||||
if echo ${currentInstallProtocolType} | grep -q ",8,"; then
|
|
||||||
local vlessRealityGRPCResult
|
|
||||||
vlessRealityGRPCResult=$(jq -r 'del(.inbounds[0].settings.clients['${delUserIndex}']//.inbounds[0].users['${delUserIndex}'])' ${configPath}08_VLESS_vision_gRPC_inbounds.json)
|
|
||||||
echo "${vlessRealityGRPCResult}" | jq . >${configPath}08_VLESS_vision_gRPC_inbounds.json
|
|
||||||
fi
|
|
||||||
|
|
||||||
if echo ${currentInstallProtocolType} | grep -q ",6,"; then
|
if echo ${currentInstallProtocolType} | grep -q ",6,"; then
|
||||||
local hysteriaResult
|
local hysteriaResult
|
||||||
hysteriaResult=$(jq -r 'del(.inbounds[0].users['${delUserIndex}']//.inbounds[0].users['${delUserIndex}'])' "${singBoxConfigPath}06_hysteria2_inbounds.json")
|
hysteriaResult=$(jq -r 'del(.inbounds[0].users['"${delUserIndex}"'])' "${singBoxConfigPath}06_hysteria2_inbounds.json")
|
||||||
echo "${hysteriaResult}" | jq . >"${singBoxConfigPath}06_hysteria2_inbounds.json"
|
echo "${hysteriaResult}" | jq . >"${singBoxConfigPath}06_hysteria2_inbounds.json"
|
||||||
fi
|
fi
|
||||||
|
if echo ${currentInstallProtocolType} | grep -q ",7,"; then
|
||||||
|
local vlessRealityResult
|
||||||
|
vlessRealityResult=$(jq -r 'del(.inbounds[1].settings.clients['"${delUserIndex}"']//.inbounds[0].users['"${delUserIndex}"'])' ${configPath}07_VLESS_vision_reality_inbounds.json)
|
||||||
|
echo "${vlessRealityResult}" | jq . >${configPath}07_VLESS_vision_reality_inbounds.json
|
||||||
|
fi
|
||||||
|
if echo ${currentInstallProtocolType} | grep -q ",8,"; then
|
||||||
|
local vlessRealityGRPCResult
|
||||||
|
vlessRealityGRPCResult=$(jq -r 'del(.inbounds[0].settings.clients['"${delUserIndex}"']//.inbounds[0].users['"${delUserIndex}"'])' ${configPath}08_VLESS_vision_gRPC_inbounds.json)
|
||||||
|
echo "${vlessRealityGRPCResult}" | jq . >${configPath}08_VLESS_vision_gRPC_inbounds.json
|
||||||
|
fi
|
||||||
|
|
||||||
if echo ${currentInstallProtocolType} | grep -q ",9,"; then
|
if echo ${currentInstallProtocolType} | grep -q ",9,"; then
|
||||||
local tuicResult
|
local tuicResult
|
||||||
tuicResult=$(jq -r 'del(.inbounds[0].users['${delUserIndex}']//.inbounds[0].users['${delUserIndex}'])' "${singBoxConfigPath}09_tuic_inbounds.json")
|
tuicResult=$(jq -r 'del(.inbounds[0].users['"${delUserIndex}"'])' "${singBoxConfigPath}09_tuic_inbounds.json")
|
||||||
echo "${tuicResult}" | jq . >"${singBoxConfigPath}09_tuic_inbounds.json"
|
echo "${tuicResult}" | jq . >"${singBoxConfigPath}09_tuic_inbounds.json"
|
||||||
fi
|
fi
|
||||||
if echo ${currentInstallProtocolType} | grep -q ",10,"; then
|
if echo ${currentInstallProtocolType} | grep -q ",10,"; then
|
||||||
local naiveResult
|
local naiveResult
|
||||||
naiveResult=$(jq -r 'del(.inbounds[0].users['${delUserIndex}']//.inbounds[0].users['${delUserIndex}'])' "${singBoxConfigPath}10_naive_inbounds.json")
|
naiveResult=$(jq -r 'del(.inbounds[0].users['"${delUserIndex}"'])' "${singBoxConfigPath}10_naive_inbounds.json")
|
||||||
echo "${naiveResult}" | jq . >"${singBoxConfigPath}10_naive_inbounds.json"
|
echo "${naiveResult}" | jq . >"${singBoxConfigPath}10_naive_inbounds.json"
|
||||||
fi
|
fi
|
||||||
# VMess HTTPUpgrade
|
# VMess HTTPUpgrade
|
||||||
if echo ${currentInstallProtocolType} | grep -q ",11,"; then
|
if echo ${currentInstallProtocolType} | grep -q ",11,"; then
|
||||||
local vmessHTTPUpgradeResult
|
local vmessHTTPUpgradeResult
|
||||||
vmessHTTPUpgradeResult=$(jq -r 'del(.inbounds[0].users['${delUserIndex}']//.inbounds[0].users['${delUserIndex}'])' "${singBoxConfigPath}11_VMess_HTTPUpgrade_inbounds.json")
|
vmessHTTPUpgradeResult=$(jq -r 'del(.inbounds[0].users['"${delUserIndex}"'])' "${singBoxConfigPath}11_VMess_HTTPUpgrade_inbounds.json")
|
||||||
echo "${vmessHTTPUpgradeResult}" | jq . >"${singBoxConfigPath}11_VMess_HTTPUpgrade_inbounds.json"
|
echo "${vmessHTTPUpgradeResult}" | jq . >"${singBoxConfigPath}11_VMess_HTTPUpgrade_inbounds.json"
|
||||||
echo "${vmessHTTPUpgradeResult}" | jq . >${configPath}11_VMess_HTTPUpgrade_inbounds.json
|
echo "${vmessHTTPUpgradeResult}" | jq . >${configPath}11_VMess_HTTPUpgrade_inbounds.json
|
||||||
fi
|
fi
|
||||||
|
# AnyTLS
|
||||||
|
if echo ${currentInstallProtocolType} | grep -q ",13,"; then
|
||||||
|
local anyTLSResult
|
||||||
|
anyTLSResult=$(jq -r 'del(.inbounds[0].users['"${delUserIndex}"'])' "${singBoxConfigPath}13_anytls_inbounds.json")
|
||||||
|
echo "${anyTLSResult}" | jq . >"${singBoxConfigPath}13_anytls_inbounds.json"
|
||||||
|
fi
|
||||||
reloadCore
|
reloadCore
|
||||||
readNginxSubscribe
|
readNginxSubscribe
|
||||||
if [[ -n "${subscribePort}" ]]; then
|
if [[ -n "${subscribePort}" ]]; then
|
||||||
@@ -6332,10 +6338,10 @@ EOF
|
|||||||
checkLog 1
|
checkLog 1
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
tail -f ${configPathLog}access.log
|
tail -f "${configPathLog}access.log"
|
||||||
;;
|
;;
|
||||||
3)
|
3)
|
||||||
tail -f ${configPathLog}error.log
|
tail -f "${configPathLog}error.log"
|
||||||
;;
|
;;
|
||||||
4)
|
4)
|
||||||
if [[ ! -f "/etc/v2ray-agent/crontab_tls.log" ]]; then
|
if [[ ! -f "/etc/v2ray-agent/crontab_tls.log" ]]; then
|
||||||
@@ -6347,8 +6353,8 @@ EOF
|
|||||||
tail -n 100 /etc/v2ray-agent/tls/acme.log
|
tail -n 100 /etc/v2ray-agent/tls/acme.log
|
||||||
;;
|
;;
|
||||||
6)
|
6)
|
||||||
echo >${configPathLog}access.log
|
echo >"${configPathLog}access.log"
|
||||||
echo >${configPathLog}error.log
|
echo >"${configPathLog}error.log"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
@@ -9538,7 +9544,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.5.5"
|
echoContent green "当前版本:v3.5.6"
|
||||||
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
|
||||||
|
|||||||
Reference in New Issue
Block a user