这个脚本专门用于初始化和配置Ubuntu服务器的管理环境,包含系统级配置、安全加固、常用服务安装等功能。适用于新服务器的快速部署和现有服务器的管理优化。
sudo ./setup.shsudo ./setup.sh --help这个脚本专门提供服务器管理员级别的系统配置,需要root权限,适用于服务器初始化和管理优化。
- 源切换工具: chsrc 通用源切换工具,自动配置Ubuntu国内镜像源
- 系统安全加固: SSH强化配置、强制密钥认证、fail2ban防护 (适用于内网环境)
- 用户管理: 创建管理用户、配置sudo权限
- 常用服务: Docker、Nginx、监控工具安装
- 系统优化: 内核参数调优、自动更新配置
- 开发环境: Git、编译工具、Zsh、NFS、常用软件包 (不包含Python/Node.js)
- GPU支持: NVIDIA驱动、CUDA Toolkit、GPU监控工具 (可选)
- 监控工具: 实时系统监控和性能分析
setup.sh- 主入口脚本,服务器管理员配置
install_chsrc.sh- 安装 chsrc 源切换工具并配置Ubuntu源system_security.sh- 系统安全加固(SSH、防火墙、fail2ban)user_management.sh- 用户管理和权限配置install_dev_tools.sh- 开发工具包安装install_docker.sh- Docker 容器平台安装install_nginx.sh- Nginx Web服务器安装install_monitoring.sh- 系统监控工具安装install_gpu_drivers.sh- NVIDIA驱动和CUDA安装system_optimization.sh- 系统性能优化
ssh/- SSH 配置模板nginx/- Nginx 配置模板firewall/- 防火墙规则模板 (仅供参考)monitoring/- 监控配置模板
# 进入脚本目录
cd easy-admin
# 给所有脚本添加执行权限
chmod +x setup.sh
chmod +x scripts/*.sh
# 运行服务器管理员配置 (需要root权限)
sudo ./setup.shsudo ./setup.sh --help如果需要单独执行某个配置步骤:
# 安装chsrc源切换工具
sudo ./scripts/install_chsrc.sh
# 系统安全加固
sudo ./scripts/system_security.sh
# 用户管理配置
sudo ./scripts/user_management.sh
# 安装开发工具
sudo ./scripts/install_dev_tools.sh
# 安装Docker
sudo ./scripts/install_docker.sh
# 安装Nginx
sudo ./scripts/install_nginx.sh
# 系统监控工具
sudo ./scripts/install_monitoring.sh
# GPU驱动和CUDA (可选)
sudo ./scripts/install_gpu_drivers.sh
# 系统性能优化
sudo ./scripts/system_optimization.sh- chsrc 安装: 安装通用源切换工具到 /usr/local/bin
- Ubuntu源配置: 自动切换Ubuntu系统源到国内镜像
- 软件包更新: 自动更新软件包列表
- 备份保护: 自动备份原始sources.list文件
- SSH 配置: 禁用root登录,强制公钥认证,清理默认配置
- 密码认证: 完全禁用密码认证,仅允许密钥认证
- fail2ban 安装: 防止暴力破解攻击
- 内网优化: 跳过防火墙配置,适用于内网环境
- 创建管理用户: 创建具有sudo权限的管理账户
- 权限配置: 配置sudoers文件
- SSH密钥认证: 配置公钥认证
- 基础工具: Git、编译工具链、常用软件包
- Shell环境: Zsh及相关插件(autosuggestions, syntax-highlighting)
- 编程语言: Python3、Node.js等
- 现代CLI工具: exa、bat、fd、ripgrep等
- 数据库客户端: MySQL、PostgreSQL、Redis等
- 网络文件系统: NFS服务器和客户端,包含管理工具
- Docker 安装: Docker Engine 和 Docker Compose
- 配置优化: Docker daemon 配置和优化
- 用户权限: 配置非root用户使用Docker
- Nginx 安装: Web服务器和反向代理
- 配置优化: 性能优化和安全配置
- SSL支持: Let's Encrypt证书支持
- 基础监控: htop、iotop、nethogs等系统监控工具
- 实时监控: Netdata实时监控面板
- 指标收集: Prometheus Node Exporter
- 自定义脚本: 系统状态和性能监控脚本
- NVIDIA驱动: 自动检测并安装最新推荐版本
- CUDA Toolkit: 安装CUDA 12.3开发环境
- Docker GPU: 配置Docker GPU容器支持
- 监控工具: GPU状态监控和测试工具
- Python工具: gpustat、nvitop等GPU监控工具
- 内核参数: 内存、网络、文件系统优化
- 系统限制: 文件描述符、进程数限制优化
- I/O调度器: 根据磁盘类型自动优化
- 性能调优: CPU性能模式和内存管理优化
由于脚本被拆分为多个子脚本,您可以轻松修改特定步骤:
- chsrc工具配置: 编辑
install_chsrc.sh调整安装方式或版本 - 修改安全配置: 编辑
system_security.sh调整SSH和防火墙规则 - 自定义用户管理: 编辑
user_management.sh修改用户创建逻辑 - 调整开发工具: 修改
install_dev_tools.sh选择需要的工具、Shell环境和NFS配置 (Python/Node.js已移除) - 调整Docker配置: 修改
install_docker.sh更改Docker版本或配置 - 自定义Nginx: 编辑
install_nginx.sh和模板文件 - 监控工具选择: 修改
install_monitoring.sh选择不同的监控工具 - GPU配置: 修改
install_gpu_drivers.sh调整CUDA版本或驱动版本 - 性能优化参数: 编辑
system_optimization.sh调整优化参数
- SSH配置: 编辑
templates/ssh/中的SSH配置模板 - Nginx配置: 编辑
templates/nginx/中的站点配置模板 - 防火墙规则: 编辑
templates/firewall/中的防火墙规则模板 (仅供参考,内网版本未使用) - 监控配置: 编辑
templates/monitoring/中的监控服务配置
- 跳过步骤: 直接注释掉主脚本中对应的子脚本调用
- 调整顺序: 修改主脚本中子脚本的执行顺序
- 条件执行: 添加条件判断,根据需要执行特定步骤
网络连接问题:
# 如果下载失败,检查网络连接
curl -I https://download.docker.com
curl -I https://nginx.org
curl -I https://github.com权限问题:
- 脚本需要root权限或sudo权限
- 确保使用
sudo ./setup.sh运行脚本 - 检查用户是否在sudoers文件中
服务启动问题:
# 检查服务状态
systemctl status docker
systemctl status nginx
systemctl status netdata
# 查看服务日志
journalctl -u docker
journalctl -u nginx网络访问问题:
# 检查端口是否被监听
netstat -tlnp | grep :80
netstat -tlnp | grep :443
# 检查服务状态
systemctl status nginx
systemctl status docker如果某个步骤失败:
- 查看具体的错误信息
- 可以单独运行失败的子脚本进行调试
- 检查网络连接和磁盘空间
- 使用
./setup.sh --help查看帮助信息
如果需要完全重新开始:
# 停止相关服务
sudo systemctl stop docker nginx netdata fail2ban
# 卸载软件包 (谨慎操作)
sudo apt remove --purge docker-ce docker-ce-cli containerd.io
sudo apt remove --purge nginx
sudo apt remove --purge netdata
sudo apt remove --purge fail2ban
# 删除配置文件 (备份重要数据)
sudo rm -rf /etc/docker
sudo rm -rf /etc/nginx
sudo rm -rf /etc/netdata
# 重新运行配置脚本
sudo ./setup.sh