第二章:基石搭建——Linux系统与网络基础

说实话,很多运维新手一上来就急着学Docker、学K8s,结果连个SSH都配不明白,文件权限搞混了把服务搞挂。我见过太多这样的案例了。这一章,咱们就把地基打牢。你想想看,房子盖得再漂亮,地基不稳也是白搭。

2.1 SSH免密登录:运维的“第一把钥匙”

SSH免密登录,说白了就是让你不用每次输密码就能登录服务器。我个人的习惯是,所有管理的机器,第一件事就是配好免密登录。为什么?因为后面你要写脚本批量操作,总不能脚本里写明文密码吧?

2.1.1 原理很简单

客户端生成一对密钥:一个私钥(自己藏着),一个公钥(放到服务器上)。登录时,服务器用公钥验证你的私钥。嗯,这里要注意:私钥绝对不能泄露。

2.1.2 实操步骤

# 在客户端生成密钥对
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# 一路回车,默认保存在 ~/.ssh/id_rsa

# 把公钥拷贝到服务器
ssh-copy-id user@server_ip

# 测试一下
ssh user@server_ip
我的小技巧: 如果有多台服务器,可以用 ssh-agent 管理私钥,避免每次都要指定密钥文件。
我曾经踩过的坑: 有一次我忘了设置 ~/.ssh 目录权限为 700,结果SSH死活连不上。记住:.ssh 目录权限必须是 700,authorized_keys 文件权限必须是 600。

2.2 文件权限:别让“权限”成了你的绊脚石

Linux的文件权限,其实就三组:所有者、所属组、其他人。每组三个权限:读(r=4)、写(w=2)、执行(x=1)。数字表示法就是把这些值加起来。

2.2.1 常用权限设置

权限 数字表示 说明
rwx------ 700 仅所有者可读写执行
rwxr-xr-x 755 所有者全权限,其他人只读执行
rw-rw-r-- 664 所有者和组可读写,其他人只读
# 修改权限
chmod 755 script.sh

# 修改所有者
chown user:group file.txt

# 递归修改目录
chmod -R 755 /path/to/dir

避坑指南: 我曾经把 /etc 目录的权限递归改成了 777,结果系统直接崩了。记住:系统目录和文件,千万别乱改权限!

2.3 进程管理:掌控你的“后台世界”

进程管理,说白了就是看谁在跑、占了多少资源、怎么干掉它。我每天上服务器第一件事就是 top 看一眼。

2.3.1 常用命令

# 查看进程
ps aux
ps -ef

# 动态监控
top
htop  # 更友好的界面

# 查找进程
pgrep nginx
pidof nginx

# 杀死进程
kill -9 PID    # 强制杀死
kill -15 PID   # 优雅停止

# 后台运行
nohup command &

2.3.2 进程状态

你可能会问:为什么有时候进程杀不掉?那是因为进程可能处于“僵尸状态”(Z)。僵尸进程已经死了,但父进程没回收它。解决办法通常是杀掉父进程。

我的经验:kill -9 要谨慎,它不给进程清理资源的机会。我一般先用 kill -15,不行再用 -9

2.4 网络抓包:运维的“照妖镜”

网络出问题的时候,抓包是最直接的排查手段。说白了,就是看看数据包到底发没发出去、发给了谁、对方回了什么。

2.4.1 tcpdump 实战

# 抓取所有经过 eth0 的包
tcpdump -i eth0

# 抓取特定端口
tcpdump -i eth0 port 80

# 抓取并保存到文件
tcpdump -i eth0 -w capture.pcap

# 读取抓包文件
tcpdump -r capture.pcap

# 抓取特定主机的通信
tcpdump -i eth0 host 192.168.1.100

2.4.2 常用过滤表达式

表达式 说明
tcp 只抓TCP包
udp 只抓UDP包
icmp 只抓ICMP包(ping)
port 22 抓22端口的包
src 10.0.0.1 源地址为10.0.0.1
dst 10.0.0.2 目标地址为10.0.0.2
注意: 抓包需要 root 权限。另外,在生产环境抓包要小心,数据量大的时候会消耗大量磁盘和CPU。

2.5 本章知识体系

下面这张图,是我梳理的本章核心知识脉络。你可以把它当作一张“地图”,随时回来对照。

Linux系统与网络基础 SSH免密登录 密钥生成 公钥分发 权限检查 文件权限 rwx权限 数字表示法 chmod/chown 进程管理 ps/top/htop kill信号 后台运行 网络抓包 tcpdump 过滤表达式 抓包分析 掌握这四块,运维基础就稳了

嗯,这一章的内容就这些。看起来知识点不少,但都是日常运维天天要用的。你把这些练熟了,后面学自动化、学容器编排,就会觉得顺风顺水。


专注资料整理