1. 命令行与文件系统#
必须掌握:当前位置、绝对/相对路径、列出/创建/复制/移动文件、查看文本、搜索、管道与重定向的概念。
常用工具:pwd、ls、cd、mkdir、cp、mv、less、head、tail、find、rg/grep、man。不要背所有参数;掌握常用操作和查帮助的方法。
安全原则#
- 看懂命令目标后再运行,尤其是带管理员权限或递归删除的命令;
- 不用 root 账号运行网站应用;
- 修改配置前做带日期的备份;
- 不把数据库和应用内部端口全部暴露到公网;
- 私钥只能自己保管,不粘贴到聊天、截图或代码仓库。
2. 用户、权限与软件#
用户/组、文件的读写执行权限、所有者、sudo、最小权限。 软件仓库、安装/更新/卸载、定期安全更新。 重点理解:sudo 是临时提升权限,不是“报错就加 sudo”。权限错误应先确认文件所有者和程序所需权限。
3. 进程、服务与日志#
进程、PID、前台/后台、端口监听;知道如何查看、停止和重启服务。 systemd 服务的启动、状态、开机自启;用日志查失败原因。 CPU、内存、磁盘空间的基本观察。
必须能排查:程序未启动、启动后立即退出、端口被占用、权限不足、磁盘满、环境变量缺失。
4. 网络与 SSH#
IP、子网的基本直觉;端口;TCP;DNS;HTTP/HTTPS。 用 SSH 密钥登录;了解主机指纹;文件传输。 防火墙只开放所需端口:通常 SSH、HTTP、HTTPS。 SSH 安全:普通用户、密钥认证、限制 root 登录、及时更新。
从浏览器到应用的路径#
域名 → DNS 得到公网 IP → 防火墙允许 443 → Nginx 完成 TLS
→ 反向代理到 127.0.0.1:3000 → Express 路由 → SQL → PostgreSQL
→ JSON 响应沿原路返回5. 服务器故障排查顺序#
- 域名是否解析到正确 IP;
- 云平台安全组和主机防火墙是否放行;
- Nginx 是否运行、配置测试是否通过;
- 后端是否运行并监听预期地址/端口;
- Nginx 能否在服务器本机访问后端;
- 后端能否连接数据库;
- 查看 Nginx、应用、数据库日志中的同一时间点;
- 检查磁盘、内存、证书有效期和环境变量。
不要一上来重装系统。每次只改变一个变量,改变后立即验证。
必做实验#
- 创建普通部署用户,并解释它拥有哪些权限。
- 使用 SSH 密钥登录练习服务器。
- 启动一个监听 3000 端口的 Node.js 服务。
- 找到该进程、查看日志、停止并重新启动。
- 配置防火墙,只保留需要的入口。
- 写一个
systemd服务,令应用重启后自动运行。 - 模拟端口冲突、配置错误、磁盘空间不足,记录诊断过程。
阶段验收#
给自己一台新 Ubuntu 环境,在不跟视频逐字操作的情况下:建立用户 → 更新系统 → 配置 SSH → 运行 Web 服务 → 配置防火墙 → 查看日志。每一步都能解释目的和潜在风险。