mirror of
https://github.com/mack-a/v2ray-agent.git
synced 2026-01-12 16:35:38 +08:00
fix(脚本): 修复xhttp无法通过CDN的问题、修复sing-box特定协议无法删除用户问题、修复singbox无法删除anytls用户的问题
This commit is contained in:
74
install.sh
74
install.sh
@@ -731,7 +731,7 @@ allowPort() {
|
||||
local updateFirewalldStatus=
|
||||
if ! iptables -L | grep -q "$1/${type}(mack-a)"; then
|
||||
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
|
||||
|
||||
if echo "${updateFirewalldStatus}" | grep -q "true"; then
|
||||
@@ -1878,13 +1878,13 @@ acmeInstallSSL() {
|
||||
|
||||
if [[ "${dnsAPIType}" == "cloudflare" ]]; then
|
||||
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
|
||||
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
|
||||
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
|
||||
}
|
||||
# 自定义端口
|
||||
@@ -4866,15 +4866,15 @@ EOF
|
||||
elif [[ "${type}" == "vlessXHTTP" ]]; then
|
||||
|
||||
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 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}"
|
||||
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
|
||||
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
|
||||
[[ "${type}" == "vlessgrpc" ]]
|
||||
@@ -6134,72 +6134,78 @@ removeUser() {
|
||||
|
||||
if echo ${currentInstallProtocolType} | grep -q ",0,"; then
|
||||
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
|
||||
fi
|
||||
if echo ${currentInstallProtocolType} | grep -q ",1,"; then
|
||||
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
|
||||
fi
|
||||
|
||||
if echo ${currentInstallProtocolType} | grep -q ",2,"; then
|
||||
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
|
||||
fi
|
||||
|
||||
if echo ${currentInstallProtocolType} | grep -q ",3,"; then
|
||||
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
|
||||
fi
|
||||
|
||||
if echo ${currentInstallProtocolType} | grep -q ",5,"; then
|
||||
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
|
||||
fi
|
||||
|
||||
if echo ${currentInstallProtocolType} | grep -q ",4,"; then
|
||||
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
|
||||
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
|
||||
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"
|
||||
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
|
||||
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"
|
||||
fi
|
||||
if echo ${currentInstallProtocolType} | grep -q ",10,"; then
|
||||
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"
|
||||
fi
|
||||
# VMess HTTPUpgrade
|
||||
if echo ${currentInstallProtocolType} | grep -q ",11,"; then
|
||||
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 . >${configPath}11_VMess_HTTPUpgrade_inbounds.json
|
||||
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
|
||||
readNginxSubscribe
|
||||
if [[ -n "${subscribePort}" ]]; then
|
||||
@@ -6332,10 +6338,10 @@ EOF
|
||||
checkLog 1
|
||||
;;
|
||||
2)
|
||||
tail -f ${configPathLog}access.log
|
||||
tail -f "${configPathLog}access.log"
|
||||
;;
|
||||
3)
|
||||
tail -f ${configPathLog}error.log
|
||||
tail -f "${configPathLog}error.log"
|
||||
;;
|
||||
4)
|
||||
if [[ ! -f "/etc/v2ray-agent/crontab_tls.log" ]]; then
|
||||
@@ -6347,8 +6353,8 @@ EOF
|
||||
tail -n 100 /etc/v2ray-agent/tls/acme.log
|
||||
;;
|
||||
6)
|
||||
echo >${configPathLog}access.log
|
||||
echo >${configPathLog}error.log
|
||||
echo >"${configPathLog}access.log"
|
||||
echo >"${configPathLog}error.log"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
@@ -9538,7 +9544,7 @@ menu() {
|
||||
cd "$HOME" || exit
|
||||
echoContent red "\n=============================================================="
|
||||
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 "描述:八合一共存脚本\c"
|
||||
showInstallStatus
|
||||
|
||||
Reference in New Issue
Block a user