在设置、加固或审查用于自托管的云服务器时使用,包括DNS、SSH、防火墙、Nginx、静态站点托管、应用反向代理、使用Let's Encrypt或ACME客户端的HTTPS、安全的HTTP到HTTPS重定向,或可选的启动后网络调优(如BBR)。
概述
使用此技能将云服务器转变为可安全访问的Web主机,而不依赖过时的特定发行版记忆或陈旧的Debian-10时代教程。
此技能保留了初学者友好型服务器指南中熟悉的教学脉络,但将其转化为可重用的操作工作流:
- 输入与路由
- 前置条件
- 安全访问
- 防火墙与暴露
- Web服务器设置
- 静态站点或应用代理
- HTTPS
- 验证
- 可选的高级调优
在给出可操作命令之前,先识别发行版系列,并根据用户发行版和所选工具的官方文档验证当前包名、服务单元、配置路径和ACME客户端指南。
首先打开references/workflow-map.md了解阶段顺序,然后打开所需的更具体的参考文件。
使用时机
当用户提到以下任何内容时使用此技能:
- 云服务器、虚拟机、Droplet或其他用于托管的Linux主机
- 将域名或DNS A/AAAA记录连接到服务器
- SSH登录、SSH加固、root登录、密钥、端口或防火墙设置
- 安装或配置Nginx用于网站
- 从Linux提供简单静态站点
- 将小型应用放在Nginx后面作为反向代理
- HTTPS、Let's Encrypt、Certbot、
acme.sh、证书续期或HTTP重定向到HTTPS - 可选的设置后性能或网络调优,如BBR
不要将此技能用于:
- Kubernetes、PaaS或完整的容器编排器部署设计
- 特定应用的构建或CI/CD问题,其中Linux托管不是实际问题
- Windows或macOS主机管理
- 需要更广泛的SRE或平台设计处理的公共多租户生产架构审查
工作流
1. 输入并分类当前状态
首先识别:
- 发行版系列或镜像名称
- 用户是否拥有root访问权限、管理员用户,或只有一个活动的SSH会话
- DNS是否已指向主机
- 目标是静态站点还是应用反向代理
- 端口是否已暴露
- HTTPS是否已部分配置
如果发行版未知,请询问用户或让用户检查/etc/os-release,然后再给出具体的包或服务命令。
2. 在给出可操作命令前验证当前文档
使用捆绑的参考文件进行路由,然后在给出依赖于当前发行版行为的命令之前,根据实时官方文档验证细节。
始终验证:
- 包管理器命令和包名
- 防火墙工具和服务名
- SSH服务单元名和配置包含路径
- Nginx包和配置布局
- 所选ACME客户端的当前说明
如果无法验证某个细节,请说明并给出高级指导,而不是假装旧的Debian教程路径是通用的。
3. 保持阶段顺序
除非用户明确要求审查或修复现有设置,否则按以下顺序进行阶段:
- 前置条件
- 安全访问
- 防火墙与暴露
- Web服务器
- 选择一个托管分支:静态站点或应用代理
- HTTPS
- 验证
- 可选的高级调优
不要将静态站点分支和反向代理分支合并为一个默认答案。选择与用户目标匹配的分支。
4. 强制执行安全门控
将这些视为硬性停止检查:
- 在第二个SSH会话中基于密钥的登录正常工作之前,不要建议更改SSH端口、禁用密码认证或禁用root SSH登录。
- 在DNS解析到目标主机且HTTP站点或代理路径按预期工作之前,不要建议证书颁发。
- 在HTTPS正常加载之前,不要强制HTTP到HTTPS重定向。
- 在安全托管已经正常工作之前,不要建议BBR或类似调优。
始终区分:
- 本地机器操作:SSH、DNS检查、浏览器测试
- 服务器操作:包安装、配置编辑、服务重载、防火墙规则
输出期望
对于全新设置,提供:
- 当前状态的简要诊断
- 当前阶段及其原因
- 本地机器步骤与服务器步骤分开
- 仅在文档验证后给出具体命令或配置片段
- 每次风险更改后的验证步骤
- 一个简短的“如果失败,检查X”分支,针对该阶段可能的错误
对于加固或故障排除审查,提供:
- 首先列出最可能的风险或故障
- 优先级的修复顺序
- 在下一次配置更改之前的第一个安全验证步骤
常见错误
- 将旧文章中的Debian特定命令视为Linux通用
- 在唯一活动会话中加固SSH,导致用户被锁定
- 直接开放应用端口,而不是将应用保留在回环地址上
- 在一个配置中混合静态文件托管指导和反向代理指导
- 在DNS或HTTP实际正确之前尝试ACME颁发
- 在HTTPS验证之前强制重定向
- 将BBR视为核心设置的一部分,而不是可选的后续步骤
- 忽略SELinux或AppArmor差异,导致Nginx在一个发行版上能读取文件而在另一个上不能
参考文件使用
使用references/workflow-map.md获取阶段映射、分支逻辑和验证顺序。
当发行版系列、包管理器、防火墙工具或配置布局重要时,使用references/distro-routing.md。
当用户需要静态站点分支或反向代理分支时,使用references/nginx-patterns.md。
使用references/security-and-tls.md获取SSH加固顺序、防火墙策略、证书颁发、续期和重定向时机。






