7.4 KiB
7.4 KiB
EM Script Library
🚀 EM Script Library - Debian 12 系统部署优化脚本库
专为解决国内 Debian 12 系统部署时的各种配置问题而设计,提供一站式自动化配置解决方案。
📋 特性
- 🎯 专注 Debian 12 - 专门针对 Debian 12 优化
- 🌏 国内源支持 - 支持阿里云、清华、网易、中科大、华为云等多源
- 🔧 模块化设计 - 独立脚本,便于调试和维护
- ⚡ 自动化配置 - 一键执行完整配置流程
- 🔒 安全加固 - 内置安全配置和入侵检测
- 📊 状态监控 - 提供详细的配置状态检查
📁 目录结构
em-script/
├── em-setup.sh # 主入口脚本
├── scripts/
│ ├── sources/ # 国内源配置
│ │ └── configure_sources.sh
│ ├── packages/ # 包管理配置
│ │ └── configure_packages.sh
│ ├── system/ # 系统配置
│ │ └── configure_system.sh
│ ├── network/ # 网络优化
│ │ └── configure_network.sh
│ └── security/ # 安全配置
│ └── configure_security.sh
├── config/ # 配置文件目录
├── lib/ # 公共函数库
├── docs/ # 文档
└── tests/ # 测试脚本
🚀 快速开始
1. 下载脚本库
git clone https://github.com/your-repo/em-script.git
cd em-script
2. 给脚本执行权限
chmod +x em-setup.sh
chmod +x scripts/*/*.sh
3. 执行完整配置
sudo ./em-setup.sh all
📖 使用方法
主入口脚本
# 显示帮助信息
./em-setup.sh -h
# 执行完整配置
sudo ./em-setup.sh all
# 配置国内源
sudo ./em-setup.sh sources aliyun
# 配置系统
sudo ./em-setup.sh system
# 配置网络
sudo ./em-setup.sh network
# 配置安全
sudo ./em-setup.sh security
单独执行脚本
# 配置阿里云源
sudo ./scripts/sources/configure_sources.sh aliyun
# 安装基础工具
sudo ./scripts/packages/configure_packages.sh basic
# 配置时区
sudo ./scripts/system/configure_system.sh timezone
# 测试网络
sudo ./scripts/network/configure_network.sh network-test
# 配置防火墙
sudo ./scripts/security/configure_security.sh fail2ban
🔧 功能模块
📡 国内源配置 (sources)
- ✅ 阿里云镜像源
- ✅ 清华大学镜像源
- ✅ 网易镜像源
- ✅ 中科大镜像源
- ✅ 华为云镜像源
- ✅ 自动选择最快源
- ✅ 源配置备份恢复
# 配置阿里云源
sudo ./scripts/sources/configure_sources.sh aliyun
# 自动选择最快源
sudo ./scripts/sources/configure_sources.sh test
# 备份当前配置
sudo ./scripts/sources/configure_sources.sh backup
📦 包管理配置 (packages)
- ✅ apt 配置优化
- ✅ 基础工具安装
- ✅ 开发工具安装
- ✅ Docker CE 安装 (国内源)
- ✅ Docker 镜像加速器配置
- ✅ 网络工具安装
- ✅ 监控工具安装
- ✅ 包缓存清理
# 优化 apt 配置
sudo ./scripts/packages/configure_packages.sh optimize
# 从国内源安装 Docker CE
sudo ./scripts/packages/configure_packages.sh docker
# 或单独运行
sudo ./scripts/packages/install_docker.sh
# Docker 镜像加速器设置
sudo ./scripts/packages/setup_docker_mirrors.sh add aliyun # 添加阿里云镜像
sudo ./scripts/packages/setup_docker_mirrors.sh recommend # 设置推荐组合
sudo ./scripts/packages/setup_docker_mirrors.sh test # 测试镜像源速度
# 安装开发环境 (不含 Docker)
sudo ./scripts/packages/configure_packages.sh dev
# 查看包信息
sudo ./scripts/packages/configure_packages.sh info
⚙️ 系统配置 (system)
- ✅ 时区配置 (Asia/Shanghai)
- ✅ NTP 时间同步
- ✅ 语言环境配置
- ✅ 系统限制优化
- ✅ SSH 服务配置
- ✅ UFW 防火墙配置
- ✅ 日志轮转配置
# 配置时区和 NTP
sudo ./scripts/system/configure_system.sh timezone
# 配置防火墙
sudo ./scripts/system/configure_system.sh firewall
# 执行所有系统配置
sudo ./scripts/system/configure_system.sh all
🌐 网络优化 (network)
- ✅ DNS 配置 (国内 DNS)
- ✅ DNS 解析速度测试
- ✅ 网络接口配置
- ✅ 代理配置
- ✅ 网络连接测试
- ✅ IPv6 支持配置
# 配置国内 DNS
sudo ./scripts/network/configure_network.sh dns
# 测试网络连接
sudo ./scripts/network/configure_network.sh network-test
# 配置 HTTP 代理
sudo ./scripts/network/configure_network.sh proxy http 127.0.0.1 8080
# 查看网络信息
sudo ./scripts/network/configure_network.sh info
🔒 安全配置 (security)
- ✅ Fail2Ban 入侵检测
- ✅ 自动安全更新
- ✅ SSH 配置强化
- ✅ AppArmor 配置
- ✅ 内核安全参数
- ✅ ClamAV 杀毒软件
- ✅ sudo 安全策略
# 配置入侵检测
sudo ./scripts/security/configure_security.sh fail2ban
# 强化 SSH 配置
sudo ./scripts/security/configure_security.sh ssh-harden
# 查看安全状态
sudo ./scripts/security/configure_security.sh status
🔍 测试和验证
运行测试脚本
# 执行所有测试
bash tests/run_all_tests.sh
# 测试源配置
bash tests/test_sources.sh
# 测试网络连接
bash tests/test_network.sh
验证配置结果
# 检查源配置
cat /etc/apt/sources.list
# 检查 DNS 配置
cat /etc/resolv.conf
# 检查防火墙状态
ufw status
# 检查 SSH 配置
sshd -T | grep -E "(permitrootlogin|passwordauthentication)"
# 检查安全状态
sudo ./scripts/security/configure_security.sh status
📝 日志和调试
日志位置
- 系统日志:
/var/log/syslog - 认证日志:
/var/log/auth.log - apt 日志:
/var/log/apt/ - Fail2Ban 日志:
/var/log/fail2ban.log - 自定义日志:
/var/log/em-script/
调试模式
# 启用调试模式运行
sudo DEBUG=1 ./em-setup.sh sources
# 查看详细日志
tail -f /var/log/syslog
# 检查脚本执行状态
echo $?
🤝 贡献指南
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
⚠️ 注意事项
- 🔴 生产环境使用前请务必测试
- 🔴 建议在测试环境先验证配置
- 🔴 重要操作前请备份数据
- 🔴 定期更新系统和安全补丁
🆘 常见问题
Q: 配置失败怎么办?
A: 检查日志文件,常见问题:
- 网络连接问题
- 权限不足
- 依赖包缺失
Q: 如何回滚配置?
A: 大部分脚本都支持备份恢复:
# 恢复源配置
sudo ./scripts/sources/configure_sources.sh restore /path/to/backup
# 重新配置网络
sudo ./scripts/network/configure_network.sh interfaces
Q: 如何自定义配置?
A: 编辑对应的配置文件:
/etc/apt/sources.list- 源配置/etc/resolv.conf- DNS 配置/etc/ssh/sshd_config- SSH 配置
📞 联系我们
- 项目主页: GitHub
- 问题反馈: Issues
- 邮箱: your-email@example.com
⭐ 如果这个项目对你有帮助,请给它一个 Star!