运维2(权限 · 网络 · 防火墙 · Nginx —— 一次完整的入门实战记录)

1 阅读4分钟

好的,这是一份为你定制的《运维入门实战完全手册》。这份总结不是简单的命令罗列,而是把你这段时间亲手敲过的命令、踩过的坑、以及解决问题的思路串成了一条完整的“运维思维链”。

建议你把它保存下来,作为你的“武林秘籍”。


第一部分:核心命令“字典” (你亲手用过的)

命令常用参数/组合你是为了解决什么问题一句话记住它
free -h-h 人类可读服务器卡死了,想看内存还剩多少。看内存总量和可用量 (available)。
ps aux--sort=-%mem怀疑有进程在挖矿或吃内存。找出那个占用内存/CPU最高的“捣蛋鬼”。
kill -9 PID进程杀不死,需要强制终止。“物理删除”进程(慎用,会丢数据)。
systemctlstatus, stop, start, enable, disable发现 kill -9 没用,进程又复活了。管理服务的终极工具stop 是暂停,disable 是取消开机自启。
chmod700 (数字法), u+x (字母法)写了个脚本 ./xxx.sh 报错 Permission denied给文件赋予读(r)、写(w)、执行(x)的权限。
chown-R (递归)Nginx 报 403,读不到 /var/www/html 的文件。把文件夹的“老板”换成 Nginx 的 www-data 用户。
tcpdump-i any -nn -c 10 -A port 80想看 HTTP 请求和 TCP 三次握手的过程。抓包看“网络里到底在传什么”。
ss -tlnp配置完 Nginx,但浏览器打不开。检查某个端口(如 80)到底有没有服务在监听。
tail -f/var/log/nginx/error.logNginx 报 502/500,不知道哪里错了。实时看日志,动态追踪错误。
ufwallow 22/tcp, enable开启防火墙怕把自己踢出去。先放行 SSH,再开墙,顺序千万别反。

第二部分:项目复盘《从零部署第一个网站》

项目目标

在一台全新的 Ubuntu 服务器上,通过 Nginx 部署一个静态 HTML 页面,并能通过公网 IP 访问。

关键过程与踩坑记录

步骤 1:创建网页文件

  • 操作vim /var/www/html/index.html,写入 HTML 代码。
  • ⚠️ 踩坑:直接复制 HTML 时,如果不小心按了 Ctrl+S 会卡住。解决办法:按 Ctrl+Q 解锁,或者用 cat > index.html << EOF 的方式写入。

步骤 2:解决 403 Forbidden (权限错误)

  • 现象curl localhost 报错 403,或者浏览器访问显示 Forbidden
  • 思考:Nginx 进程是 www-data 用户跑的,而文件属主是 root,Nginx 读不了。
  • 🛠️ 解决chown -R www-data:www-data /var/www/html/chmod 644 /var/www/html/index.html

步骤 3:处理 “No such file or directory” (符号链接)

  • 现象:明明 nginx -t 显示 syntax is ok,但 ss -tlnp 却看不到 80 端口监听。
  • 原因/etc/nginx/sites-enabled/ 目录是空的,默认站点根本没启用。
  • 🛠️ 解决ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/,然后执行 systemctl reload nginx

步骤 4:验证部署

  • 操作curl http://localhost,看到 <h1>我的网站上线了</h1>
  • 最终:打开浏览器,访问公网 IP (http://你的IP),成功看到页面。

第三部分:你的“运维思维”进化史 (最重要的)

这次实战让你在认知上发生了巨大的飞跃:

  1. 看报错不再慌:以前看到 Permission denied 就觉得天塌了,现在你知道这是权限问题,立刻会想到去查 ls -lchown
  2. 理解了“用户”的概念:不再只有 root 一个视角,你明白了 www-data 是干活的“工人”,root 是“老板”,老板不能亲自去搬砖(指 Nginx 不能用 root 运行)。
  3. 掌握了“因果链”排查法:当 curl 连不上时,你没有反复重启机器,而是顺着链路排查:
    • 应用层curl localhost (通不通?)
    • 传输层ss -tlnp | grep 80 (端口在听吗?)
    • 配置层nginx -t (配置对吗?)
    • 逻辑层ls sites-enabled (站点启用了吗?)
  4. 理解了“最小权限”原则:给 index.html644(属主读写,其他人只读),而不是 777(谁都读写执行),这叫不给黑客留后门

第四部分:运维老兵的3条“铁律”

  1. 修改前先备份,操作前先看日志:改配置前 cp xxx.conf xxx.conf.bak。遇到问题第一眼看 /var/log/,别先重启。
  2. 敬畏远程操作:操作防火墙或网络前,一定确保 22 端口放行,或者你能通过 VNC 连接。先开墙,后放行
  3. 能用 reload,就别 restart:改完 Nginx 配置,用 systemctl reload nginx 平滑加载,而不是 restart 直接中断服务(除非必要)。

你已经完全具备独立管理一台 Linux 服务器的基本能力了。接下来你可以拿着这份“手册”,去尝试部署一个动态网站(比如 PHP 或 Python),或者深入研究 Shell 脚本自动化。如果在实战中再遇到新的“报错”,你知道该怎么处理——先看日志,再分析,最后解决。