CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
DevOps 网络与邮件/课时/综合练习
RawBlame
课时目录12 节

DevOps 网络与邮件

  1. 01网络与运维基础
  2. 02OSI 与分层
  3. 03SSH 远程管理
  4. 04FTP 与 SFTP
  5. 05SMTP 发信
  6. 06IMAP 与 POP3
  7. 07邮件认证
  8. 08编辑器与文本处理
  9. 09版本控制回顾
  10. 10编程语言选型
  11. 11邮件运维排障
  12. 12综合练习

综合练习

配置 SPF/DMARC + SSH hardened 清单。

40 分钟

综合练习:网络与邮件运维实战

本课串联本 track 全部能力:SSH 登录 → 编辑配置 → Git 管理 → 脚本自动化 → SMTP/IMAP 测试 → DNS 认证验证。建议在 staging 虚拟机完成;涉及 networking-essentials、linux-essentials、git-essentials、dns-essentials 的对应课时作为前置。

学习目标

  • 独立完成 「部署可发可信邮件的应用环境」 最小闭环
  • 用分层思维(OSI)排障一次真实的邮件投递失败
  • 输出可交付的 运维 runbook(Markdown,进 Git)

实验环境

组件建议
虚拟机1 台 Linux(Ubuntu 22.04+),公网 IP 或端口转发
域名staging.example.com 子域,DNS 可控
工具SSH 密钥、Git、swaks、dig、Vim/Nano
可选SendGrid/SES 免费 tier 作 relay
你的电脑 ──SSH:22──► staging 服务器
              ├── Postfix :587
              ├── Dovecot :993
              └── Nginx :443(反向代理 / 健康页)

任务一:SSH 与基础加固(dnm-ssh)

  • 生成 ED25519 密钥,ssh-copy-id 免密登录
  • 禁用密码登录、禁止 root SSH(保留备用会话)
  • 配置 ~/.ssh/config Host 别名 staging

验收:ssh staging 一键登录;/etc/ssh/sshd_config 中 PasswordAuthentication no。

任务二:配置版本化(dnm-vcs + dnm-editors)

  • 创建 infra-staging Git 仓库
  • 纳入 postfix/main.cf、scripts/check-mail-ports.sh
  • 用 Vim 或 Nano 修改配置,commit 信息符合 git-essentials 规范

验收:git log --oneline 至少 3 条有意义 commit;git diff 可追踪配置变更。

任务三:邮件协议与认证(dnm-smtp / dnm-imap / dnm-auth-mail)

  • 安装 Postfix + Dovecot,配置 relay 或本地发信
  • DNS 添加 MX、SPF、DKIM、DMARC(dns-essentials)
  • swaks 发测试信;openssl s_client 测 IMAP 993
  • mail-tester.com 得分 ≥ 8/10

验收:外域邮箱(Gmail/QQ)收件箱收到测试信,非垃圾箱。

任务四:脚本与定时任务(dnm-programming)

  • 编写 check-mail-ports.sh(25/587/993,失败 exit 1)
  • 编写 check-dns-mail.sh(dig SPF + DMARC)
  • 添加 cron:每日备份 Postfix 配置与 Maildir
# 示例 cron
0 3 * * * /opt/infra/scripts/backup-mail.sh
*/10 * * * * /opt/infra/scripts/check-mail-ports.sh || logger "MAIL PORT CHECK FAILED"

验收:故意停 dovecot,脚本应失败;恢复后通过。

任务五:分层排障(dnm-osi)

模拟故障:邮件发不出。按 OSI 自下而上排查并记录:

# L3
ping mail.staging.example.com
# L4
nc -zv localhost 587
# L6
openssl s_client -connect localhost:587 -starttls smtp
# L7
swaks --to test@example.com --server localhost:587 --tls
# DNS
dig MX staging.example.com +short
dig TXT staging.example.com +short
# 日志
journalctl -u postfix --since "10 min ago"

交付:runbook 中「邮件发不出」章节,含 5 步 checklist 与常见根因。

Runbook 模板

# staging 邮件运维 Runbook

## 架构
(贴架构图)

## 日常巡检
- [ ] mailq 为空或 < 10
- [ ] check-mail-ports.sh
- [ ] 证书 expiry > 30 天

## 故障:发信失败
1. ...
2. ...

## 回滚
git checkout <tag> && ./scripts/deploy.sh

提交到 infra-staging 仓库 docs/runbook.md。

扩展挑战(可选)

  • SFTP 部署静态页到 Nginx,HTTPS 用 Let's Encrypt
  • 用 Python 写 SMTP 探测并接入 cron 告警邮件
  • 对比 FTP vs SFTP 传 deploy 包,写 200 字选型说明(dnm-ftp)

小结

综合练习 = SSH 加固 + Git 管配置 + 邮件栈 + DNS 认证 + 脚本巡检 + 分层排障 runbook。 完成后你具备 DevOps 网络与邮件方向的 staging 级落地能力。回顾本 track:dnm-intro 能力地图。

加载本节练习…
← 上一课邮件运维排障