上传文件至 /
This commit is contained in:
parent
aa779cd7ea
commit
c924658eb4
@ -329,7 +329,13 @@ EOF
|
||||
|
||||
# 启动服务
|
||||
echo -e "${BLUE}启动V2Ray和Nginx服务...${PLAIN}"
|
||||
systemctl enable v2ray nginx --now
|
||||
systemctl daemon-reload
|
||||
systemctl enable v2ray --now
|
||||
systemctl enable nginx --now
|
||||
|
||||
# 等待服务启动
|
||||
echo -e "${BLUE}等待服务启动...${PLAIN}"
|
||||
sleep 2
|
||||
|
||||
# 检查服务状态
|
||||
v2ray_status=$(systemctl is-active v2ray)
|
||||
@ -338,16 +344,19 @@ EOF
|
||||
if [ "$v2ray_status" = "active" ] && [ "$nginx_status" = "active" ]; then
|
||||
echo -e "${GREEN}V2Ray和Nginx服务已成功启动!${PLAIN}"
|
||||
|
||||
# 显示配置信息
|
||||
echo -e "${GREEN}V2Ray配置信息:${PLAIN}"
|
||||
echo -e "${YELLOW}地址: ${domain}${PLAIN}"
|
||||
echo -e "${YELLOW}端口: 443${PLAIN}"
|
||||
echo -e "${YELLOW}用户ID(UUID): ${uuid}${PLAIN}"
|
||||
echo -e "${YELLOW}额外ID(alterId): 0${PLAIN}"
|
||||
echo -e "${YELLOW}加密方式: auto${PLAIN}"
|
||||
echo -e "${YELLOW}传输协议: ws${PLAIN}"
|
||||
echo -e "${YELLOW}路径: /ray${PLAIN}"
|
||||
echo -e "${YELLOW}TLS: 开启${PLAIN}"
|
||||
# 显示客户端配置信息
|
||||
show_client_info "${domain}" "${uuid}"
|
||||
|
||||
# 检查时间同步
|
||||
check_time_sync
|
||||
|
||||
# 启用BBR加速
|
||||
echo -e "${BLUE}正在启用BBR加速...${PLAIN}"
|
||||
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
|
||||
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
|
||||
sysctl -p
|
||||
|
||||
echo -e "${GREEN}BBR加速已启用${PLAIN}"
|
||||
|
||||
# 生成客户端配置
|
||||
cat > v2ray_client_config.json << EOF
|
||||
@ -373,7 +382,8 @@ EOF
|
||||
"users": [
|
||||
{
|
||||
"id": "${uuid}",
|
||||
"alterId": 0
|
||||
"alterId": 0,
|
||||
"security": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -384,6 +394,9 @@ EOF
|
||||
"security": "tls",
|
||||
"wsSettings": {
|
||||
"path": "/ray"
|
||||
},
|
||||
"tlsSettings": {
|
||||
"allowInsecure": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -392,13 +405,22 @@ EOF
|
||||
EOF
|
||||
echo -e "${GREEN}客户端配置已保存到 v2ray_client_config.json${PLAIN}"
|
||||
|
||||
# 启用BBR加速
|
||||
echo -e "${BLUE}正在启用BBR加速...${PLAIN}"
|
||||
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
|
||||
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
|
||||
sysctl -p
|
||||
# 显示V2Ray状态并查看可能的错误
|
||||
echo -e "${BLUE}查看V2Ray运行状态和最近日志...${PLAIN}"
|
||||
systemctl status v2ray --no-pager
|
||||
if [ -f /var/log/v2ray/error.log ]; then
|
||||
echo -e "${BLUE}最近的错误日志:${PLAIN}"
|
||||
tail -n 10 /var/log/v2ray/error.log
|
||||
fi
|
||||
|
||||
# 提供故障排除指南
|
||||
echo -e "${GREEN}如果您遇到连接问题,请检查:${PLAIN}"
|
||||
echo -e "${YELLOW}1. 客户端和服务器的时间是否同步${PLAIN}"
|
||||
echo -e "${YELLOW}2. 客户端的UUID是否正确配置${PLAIN}"
|
||||
echo -e "${YELLOW}3. WebSocket路径是否为 /ray${PLAIN}"
|
||||
echo -e "${YELLOW}4. 是否启用了TLS${PLAIN}"
|
||||
echo -e "${YELLOW}5. 防火墙是否允许443端口通信${PLAIN}"
|
||||
|
||||
echo -e "${GREEN}BBR加速已启用${PLAIN}"
|
||||
echo -e "${GREEN}安装完成!${PLAIN}"
|
||||
else
|
||||
echo -e "${RED}安装失败,请检查错误信息${PLAIN}"
|
||||
@ -413,6 +435,109 @@ EOF
|
||||
fi
|
||||
}
|
||||
|
||||
# 显示客户端配置详情
|
||||
show_client_info() {
|
||||
local domain=$1
|
||||
local uuid=$2
|
||||
|
||||
echo -e "${GREEN}V2Ray配置信息:${PLAIN}"
|
||||
echo -e "${YELLOW}-----------------------------${PLAIN}"
|
||||
echo -e "${YELLOW}地址 (Address): ${domain}${PLAIN}"
|
||||
echo -e "${YELLOW}端口 (Port): 443${PLAIN}"
|
||||
echo -e "${YELLOW}用户ID (UUID): ${uuid}${PLAIN}"
|
||||
echo -e "${YELLOW}额外ID (AlterId): 0${PLAIN}"
|
||||
echo -e "${YELLOW}加密方式 (Security): auto${PLAIN}"
|
||||
echo -e "${YELLOW}传输协议 (Network): ws${PLAIN}"
|
||||
echo -e "${YELLOW}WebSocket路径 (Path): /ray${PLAIN}"
|
||||
echo -e "${YELLOW}TLS: 开启${PLAIN}"
|
||||
echo -e "${YELLOW}-----------------------------${PLAIN}"
|
||||
echo -e "${GREEN}提示:请确保客户端和服务器的时间误差在90秒内${PLAIN}"
|
||||
echo -e "${GREEN} 如果无法连接,可以尝试重启V2Ray服务:${PLAIN}"
|
||||
echo -e "${GREEN} systemctl restart v2ray${PLAIN}"
|
||||
echo -e "${YELLOW}-----------------------------${PLAIN}"
|
||||
}
|
||||
|
||||
# 检查时间同步状态
|
||||
check_time_sync() {
|
||||
echo -e "${BLUE}检查系统时间同步状态...${PLAIN}"
|
||||
|
||||
# 显示当前时间
|
||||
current_time=$(date -R)
|
||||
echo -e "${YELLOW}当前系统时间: ${current_time}${PLAIN}"
|
||||
|
||||
# 尝试同步时间的多种方法
|
||||
echo -e "${BLUE}尝试同步系统时间...${PLAIN}"
|
||||
|
||||
# 方法1: 使用timedatectl(如果可用)
|
||||
if command -v timedatectl &> /dev/null; then
|
||||
timedatectl set-ntp true
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${YELLOW}timedatectl设置NTP失败,尝试其他方法${PLAIN}"
|
||||
else
|
||||
echo -e "${GREEN}已通过timedatectl启用时间同步${PLAIN}"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
# 方法2: 使用ntpd或chronyd(如果已安装)
|
||||
if command -v ntpd &> /dev/null; then
|
||||
if [ "$OS" == "centos" ]; then
|
||||
systemctl restart ntpd
|
||||
echo -e "${GREEN}已重启ntpd服务${PLAIN}"
|
||||
else
|
||||
systemctl restart ntp
|
||||
echo -e "${GREEN}已重启ntp服务${PLAIN}"
|
||||
fi
|
||||
return
|
||||
fi
|
||||
|
||||
if command -v chronyd &> /dev/null; then
|
||||
systemctl restart chronyd
|
||||
echo -e "${GREEN}已重启chronyd服务${PLAIN}"
|
||||
return
|
||||
fi
|
||||
|
||||
# 方法3: 手动使用ntpdate(如果已安装)
|
||||
if command -v ntpdate &> /dev/null; then
|
||||
echo -e "${BLUE}使用ntpdate手动同步时间...${PLAIN}"
|
||||
ntpdate -u time.google.com || ntpdate -u time.windows.com || ntpdate -u pool.ntp.org
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}时间同步成功${PLAIN}"
|
||||
else
|
||||
echo -e "${YELLOW}ntpdate同步失败${PLAIN}"
|
||||
fi
|
||||
return
|
||||
fi
|
||||
|
||||
# 方法4: 使用rdate(如果已安装)
|
||||
if command -v rdate &> /dev/null; then
|
||||
echo -e "${BLUE}使用rdate同步时间...${PLAIN}"
|
||||
rdate -s time-a.nist.gov || rdate -s time-b.nist.gov
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}时间同步成功${PLAIN}"
|
||||
else
|
||||
echo -e "${YELLOW}rdate同步失败${PLAIN}"
|
||||
fi
|
||||
return
|
||||
fi
|
||||
|
||||
# 如果以上方法都失败,尝试安装时间同步工具
|
||||
echo -e "${YELLOW}未找到可用的时间同步工具,尝试安装...${PLAIN}"
|
||||
if [ "$OS" == "centos" ]; then
|
||||
yum install -y ntpdate
|
||||
ntpdate -u pool.ntp.org
|
||||
else
|
||||
apt update
|
||||
apt install -y ntpdate
|
||||
ntpdate -u pool.ntp.org
|
||||
fi
|
||||
|
||||
# 最后提示用户
|
||||
echo -e "${YELLOW}重要提示: V2Ray要求服务器和客户端的时间差在90秒内${PLAIN}"
|
||||
echo -e "${YELLOW}请确保您的系统时间是准确的${PLAIN}"
|
||||
echo -e "${YELLOW}当前时间: $(date -R)${PLAIN}"
|
||||
}
|
||||
|
||||
# 更新V2Ray
|
||||
update_v2ray() {
|
||||
echo -e "${BLUE}正在更新V2Ray...${PLAIN}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user