Update xu
This commit is contained in:
202
xu
202
xu
@@ -3,7 +3,7 @@
|
||||
# x-ui 多架构自动安装脚本
|
||||
# 支持: amd64, 386, arm64, armv5, armv6, armv7, s390x
|
||||
# 默认配置: 端口 8443, 账号 3344, 密码 3344
|
||||
# 咸v咆哮制作 - 一键搞定所有架构!
|
||||
# 咸鱼咆哮制作 - 一键搞定所有架构!
|
||||
|
||||
set -e # 遇到错误立即退出
|
||||
|
||||
@@ -63,22 +63,22 @@ show_banner() {
|
||||
echo -e "║ ║"
|
||||
echo -e "║ ${GREEN}📦 支持所有主流CPU架构 ${RED} ║"
|
||||
echo -e "║ ${BLUE}⚡ 自动检测 + 自动配置 ${RED} ║"
|
||||
echo -e "║ ${PURPLE}🎯 咸v咆哮制作 - 专治各种不服! ${RED} ║"
|
||||
echo -e "║ ${PURPLE}🎯 咸鱼咆哮制作 ${RED} ║"
|
||||
echo -e "║ ║"
|
||||
echo -e "${RED}╚════════════════════════════════════════╝"
|
||||
echo -e "${NC}"
|
||||
}
|
||||
|
||||
# 显示咆哮信息
|
||||
show_roar() {
|
||||
# 显示制作信息
|
||||
show_creator() {
|
||||
echo
|
||||
echo -e "${RED}╔══════════════════════════════════════════════════╗"
|
||||
echo -e "║ ║"
|
||||
echo -e "║ ${YELLOW}🔥 咸v咆哮宣言:${RED} ║"
|
||||
echo -e "║ ${YELLOW}🔥 咸鱼咆哮宣言:${RED} ║"
|
||||
echo -e "║ ║"
|
||||
echo -e "║ ${GREEN}「管你什么架构,老子一键搞定!」${RED} ║"
|
||||
echo -e "║ ${CYAN}「AMD、Intel、ARM、IBM... 通通拿下!」${RED} ║"
|
||||
echo -e "║ ${PURPLE}「拒绝复杂操作,只要简单粗暴!」${RED} ║"
|
||||
echo -e "║ ${GREEN}「多架构支持,智能适配!」${RED} ║"
|
||||
echo -e "║ ${CYAN}「一键配置,省心省力!」${RED} ║"
|
||||
echo -e "║ ${PURPLE}「有问题就反馈,持续改进!」${RED} ║"
|
||||
echo -e "║ ║"
|
||||
echo -e "${RED}╚══════════════════════════════════════════════════╝"
|
||||
echo -e "${NC}"
|
||||
@@ -289,48 +289,115 @@ EOF
|
||||
info "✅ 系统服务配置完成"
|
||||
}
|
||||
|
||||
# 自定义配置面板
|
||||
customize_panel() {
|
||||
step "🎛️ 开始自定义配置面板..."
|
||||
# 使用x-ui命令修改配置(修复版)
|
||||
modify_panel_config() {
|
||||
step "🎛️ 开始修改面板配置..."
|
||||
|
||||
# 停止服务以进行配置
|
||||
info "🛑 停止 x-ui 服务进行配置..."
|
||||
# 等待服务启动
|
||||
info "⏳ 等待服务启动..."
|
||||
systemctl start x-ui 2>/dev/null || true
|
||||
sleep 8
|
||||
|
||||
# 检查服务状态
|
||||
if ! systemctl is-active --quiet x-ui; then
|
||||
warn "⚠ 服务未运行,尝试启动..."
|
||||
systemctl start x-ui
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
# 修改端口
|
||||
info "🔧 修改面板端口为: $PANEL_PORT"
|
||||
if command -v x-ui >/dev/null 2>&1; then
|
||||
# 使用expect自动交互修改端口
|
||||
if command -v expect >/dev/null 2>&1; then
|
||||
expect << EOF
|
||||
spawn x-ui
|
||||
expect "Please enter your selection"
|
||||
send "9\r"
|
||||
expect "Enter port number"
|
||||
send "$PANEL_PORT\r"
|
||||
expect "Restart the panel"
|
||||
send "y\r"
|
||||
expect "Press enter to return"
|
||||
send "\r"
|
||||
expect eof
|
||||
EOF
|
||||
info "✅ 端口修改完成"
|
||||
else
|
||||
warn "⚠ 未安装expect,无法自动修改端口"
|
||||
info "💡 请手动运行 'x-ui' 选择 9 修改端口为 $PANEL_PORT"
|
||||
fi
|
||||
|
||||
sleep 3
|
||||
|
||||
# 修改用户名和密码
|
||||
info "👤 修改用户名和密码为: $PANEL_USERNAME/$PANEL_PASSWORD"
|
||||
if command -v expect >/dev/null 2>&1; then
|
||||
expect << EOF
|
||||
spawn x-ui
|
||||
expect "Please enter your selection"
|
||||
send "6\r"
|
||||
expect "Are you sure to reset"
|
||||
send "y\r"
|
||||
expect "Please set the login username"
|
||||
send "$PANEL_USERNAME\r"
|
||||
expect "Please set the login password"
|
||||
send "$PANEL_PASSWORD\r"
|
||||
expect "Do you want to disable currently configured two-factor authentication"
|
||||
send "y\r"
|
||||
expect "Restart the panel"
|
||||
send "y\r"
|
||||
expect "Press enter to return"
|
||||
send "\r"
|
||||
expect eof
|
||||
EOF
|
||||
info "✅ 账号密码修改完成"
|
||||
else
|
||||
warn "⚠ 未安装expect,无法自动修改账号密码"
|
||||
info "💡 请手动运行 'x-ui' 选择 6 修改账号密码"
|
||||
fi
|
||||
else
|
||||
error "❌ x-ui 命令未找到,无法自动配置"
|
||||
info "💡 请手动运行配置命令"
|
||||
fi
|
||||
}
|
||||
|
||||
# 直接修改数据库配置(备用方案)
|
||||
direct_db_config() {
|
||||
step "🗃️ 尝试直接修改数据库配置..."
|
||||
|
||||
# 停止服务
|
||||
systemctl stop x-ui 2>/dev/null || true
|
||||
|
||||
# 等待服务停止
|
||||
sleep 3
|
||||
|
||||
# 创建数据库目录
|
||||
mkdir -p /etc/x-ui/
|
||||
|
||||
# 初始化数据库(如果不存在)
|
||||
if [ ! -f "/etc/x-ui/x-ui.db" ]; then
|
||||
info "🗃️ 初始化数据库..."
|
||||
|
||||
# 启动服务以创建初始数据库
|
||||
if systemctl start x-ui; then
|
||||
sleep 5
|
||||
systemctl stop x-ui
|
||||
sleep 3
|
||||
else
|
||||
warn "⚠ 服务启动失败,尝试直接创建数据库结构"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 修改配置(如果数据库存在且可写)
|
||||
# 检查数据库文件
|
||||
if [ -f "/etc/x-ui/x-ui.db" ] && command -v sqlite3 >/dev/null 2>&1; then
|
||||
cyan "🔧 设置面板端口: $PANEL_PORT"
|
||||
sqlite3 /etc/x-ui/x-ui.db "UPDATE setting SET value = '$PANEL_PORT' WHERE key = 'port';" 2>/dev/null || true
|
||||
info "🔧 直接修改数据库配置..."
|
||||
|
||||
cyan "👤 设置面板账号: $PANEL_USERNAME"
|
||||
cyan "🔑 设置面板密码: $PANEL_PASSWORD"
|
||||
sqlite3 /etc/x-ui/x-ui.db "UPDATE users SET username = '$PANEL_USERNAME', password = '$PANEL_PASSWORD' WHERE id = 1;" 2>/dev/null || true
|
||||
# 修改端口
|
||||
if sqlite3 /etc/x-ui/x-ui.db "UPDATE setting SET value = '$PANEL_PORT' WHERE key = 'port';"; then
|
||||
info "✅ 端口修改为: $PANEL_PORT"
|
||||
else
|
||||
warn "⚠ 端口修改失败"
|
||||
fi
|
||||
|
||||
# 修改用户名密码
|
||||
if sqlite3 /etc/x-ui/x-ui.db "UPDATE users SET username = '$PANEL_USERNAME', password = '$PANEL_PASSWORD' WHERE id = 1;"; then
|
||||
info "✅ 账号修改为: $PANEL_USERNAME"
|
||||
info "✅ 密码修改为: $PANEL_PASSWORD"
|
||||
else
|
||||
warn "⚠ 账号密码修改失败"
|
||||
fi
|
||||
|
||||
# 禁用默认凭据警告
|
||||
sqlite3 /etc/x-ui/x-ui.db "UPDATE setting SET value = 'false' WHERE key = 'hasDefaultCredential';" 2>/dev/null || true
|
||||
info "✅ 自定义配置完成"
|
||||
else
|
||||
warn "⚠ 无法自动配置数据库,请在安装后手动修改配置"
|
||||
warn "⚠ 无法直接修改数据库,将使用交互式配置"
|
||||
fi
|
||||
|
||||
# 重启服务
|
||||
systemctl start x-ui
|
||||
sleep 5
|
||||
}
|
||||
|
||||
# 配置防火墙
|
||||
@@ -371,28 +438,23 @@ start_service() {
|
||||
systemctl daemon-reload
|
||||
systemctl enable x-ui
|
||||
|
||||
# 启动服务
|
||||
if systemctl start x-ui; then
|
||||
info "✅ x-ui 服务启动命令执行成功"
|
||||
# 重启服务确保配置生效
|
||||
if systemctl restart x-ui; then
|
||||
info "✅ x-ui 服务重启成功"
|
||||
else
|
||||
error "❌ x-ui 服务启动失败"
|
||||
error "❌ x-ui 服务重启失败"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# 等待服务启动
|
||||
sleep 5
|
||||
sleep 8
|
||||
|
||||
# 检查服务状态
|
||||
if systemctl is-active --quiet x-ui; then
|
||||
info "✅ x-ui 服务运行正常"
|
||||
|
||||
# 显示服务状态
|
||||
echo
|
||||
systemctl status x-ui --no-pager -l
|
||||
else
|
||||
warn "⚠ x-ui 服务未运行,检查日志中..."
|
||||
systemctl status x-ui --no-pager -l
|
||||
warn "💡 尝试手动启动: systemctl start x-ui"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -404,7 +466,7 @@ verify_installation() {
|
||||
if systemctl is-active --quiet x-ui; then
|
||||
info "✅ 服务运行正常"
|
||||
else
|
||||
warn "⚠ 服务未运行,但安装已完成"
|
||||
warn "⚠ 服务未运行"
|
||||
return 0
|
||||
fi
|
||||
|
||||
@@ -423,6 +485,12 @@ verify_installation() {
|
||||
fi
|
||||
fi
|
||||
|
||||
# 显示最终配置
|
||||
info "📋 最终配置验证:"
|
||||
if command -v x-ui >/dev/null 2>&1; then
|
||||
echo "n" | x-ui | grep -A 10 "View Current Settings" || true
|
||||
fi
|
||||
|
||||
info "✅ 验证完成"
|
||||
}
|
||||
|
||||
@@ -434,7 +502,7 @@ show_info() {
|
||||
echo
|
||||
echo -e "${GREEN}╔══════════════════════════════════════════════════╗"
|
||||
echo -e "║ ║"
|
||||
echo -e "║ 🎉 X-UI 多架构安装完成!咸v咆哮牛逼! ║"
|
||||
echo -e "║ 🎉 X-UI 多架构安装完成!咸v咆哮制作! ║"
|
||||
echo -e "║ ║"
|
||||
echo -e "╚══════════════════════════════════════════════════╝${NC}"
|
||||
echo
|
||||
@@ -443,9 +511,9 @@ show_info() {
|
||||
info "👤 用户名: $PANEL_USERNAME"
|
||||
info "🔑 密码: $PANEL_PASSWORD"
|
||||
echo
|
||||
cyan "💡 面板状态: 已自动配置为指定端口和账号"
|
||||
cyan "💡 配置状态: 已自动设置端口和账号密码"
|
||||
echo
|
||||
warn "⚠️ 重要安全提醒:"
|
||||
warn "⚠️ 重要提醒:"
|
||||
warn "1. 请立即访问面板验证登录"
|
||||
warn "2. 建议定期修改密码"
|
||||
warn "3. 确保防火墙已正确配置"
|
||||
@@ -487,10 +555,28 @@ show_arch_info() {
|
||||
echo
|
||||
}
|
||||
|
||||
# 安装expect工具
|
||||
install_expect() {
|
||||
if ! command -v expect >/dev/null 2>&1; then
|
||||
info "📦 安装 expect 工具用于自动配置..."
|
||||
if command -v apt-get >/dev/null 2>&1; then
|
||||
apt-get install -y expect
|
||||
elif command -v yum >/dev/null 2>&1; then
|
||||
yum install -y expect
|
||||
elif command -v dnf >/dev/null 2>&1; then
|
||||
dnf install -y expect
|
||||
elif command -v apk >/dev/null 2>&1; then
|
||||
apk add expect
|
||||
else
|
||||
warn "⚠ 无法安装expect,将使用备用配置方案"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# 主函数
|
||||
main() {
|
||||
show_banner
|
||||
show_roar
|
||||
show_creator
|
||||
|
||||
info "🚀 开始 x-ui 多架构自动安装..."
|
||||
show_arch_info
|
||||
@@ -500,10 +586,12 @@ main() {
|
||||
detect_architecture
|
||||
build_download_url
|
||||
install_dependencies
|
||||
install_expect
|
||||
download_xui
|
||||
extract_and_install
|
||||
setup_service
|
||||
customize_panel
|
||||
direct_db_config # 先尝试直接修改数据库
|
||||
modify_panel_config # 再使用交互式配置确保生效
|
||||
setup_firewall
|
||||
start_service
|
||||
verify_installation
|
||||
@@ -513,7 +601,7 @@ main() {
|
||||
echo -e "${RED}╔════════════════════════════════════════╗"
|
||||
echo -e "║ ║"
|
||||
echo -e "║ ${YELLOW}🎊 安装完成!咸v咆哮感谢使用!${RED} ║"
|
||||
echo -e "║ ${GREEN}💪 有問題就咆哮,老子帮你搞定!${RED} ║"
|
||||
echo -e "║ ${GREEN}🐟 不想上班不想上班!${RED} ║"
|
||||
echo -e "║ ║"
|
||||
echo -e "${RED}╚════════════════════════════════════════╝${NC}"
|
||||
echo
|
||||
|
||||
Reference in New Issue
Block a user