网络管理模块二 · 专题二
Linux 智能运维与管理 · 2026—2027 学年第一学期

网络 管理

模块二 · 专题二 —— 从参数配置到服务协同排障,让服务器能被安全访问。
6 次课 · 12 学时 · 理实一体,每次课一个综合作业覆盖全部知识点。

第 15—20 次课 任课教师:张娜
ip addr ssh-keygen firewall-cmd smbclient
student@centos7: ~ — 终端
# 本专题你将学会 $ ip addr show ens33 inet 192.168.1.20/24 $ ssh-keygen -t rsa -b 4096 Your public key has been saved $ firewall-cmd --add-service=http --permanent success $ smbclient -U user //localhost/share smb: \> ls
模块二 · 专题二|专题地图

本专题地图 · 6 次课 12 学时Course Map

从参数配置到服务协同排障,建立「让服务器能被安全访问」的能力 —— 每次课都有明确的关键点、操作演示,以及一个覆盖全部知识点的综合作业。

6 次课 · 12 学时 6 个综合作业 5 项实训任务 6 个思考题 每步均有验证要求
01

网络参数配置

第 15 次课2 学时
ip addr查看 IP 地址
ip route查看 / 管理路由
ifcfg-ens33静态 IP 配置文件
systemctl restart network生效并持久化
ping -c 4验证连通性
resolv.confDNS 配置

教学目标解释四个网络参数作用,完成静态 IP 配置并使配置持久化。

重点 IP、掩码、网关、DNS 与静态配置
难点 修改后的生效与持久化

关键点 · 静态 IP 作业 静态 IP 配置 + 网段 / 网关 / 公网三层验证
02

网络诊断命令

第 16 次课2 学时
ping -c 4测试连通性
ip addr / ip route地址与路由
ss -tlnp查看监听端口
hostnamectl主机名管理
traceroute追踪路由路径
nslookupDNS 解析验证

教学目标使用网络命令分层检查链路、路由和端口,形成故障定位路径。

重点 命令输出的读取与分层诊断
难点 从现象判断配置或链路问题

关键点 · 链路排障 作业 分层诊断 + 提交排查路径
03

SSH 远程管理

第 17 次课2 学时
ssh-keygen生成密钥对
ssh-copy-id部署公钥
chmod 600私钥权限
sshd_config禁 root / 关密码
ssh admin@host免密登录
/var/log/secure登录审计

教学目标完成 SSH 远程登录和密钥认证,区分账户、网络、服务与认证故障。

重点 SSH 连接流程和密钥认证
难点 不同故障层次的定位

关键点 · 安全登录 作业 密钥认证 + 服务端加固 + 免密验证
04

Samba 共享

第 18 次课2 学时
yum install samba安装服务
smbpasswd -a建 Samba 用户
[share] smb.conf定义共享
systemctl start smb启动服务
smbclientLinux 端自测
chmod 777目录可写

教学目标配置 Samba 共享目录,完成不同账户的访问测试并解释权限结果。

重点 服务配置、用户认证和目录权限
难点 Samba 权限与 Linux 权限对应

关键点 · 共享协同 作业 共享配置 + 双账户对照测试
05

防火墙

第 19 次课2 学时
firewall-cmd --state运行状态
--list-all审计放行项
--add-service放行服务
--add-port放行端口
--permanent持久化
--reload重载生效

教学目标配置防火墙区域和放行规则,在保证连通性的同时控制暴露面。

重点 区域、服务、端口和规则验证
难点 连通性与最小暴露面平衡

关键点 · 访问控制 作业 放行 http/ssh + 端口访问验证
06

综合排障

第 20 次课2 学时
描述现象锁定问题域
收集证据五课工具总动员
缩小范围逐层定位
假设验证一次只改一处
修复复测同样方式复测
记录复盘五段式报告

教学目标综合运用网络配置、诊断命令、Samba 和防火墙,完成从现象到复测的排障闭环。

重点 多组件联动排障
难点 依据证据定位跨组件故障

关键点 · 闭环思维 作业 综合任务 + 排障报告
学习路径 第 15 次课参数配置 · 先懂四个参数再改▶ 第 16 次课网络诊断 · 分层锁定故障层▶ 第 17—18 次课SSH 与 Samba · 安全访问与共享▶ 第 19 次课防火墙 · 最小暴露面▶ 第 20 次课综合排障 · 现象到复测闭环
01

网络参数配置

Network Configuration
第 15 次课2 学时理实一体
重点IP、子网掩码、网关、DNS 与静态 IP 配置:先理解四个参数各自解决什么问题,再动手改配置文件
难点修改后的生效与持久化——改错会立刻断网,必须用「改前备份 + 验证 + 可回滚」三保险

核心方法:先画网络参数关系图(谁在网络位、谁是出口、谁负责解析),再分步配置并用 ip、ping 验证连通性;任何对网卡的修改都遵循「先备份、再修改、改完立刻验证、出错可还原」。

教学目标
01参数作用 解释 IP、子网掩码、网关、DNS 各自解决什么问题,能根据网段判断两个地址是否在同一子网。/24 = 前 24 位是网络位
02静态配置 用 ifcfg 文件把 DHCP 改为静态 IP,并写入 IP、掩码、网关、DNS 四项。BOOTPROTO=static
03持久化与验证 重启网络服务使配置生效,验证地址、掩码、网关、DNS 全部正确且重启不丢失。改前备份 · 改完即验
思考题:网关和 DNS 分别解决什么问题? 作业:完成静态 IP 配置并提交验证结果(7 步,每步含验证)
核心概念|四个参数各管什么

IP / 子网掩码 / 网关 / DNS

一句话记忆:IP 是「你是谁」、掩码是「你和谁同村」、网关是「出村的路」、DNS 是「把名字翻译成地址的电话簿」。

IPIP 地址

主机在网络中的唯一标识。

192.168.1.10/24
网络位 24 · 主机位 8

M子网掩码

区分网络位与主机位。

/24 = 255.255.255.0
决定同一子网范围

G网关 Gateway

本网段的出口设备。

默认路由 192.168.1.1
访问外网把报文交给它

DDNS

域名解析服务器。

8.8.8.8 / 114.114.114.114
把域名翻译成 IP

关键认知:192.168.1.10/24 表示前 24 位是网络号、后 8 位是主机号——同网段的主机前 24 位必须一致。网关和 DNS 不在「同一网段」判断范围内:网关必须是本机同网段的地址(通常是 .1),DNS 可以是任意可达的解析服务器。
操作演示|配置静态 IP 并持久化

从 DHCP 改为静态 IP(ifcfg 文件法)

student@centos7: ~ — 配置静态 IP
# 1 · 查看网卡与当前网络(先看清真实网段,不要照抄示例) $ ip addr 2: ens33: <BROADCAST> inet 192.168.1.10/24 brd 192.168.1.255 $ ip route default via 192.168.1.1 dev ens33 $ cat /etc/resolv.conf nameserver 192.168.1.1 # 2 · 备份并修改网卡配置文件(改前必备份) $ cp /etc/sysconfig/network-scripts/ifcfg-ens33 /root/ifcfg-ens33.bak $ vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO=static IPADDR=192.168.1.20 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=114.114.114.114 ONBOOT=yes # 3 · 重启网络使配置生效 $ systemctl restart network # 4 · 验证连通性 $ ip addr show ens33 $ ping -c 4 192.168.1.1 $ ping -c 4 www.baidu.com
四个必填字段
  • BOOTPROTO=static 关闭 DHCP,改用静态
  • IPADDR 本机静态地址,须与网段吻合
  • NETMASK / GATEWAY 掩码与出口
  • DNS1 首选解析服务器
  • ONBOOT=yes 开机自动激活网卡(漏写 = 开机不启动)
断网自救:改错导致连不上?还原备份即可——cp /root/ifcfg-ens33.bak /etc/sysconfig/network-scripts/ifcfg-ens33,再 systemctl restart network。所以第 2 步的备份一条都不能省。
验收标准|关键检查点

改完必须逐项确认的 4 件事

配置正确性
  • IP / 掩码 / 网关在同一网段(前 24 位一致)
  • DNS 配置正确,能解析域名
  • ONBOOT=yes,否则开机网卡不启动
生效与持久化
  • ip addr show ens33 显示新地址
  • 能 ping 通网关 192.168.1.1
  • 能 ping 通公网域名(说明 DNS 生效)
  • 重启网络后配置不丢失(写入 ifcfg 即持久化)
注意:BOOTPROTO=static 即关闭 DHCP——静态地址不会再被自动分配。本课件以 ifcfg 文件 + systemctl restart network 为教学主路径(CentOS 7 通用);现代发行版也常用 nmcli 做同样的事,原理一致:改的都是「网卡配置 + 开机生效」。
课后作业静态 IP 配置与连通性验证约 20 分钟 · 覆盖本课 6 个知识点 · 每步均有验证
  1. 建立个人工作区:进入 ~/stu序号_姓名拼音(没有就先创建),执行 pwd 确认。验证:提示符路径与 pwd 输出均包含 stu序号_姓名拼音。
  2. 查看真实网段:执行 ip addr 与 ip route,记录本机当前 IP、网卡名、网关。验证:能指出网卡名(如 ens33)与 default via 后面的网关地址;确认你要设的新 IP 与当前在同一网段。
  3. 备份网卡配置:执行 cp /etc/sysconfig/network-scripts/ifcfg-ens33 /root/ifcfg-ens33.bak(网卡名按实际替换)。验证:ls -l /root/ifcfg-ens33.bak 显示备份文件存在,大小大于 0。
  4. 改为静态 IP:用 vim 编辑该 ifcfg 文件,设 BOOTPROTO=static、IP 末位 = 序号(如 192.168.1.序号)、掩码 255.255.255.0、网关 192.168.1.1、DNS1=114.114.114.114、ONBOOT=yes。验证:cat 该文件,五项字段齐全且与设定一致,无拼写错误。
  5. 重启网络生效:执行 systemctl restart network。验证:ip addr show ens33 显示新静态地址,状态为 UP。
  6. 逐层验证连通性:依次 ping -c 4 192.168.1.1(网关)与 ping -c 4 www.baidu.com(公网域名)。验证:两命令均 0% 丢包;公网能通说明 DNS 解析生效。
  7. 撰写验证报告:echo "姓名:xxx 序号:N" > netN.txt,把第 2—6 步的关键输出(网段、ifcfg 字段、ip addr、两次 ping 结果)逐条 >> 追加。验证:cat netN.txt 第一行含姓名与序号,后续各行与终端输出一致;末尾写明「配置已持久化」。
截图上传:终端同屏能看到①含 stu序号_姓名拼音 的提示符路径 ②vim 修改后的 ifcfg 文件内容(五项齐全)③ping www.baidu.com 的 0% 丢包结果。上传到本专题第 15 次课对应作业。
02

网络诊断命令

Network Diagnostics
第 16 次课2 学时理实一体
重点命令输出的读取与分层诊断:从本机到网关、到远端、到端口,逐层用证据锁定问题层
难点从现象判断是链路问题还是配置问题——同样的「连不上」,根因可能在不同层

核心方法:提供三类故障样例,按「本机 → 网关 → 远端 → 端口」的顺序排查;每查一层就留下命令输出作为证据,避免凭感觉乱改。

教学目标
01命令掌握 用 ping / ip / ss / hostnamectl / traceroute 检查连通性、地址、路由、端口。ss 替代 netstat
02分层诊断 按「物理层 → IP 配置 → 路由 → DNS → 端口/服务」顺序逐层定位,每步留证据。本机→网关→远端→端口
03路径记录 提交从现象到根因的排查路径,而不是只给结论。证据链完整
思考题:网络故障为什么要分层排查? 作业:完成网络故障诊断任务并提交排查路径(6 步,每步含验证)
命令速查表|网络诊断常用命令

六个必会命令

命令功能示例参数 / 提示
ping -c 4测试连通性ping -c 4 8.8.8.8-c 次数、-s 包大小、-I 指定源地址;0% 丢包 = 通
ip addr查看 IP 地址ip addr show eth0替代 ifconfig,支持多路由表;看 UP / inet
ip route查看 / 管理路由ip route add default via 192.168.1.1default 即默认网关
ss -tlnp查看监听端口ss -tlnp | grep :22替代 netstat;-t TCP、-l 监听、-p 进程
hostnamectl主机名管理hostnamectl set-hostname srv01永久修改主机名,重启仍生效
traceroute追踪路由路径traceroute 8.8.8.8每跳显示延迟与途经设备
排障顺序:物理层 → IP 配置 → 路由 → DNS → 端口 / 服务 → 应用层。先确认网卡 UP,再看 IP 对不对,再看能不能到网关,再看 DNS 能不能解析,最后看服务端口在不在监听——按这个顺序,问题一定落在某一层。
分层排障|从物理层到应用层

五步定位「为什么连不上」

STEP 1
物理与链路

ip link show eth0

确认网卡 UP、有 MAC 地址、线缆 / 虚拟网卡正常。

STEP 2
IP 配置

ip addr show

确认 IP、掩码、广播地址正确。

STEP 3
网关通断

ping -c 4 <gateway>

确认本网段出口可达。

STEP 4
DNS 解析

nslookup www.baidu.com

确认域名能解析成 IP。

STEP 5
目标端口

ss -tlnp | grep :80

确认服务已监听目标端口。

student@centos7: ~ — 逐层排障
# 1 · 物理层:网卡必须 UP $ ip link show ens33 2: ens33: <BROADCAST,UP,LOWER_UP> ... state UP # 2 · IP 配置:地址、掩码正确 $ ip addr show ens33 inet 192.168.1.20/24 # 3 · 网关:本网段出口可达 $ ping -c 4 192.168.1.1 4 packets transmitted, 4 received, 0% packet loss # 4 · DNS:域名能解析 $ nslookup www.baidu.com Address: 180.101.50.188 # 5 · 端口:服务在监听 $ ss -tlnp | grep :80 LISTEN 0 128 :::80 users:(("nginx",pid=1234))
证据链读法
  • 任一层失败,问题就锁定在该层或它的下一层
  • 不跳层:先确认下层 OK,再查上一层
  • 每层都留命令输出,形成可回溯的证据链
常见误判:看到「网页打不开」就急着改 DNS——其实可能网卡根本没 UP,或网关就不通。分层排查能从第一步就排除,少走弯路。
实战案例|一条命令卡在哪一层

「SSH 连不上服务器」的排查路径

层命令证据可能根因
物理 / 链路ip link show网卡 DOWN、虚拟网卡未连接
IP 配置ip addr show地址冲突、掩码错
路由 / 网关ping -c 4 <网关>网关不通、路由缺失
端口 / 服务ss -tlnp | grep :22sshd 没启动、监听在别地址
认证ssh -v user@host密钥权限错、防火墙拦截
作业导向:提交排查路径时,不要只写「已修复」,而要写「第 X 层用 Y 命令验证,结果是 Z,因此排除 / 锁定该层」——这才是可复用的排障能力。
课后作业网络故障分层诊断约 20 分钟 · 覆盖本课 6 个知识点 · 每步均有验证
  1. 建立个人工作区:进入 ~/stu序号_姓名拼音,pwd 确认。验证:提示符路径与 pwd 输出均包含 stu序号_姓名拼音。
  2. 物理层:执行 ip link show,确认网卡状态包含 UP。验证:能看到状态为 UP 的网卡(如 ens33),记录其名称。
  3. IP 配置层:执行 ip addr show,记录本机 IP 与掩码。验证:能说出 inet 后面的地址与掩码位数(如 /24)。
  4. 网关层:用 ip route 找到网关后,ping -c 4 <网关>。验证:输出为 0% packet loss;若不通,写明「网关层失败,问题在第 3 层或以下」。
  5. DNS 层:执行 nslookup www.baidu.com(或 ping -c 4 www.baidu.com)。验证:能解析出 IP 地址;若失败,写明「DNS 层失败」。
  6. 端口 / 服务层:执行 ss -tlnp | grep :22 确认 SSH 在监听。验证:输出包含 LISTEN 与 :22;再 ss -tlnp | grep :80 观察另一端口是否存在。
  7. 撰写排查路径:echo "姓名:xxx 序号:N" > diagN.txt,把第 2—6 步的命令与结果逐条 >> 追加,并在末尾加一行「结论:问题落在第 X 层」。验证:cat diagN.txt 第一行含姓名与序号,各层证据链完整,结论与某层失败/通过一致。
截图上传:终端同屏能看到①含 stu序号_姓名拼音 的提示符路径 ②ip link(UP)③ping 网关 的 0% 丢包 ④nslookup 解析成功。上传到本专题第 16 次课对应作业。
03

SSH 远程管理

SSH Remote Management
第 17 次课2 学时理实一体
重点SSH 连接流程和密钥认证:公钥放服务器、私钥留客户端,免密登录既方便又安全
难点区分账户、网络、服务与认证四类故障——连不上时先判断是哪一环出问题

核心方法:现场演示密钥生成与权限要求,安排密码认证 / 密钥认证对照验证;强调私钥权限 600、禁用 root 直接登录的加固基线。

教学目标
01连接流程 说清 SSH 加密登录的过程,区分密码认证与密钥认证的差异。默认端口 22 · 全程加密
02密钥认证 生成密钥对、把公钥部署到服务器、用私钥免密登录。公钥服务器 · 私钥客户端
03服务加固 禁用 root 密码登录、关闭密码认证后确认密钥有效,定期审计登录日志。最小暴露面
思考题:私钥为什么不能上传或共享? 作业:完成 SSH 远程登录与密钥认证验证(7 步,每步含验证)
核心概念|SSH 安全远程登录

协议本质 · 两种认证 · 免密流程 · 安全加固

P协议本质

加密的远程登录协议。

替代明文 Telnet
默认端口 22 · 全程加密

2A两种认证

密码 / 密钥。

密码方便
密钥更安全 · 适合自动化

K免密流程

公钥放服务器。

~/.ssh/authorized_keys
私钥留客户端妥善保管

H安全加固

减小攻击面。

禁 root 密码登录
改端口 · 防火墙 · 审计日志

四类故障分层:连不上 SSH 时,先判断落在哪一类——账户(用户名 / 权限)、网络(IP / 防火墙)、服务(sshd 是否运行)、认证(密码错 / 密钥不匹配)。用 ssh -v 能看到卡在哪一步。
操作演示|配置 SSH 密钥登录

从密钥生成到免密登录

client@laptop: ~ — 配置密钥登录
# 1 · 客户端生成密钥对(默认 id_rsa 私钥 / id_rsa.pub 公钥) $ ssh-keygen -t rsa -b 4096 -C 'admin@srv01' Your public key has been saved in /home/admin/.ssh/id_rsa.pub # 2 · 复制公钥到服务器 $ ssh-copy-id -i ~/.ssh/id_rsa.pub admin@192.168.1.10 # 3 · 服务端加固配置 $ sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config $ sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config $ sudo systemctl restart sshd # 4 · 免密登录验证 $ ssh admin@192.168.1.10 Last login: ... (无需输入密码)
权限三件套
  • 私钥 ~/.ssh/id_rsa 权限 600
  • 公钥 authorized_keys 权限 600
  • 目录 ~/.ssh 权限 700
  • 权限不对,SSH 直接拒绝使用密钥
顺序不能错:必须先在当前会话确认密钥登录成功,再关闭密码认证、禁用 root 登录——否则一旦断开就再也连不回去。
安全基线|加固要点

上线前必须确认的 4 条

权限与保密
  • 私钥权限 600,authorized_keys 权限 600
  • 私钥只留客户端,绝不上传服务器或公开仓库
  • 使用普通用户 + sudo,而非直接 root
服务与审计
  • 关闭密码认证前,先用密钥成功登录一次
  • 定期查看 /var/log/secure 审计登录
  • 配合防火墙只放行可信来源(见第 19 次课)
思考题呼应:私钥等同于你的「门钥匙」——一旦上传或共享,任何拿到它的人都能以你的身份登录。所以它必须留在本地、权限收紧、绝不外泄。
课后作业SSH 密钥认证与免密登录约 20 分钟 · 覆盖本课 5 个知识点 · 每步均有验证
  1. 建立个人工作区:进入 ~/stu序号_姓名拼音,pwd 确认。验证:提示符路径与 pwd 输出均包含 stu序号_姓名拼音。
  2. 生成密钥对:执行 ssh-keygen -t rsa -b 4096 -C 'admin@srv序号'(一路回车用默认路径)。验证:ls -l ~/.ssh/id_rsa ~/.ssh/id_rsa.pub 两个文件均存在,私钥权限为 600。
  3. 确认私钥权限:执行 chmod 600 ~/.ssh/id_rsa。验证:ls -l ~/.ssh/id_rsa 显示权限为 -rw-------(即 600)。
  4. 部署公钥到服务器:执行 ssh-copy-id -i ~/.ssh/id_rsa.pub admin@192.168.1.10(按提示输入一次密码)。验证:登录服务器后 ls -l ~/.ssh/authorized_keys 存在,且内容含你的公钥。
  5. 免密登录验证:重新 ssh admin@192.168.1.10。验证:不再提示输入密码即进入会话;在会话里执行 whoami 确认为 admin。
  6. 服务端加固:在服务器上 sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config,再 sudo systemctl restart sshd。验证:grep PermitRootLogin /etc/ssh/sshd_config 显示 PermitRootLogin no。
  7. 撰写验证报告:echo "姓名:xxx 序号:N" > sshN.txt,追加「密钥已生成 / 私钥权限 600 / 公钥已部署 / 免密登录成功 / 已禁用 root 登录」五项结论。验证:cat sshN.txt 第一行含姓名与序号,五项结论齐全。
截图上传:两张图——①客户端 ls -l ~/.ssh/(含 id_rsa 权限 600)②免密登录后的会话窗口(whoami 显示 admin、无密码提示)。上传到本专题第 17 次课对应作业。
04

Samba 共享

Samba Sharing
第 18 次课2 学时理实一体
重点共享配置、用户认证和目录权限:smb.conf 定义共享、smbpasswd 建用户、目录给写权限
难点Samba 权限与 Linux 权限的对应关系——三层权限任一不满足,写入就失败

核心方法:用两账户对照测试,要求记录配置项、身份和访问结果;依据访问结果定位是服务层、用户层还是目录层权限问题。

教学目标
01服务构成 理解 SMB/CIFS 协议、smbd + nmbd 分工,以及 Windows 与 Linux 互访的方式。smbd 文件 · nmbd 名称
02共享配置 安装 Samba、创建共享目录与系统用户、编辑 smb.conf 并启动服务。smb.conf 定义共享
03权限三元验证 服务可用 + Samba 用户有效 + 目录可写,三者逐一验证,用双账户对照测试。缺一不可
思考题:共享服务权限为何需要双重检查? 作业:配置 Samba 共享并完成不同账户访问测试(7 步,每步含验证)
核心概念|Samba 文件共享

协议 · 服务进程 · 客户端 · 权限三元

P协议

SMB/CIFS 实现。

让 Linux 与 Windows
共享文件与打印机

S服务端

smbd + nmbd。

smbd 文件/打印
nmbd 名称解析

C客户端

访问入口。

Windows 网络邻居
Linux: mount.cifs

3权限三元

三者缺一不可。

服务配置
Samba 用户 · 文件系统

关键认知:Samba 的「能访问」由三层叠加决定——① smb.conf 是否允许该用户 ② Samba 用户密码是否有效 ③ 目录本身的 Linux 权限是否可写。任一层拦住,Windows 端都会报「没有权限」。
操作演示|配置共享目录并验证

从安装到 smbclient 自测

root@centos7: ~ — 配置 Samba
# 1 · 安装 Samba $ yum install -y samba samba-client # 2 · 创建共享目录与系统用户 $ mkdir /srv/share && chmod 777 /srv/share $ useradd -s /sbin/nologin sambauser $ smbpasswd -a sambauser # 3 · 编辑 /etc/samba/smb.conf $ vim /etc/samba/smb.conf [share] path = /srv/share valid users = sambauser read only = no # 4 · 启动与验证 $ systemctl start smb nmb $ smbclient -U sambauser //localhost/share Enter password: smb: \> ls . D 0 ...
smb.conf 四行
  • [share] 共享名(Windows 端看到的名字)
  • path 服务器上的真实目录
  • valid users 允许访问的 Samba 用户
  • read only = no 允许写入
两种身份别混淆:sambauser 要先成为系统用户(useradd),再用 smbpasswd -a 单独设 Samba 密码——Samba 密码和 Linux 登录密码是两套,不互通。
验收标准|权限三元

写入失败?先查这三关

前面两关(服务 / 用户)
  • 防火墙放行 139 / 445 端口
  • systemctl status smb 显示 active
  • SELinux 未限制 samba_share_t 上下文
  • Samba 用户密码有效(smbpasswd -a 建过)
第三关(文件系统)
  • 目录本身 Linux 权限允许写入
  • 教学环境用 chmod 777 简化验证
  • 生产环境应改用属主 / ACL,而非 777
  • 用 smbclient 在 Linux 端先自测,隔离 Windows 因素
权限三元:服务可用 + Samba 用户有效 + 目录可写,三者必须同时满足。Windows 端写入失败时,先在 Linux 用 smbclient 自测,能排除「是不是 Windows 端配置问题」,更快定位到三元的哪一层。
课后作业Samba 共享配置与多账户测试约 22 分钟 · 覆盖本课 5 个知识点 · 每步均有验证
  1. 建立个人工作区:进入 ~/stu序号_姓名拼音,pwd 确认。验证:提示符路径与 pwd 输出均包含 stu序号_姓名拼音。
  2. 安装 Samba:执行 yum install -y samba samba-client。验证:rpm -q samba 显示已安装版本;若提示已安装则说明环境已具备。
  3. 创建目录与系统用户:执行 mkdir -p /srv/share序号 && chmod 777 /srv/share序号,再 useradd -s /sbin/nologin sambauser序号。验证:ls -ld /srv/share序号 存在且权限含 w;id sambauser序号 显示该用户存在。
  4. 设 Samba 密码:执行 smbpasswd -a sambauser序号 并设置密码。验证:用 pdbedit -L 能看到 sambauser序号 出现在 Samba 用户列表中。
  5. 编写 smb.conf 共享段:用 vim 在 /etc/samba/smb.conf 末尾追加 [share序号] 段(path=/srv/share序号、valid users=sambauser序号、read only=no)。验证:testparm 检查配置无语法错误,且列出该共享名。
  6. 启动服务:执行 systemctl start smb nmb。验证:systemctl status smb 显示 active (running);ss -tlnp | grep :445 能看到监听。
  7. Linux 端自测 + 双账户对照:执行 smbclient -U sambauser序号 //localhost/share序号 进入交互,用 ls 与 put 测试读写;再尝试用一个未授权用户访问,确认被拒绝。验证:授权用户能 ls 并 put 文件成功;未授权用户连接被拒。写一行结论「服务 / 用户 / 目录三层均通过」到报告。
截图上传:三张图——①testparm 输出的共享段 ②systemctl status smb active ③smbclient 内 ls / put 成功的回显。上传到本专题第 18 次课对应作业。
05

防火墙

Firewall Management
第 19 次课2 学时理实一体
重点区域、服务、端口和规则验证:先建立默认拒绝基线,再按服务需求放行
难点在保持连通性的同时控制暴露面——放太少连不上、放太多不安全

核心方法:先建立防火墙基线,再按服务需求放行,使用端口测试复核规则;强调任何改动后 --reload 才生效。

教学目标
01区域与策略 理解 firewalld 的 zone、service、富规则,以及「默认拒绝、明确放行」的基线思维。最小暴露面
02放行规则 用 --add-service / --add-port 放行,并用 --permanent + --reload 持久化。改完必 reload
03端口复核 放行后用 --list-all 与端口测试复核,避免「以为开了其实没开」。先审计再压测
思考题:为什么不应直接关闭防火墙排障? 作业:完成防火墙规则配置和端口访问验证(7 步,每步含验证)
核心概念|firewalld 区域与规则

区域 · 服务 · 富规则 · 默认策略

Z区域 Zone

预定义信任级别。

public / internal
trusted / block

S服务 Service

预定义端口集合。

ssh / http / samba
简化规则管理

R富规则

rich rules。

源 IP · 端口 · 动作
accept / reject

D默认策略

默认拒绝。

只开放必要服务
最小暴露面

基线思维:防火墙的正确姿势是「默认拒绝、明确放行」——只开放业务真正需要的服务或端口。这既保证连通性,又把攻击面压到最小。临时规则重启即丢,--permanent 才持久,且必须 --reload 生效。
命令速查表|firewalld 常用命令

六个核心命令

命令功能示例 / 输出提示
--state查看运行状态running确认服务已启动
--get-default-zone查看默认区域public接口未指定区域时使用
--list-all查看当前区域规则services / ports快速审计开放项
--add-service=ssh临时放行服务即时生效 · 重启丢失测试时使用
--add-service=ssh --permanent持久放行服务重启后仍生效需 reload 才生效
--add-port=8080/tcp放行端口指定 tcp/udp自定义服务常用
--reload重载规则永久规则立即生效修改配置后必须执行
排障提示|服务无法访问时

先查防火墙,再查服务

两步锁定防火墙层
  • firewall-cmd --list-all 看放行的 services / ports
  • ss -tlnp | grep :端口 看服务是否真的在监听
  • 防火墙没放行 → 外部流量被拦,服务本地能通但远端不通
临时与持久的区别
  • 不加 --permanent:即时生效,重启 network / 系统后丢失
  • 加 --permanent:写入配置,但需 --reload 才生效
  • 两遍都做(临时 + 永久)可避免 reload 前的空窗期
思考题呼应:排障时直接 systemctl stop firewalld 看似「立刻好了」,但等于把整台机器的门敞开——既不安全,也没定位真正问题。正确做法是精确放行需要的服务,然后 --reload 复核。
课后作业防火墙规则配置与端口验证约 20 分钟 · 覆盖本课 5 个知识点 · 每步均有验证
  1. 建立个人工作区:进入 ~/stu序号_姓名拼音,pwd 确认。验证:提示符路径与 pwd 输出均包含 stu序号_姓名拼音。
  2. 确认防火墙运行:执行 firewall-cmd --state 与 firewall-cmd --get-default-zone。验证:前者输出 running,后者输出 public(或当前默认区域)。
  3. 放行 SSH(持久):执行 firewall-cmd --add-service=ssh --permanent 后 firewall-cmd --reload。验证:firewall-cmd --list-all 的 services 列表中含 ssh。
  4. 放行自定义端口:执行 firewall-cmd --add-port=80序号/tcp --permanent 再 --reload(端口号 = 80 + 序号)。验证:firewall-cmd --list-all 的 ports 列表中含 80序号/tcp。
  5. 启动测试服务:在服务器上 python3 -m http.server 80序号(或已装 httpd),后台监听该端口。验证:ss -tlnp | grep 80序号 显示 LISTEN。
  6. 端口访问验证:执行 curl http://localhost:80序号(本地)确认服务通。验证:返回页面内容(非连接拒绝);再观察 --list-all 与 ss 一致。
  7. 撰写验证报告:echo "姓名:xxx 序号:N" > fwN.txt,追加「默认区域 / 已放行 ssh / 已放行 80序号/tcp / 服务 LISTEN / curl 验证通过」五项结论。验证:cat fwN.txt 第一行含姓名与序号,五项结论齐全且彼此印证。
截图上传:终端同屏能看到①firewall-cmd --list-all(services 含 ssh、ports 含 80序号/tcp)②ss -tlnp | grep 80序号 LISTEN ③curl 返回页面。上传到本专题第 19 次课对应作业。
06

综合排障

Troubleshooting
第 20 次课2 学时理实一体
重点多组件联动排障:把前 5 次课的网络参数、诊断、SSH、Samba、防火墙串成一条闭环
难点依据证据定位跨组件故障——同一现象可能由配置、服务或防火墙各自引起

核心方法:采用任务单和小组分工,按「现象 → 证据 → 修复 → 复测」四步提交排障记录;每次只改一个变量,立即复测,避免多改导致无法回溯。

教学目标
01闭环思维 按现象、证据、修复、复测四段组织排障,而不是凭感觉试错。一次只改一个变量
02跨组件定位 综合运用 ip / ping / ss / firewall-cmd / systemctl 把故障降到某一层。前 5 课工具总动员
03报告沉淀 提交现象、证据、根因、修复、复测五段式排障报告,形成可复用的经验。记录复盘
思考题:排障报告中哪些证据最有价值? 作业:完成网络管理综合任务并提交排障报告(6 步,每步含验证)
排障方法论|网络故障闭环

六步从现象走到复测

STEP 1
描述现象

用户无法访问 Web / 无法 SSH / 无法共享。

STEP 2
收集证据

ip addr · ping · ss
firewall-cmd · systemctl

用前 5 课工具采集客观数据。

STEP 3
缩小范围

物理→IP→路由→DNS
→服务→防火墙

逐层定位,锁定问题层。

STEP 4
假设验证

每次只改一个变量,立即测试。

STEP 5
修复与复测

reload / restart 后用同命令复测。

STEP 6
记录复盘

现象·证据·根因
修复·复测

写入排障报告。

铁律:每次只改一个变量,改完立刻用同样的方式复测。同时改三处,成功了你也不知道是哪一处生效,失败了更不知道回退哪一处——这正是排障报告「证据链」的价值。
综合案例|Web 服务无法访问

现象一样,根因在防火墙

root@centos7: ~ — 排障全流程
# 现象:浏览器访问 192.168.1.10:80 无响应 $ systemctl status httpd ● httpd.service - active (running) $ ss -tlnp | grep :80 LISTEN 0 128 :::80 users:(("httpd",pid=1234)) $ firewall-cmd --list-all services: ssh (没有 http!) $ curl http://localhost 200 OK — 本地访问正常 # 修复:放行 http 并 reload $ firewall-cmd --add-service=http --permanent $ firewall-cmd --reload $ curl http://192.168.1.10 200 OK — 外部访问恢复
四类证据链
  • systemctl status 服务在跑
  • ss -tlnp 端口在监听
  • firewall-cmd --list-all 没放行 http
  • curl localhost 本地通、远端不通 = 防火墙拦截
根因:服务已启动并监听,但防火墙未放行 http——外部流量被拦。修复后必须用同样的测试方式(curl 外部地址)复测,确认问题消失,而不是「觉得应该好了」。
复测标准|什么算修好了

修复 ≠ 复测通过

维度复测命令通过标准
服务状态systemctl status httpd仍为 active (running)
放行规则firewall-cmd --list-all出现 http 服务
外部可达curl http://192.168.1.10返回正常页面(非拒绝)
内部一致ss -tlnp | grep :80仍 LISTEN
报告价值:最有价值的证据是「能证伪假设的那一条」——比如本例中 curl localhost 返回 200,立刻排除了「服务没起 / 端口没监听」,把嫌疑锁定到防火墙。这一类「缩小范围的关键证据」比一堆无关输出更有价值。
课后作业网络管理综合排障任务约 25 分钟 · 覆盖本课全部知识点 + 前 5 课联动 · 每步含验证
  1. 建立个人工作区:进入 ~/stu序号_姓名拼音,pwd 确认。验证:提示符路径与 pwd 输出均包含 stu序号_姓名拼音。
  2. 搭建环境:按 L14/L19 方法启动一个监听 80序号 端口的服务(如 python3 -m http.server 80序号),并放行该端口。验证:ss -tlnp | grep 80序号 显示 LISTEN;firewall-cmd --list-all 含该端口。
  3. 人为制造故障:执行 firewall-cmd --remove-port=80序号/tcp --permanent && firewall-cmd --reload,模拟「外部访问失败」。验证:此时 curl http://localhost:80序号 本地仍通,但模拟外部访问应被拒(证据 1:本地通远端不通)。
  4. 收集四类证据:依次 systemctl status(服务)、ss -tlnp(监听)、firewall-cmd --list-all(放行项)、curl localhost(本地通)。验证:前三步确认服务在跑、端口在听、但防火墙未放行;第四步证明问题在防火墙层而非服务层。
  5. 修复与复测:重新 firewall-cmd --add-port=80序号/tcp --permanent && --reload,再用外部地址 curl http://192.168.1.10:80序号 复测。验证:复测返回正常页面(非拒绝),且 --list-all 重新出现该端口——修复与复测均通过。
  6. 撰写五段式排障报告:echo "姓名:xxx 序号:N" > tsN.txt,依次写入「现象 / 证据(四类)/ 根因 / 修复 / 复测」,结尾说明「最有价值的证据是 curl localhost 返回 200,它将嫌疑锁定到防火墙层」。验证:cat tsN.txt 第一行含姓名与序号,五段齐全,根因与证据相互印证。
截图上传:终端同屏能看到①故障态 firewall-cmd --list-all(无该端口)+ curl localhost 通 ②修复态 --list-all(含端口)+ 外部 curl 返回页面。上传到本专题第 20 次课对应作业。
本专题小结|6 次课知识地图

网络管理知识地图Knowledge Map

从「配参数」到「查链路」再到「管服务、控边界、闭环排障」——六次课一条线,每次课的作业都当堂覆盖全部知识点。

01

网络参数

IP / 掩码 / 网关 / DNS
ip addr / ip route看地址与路由
ifcfg-ens33静态 IP 配置文件
systemctl restart network生效并持久化
ping -c 4逐层验证连通性

核心要点先理解四个参数各管什么,再改 ifcfg;改前备份、改完即验、出错可还原。

口诀 先查网段,再配静态,重启即验

易错点 漏写 ONBOOT=yes = 开机网卡不启动;IP 不按真实网段设会立刻断网
02

网络诊断

ping / ip / ss
ping -c 4测连通性
ss -tlnp看监听端口
hostnamectl改主机名
traceroute追踪路由

核心要点按「物理→IP→网关→DNS→端口」分层排查,每层留命令输出作证据。

口诀 本机→网关→远端→端口,逐层锁定

易错点 看到「连不上」就改 DNS 是误判;先确认网卡 UP、网关通,再查上层
03

SSH

密钥 · 加固
ssh-keygen生成密钥对
ssh-copy-id部署公钥
chmod 600私钥权限
sshd_config禁 root / 关密码

核心要点公钥放服务器、私钥留客户端;关密码认证前务必先用密钥成功登录一次。

口诀 先验后关,私钥 600,绝不外泄

易错点 私钥权限不对 SSH 直接拒用;没验密钥就关密码 = 断连回不去
04

Samba

smb.conf / 用户
smbd + nmbd文件与名称服务
smbpasswd -a建 Samba 用户
[share]smb.conf 共享段
smbclientLinux 端自测

核心要点权限三元:服务可用 + Samba 用户有效 + 目录可写,三者缺一不可。

口诀 服务 / 用户 / 目录,逐一验证

易错点 Samba 密码与 Linux 登录密码是两套;漏一层权限 Windows 端就报无权限
05

防火墙

zone / 端口
--list-all审计放行项
--add-service放行服务
--add-port放行端口
--permanent + reload持久并生效

核心要点默认拒绝、明确放行;临时规则重启丢失,永久规则需 reload 才生效。

口诀 先审计,再放行,reload 后复核

易错点 直接 stop firewalld 排障 = 敞开整台机器;精确放行并 reload 才正确
06

综合排障

现象→证据→修复
描述现象锁定问题域
收集证据五课工具总动员
缩小范围逐层定位
复测记录闭环 + 复盘

核心要点一次只改一个变量立即复测;提交现象 / 证据 / 根因 / 修复 / 复测五段报告。

口诀 改一处、验一次、记一笔

易错点 最有价值的证据是「能证伪假设的那一条」,如 curl localhost 通 = 排除服务层
贯穿主线:六次课都遵循「先确认对象(网段 / 用户名 / 端口)→ 执行操作 → 立即验证 → 出错可回滚」的闭环;每次课的综合作业覆盖当堂全部知识点,验证步骤截图是批改依据。进入模块三 Shell 编程前,网络管理是「让服务器能被安全访问」的地基。
综合实训任务|当堂完成并提交操作记录

5 项任务,覆盖本专题全部服务Lab Tasks

每次课当堂完成对应任务并截图提交;个人目录统一命名为 stu序号_姓名拼音,文件名 / 端口 / 主机名带上学号序号 N,便于逐一核对。

5 项任务 建议总用时约 60 分钟 每步操作 + 验证截图
1

静态 IP任务 1 · 约 10 分钟

按真实网段把网卡改为静态 IP:IP 末位 = 序号(192.168.1.序号)、掩码 255.255.255.0、网关 192.168.1.1、DNS 114.114.114.114、ONBOOT=yes。systemctl restart network 后 ping 网关与公网各 4 次,把字段与结果写入个人目录下 netN.txt 并截图。

2

SSH 密钥任务 2 · 约 15 分钟

ssh-keygen -t rsa -b 4096 生成密钥对,确认私钥权限 600;ssh-copy-id 部署公钥到服务器;验证免密登录成功;再在服务器 PermitRootLogin no 加固后重启 sshd,提交 ls -l ~/.ssh/ 与免密会话两张截图。

3

Samba 共享任务 3 · 约 15 分钟

安装 Samba,创建共享目录 /srv/share序号 并 chmod 777,建系统用户 sambauser序号 并用 smbpasswd -a 设 Samba 密码;在 smb.conf 追加 [share序号] 段后启动 smb,用 smbclient 自测读写并对照未授权用户。

4

防火墙任务 4 · 约 10 分钟

确认 firewalld 运行;--add-service=ssh --permanent 放行 SSH;放行自定义端口 80序号/tcp --permanent 后 --reload;启动监听该端口的服务,用 curl 与 --list-all 复核,写入 fwN.txt。

5

综合排障任务 5 · 约 10 分钟

故意关闭 80序号/tcp 防火墙规则模拟故障;按排障闭环收集四类证据(服务 / 监听 / 放行 / 本地通),定位到防火墙层后重新放行并用外部地址复测,提交现象 / 证据 / 根因 / 修复 / 复测五段报告 tsN.txt。

提交方式:5 项任务按顺序完成,每项任务最后一步均为「执行验证命令 + 截图上传」;截图须包含命令原文与输出结果,个人目录统一命名 stu序号_姓名拼音,与作业一一对应。
本专题思考题|先自己想,再看答案

六个问题检验掌握程度Self-test

先自行作答,再点击展开答案核对;错 2 题以上的,回头重看对应课次。

Q1网关和 DNS 分别解决什么问题?为什么它们不能互相替代?
参考答案:网关解决的是「出本网段」的问题——它是本机访问外部网络的出口(默认路由),没有网关,本机能和同网段通信,但 ping 不通公网。DNS 解决的是「名字到地址」的翻译问题——没有 DNS,你仍能用 IP 直接访问公网(如 ping 180.101.50.188),但打不出 www.baidu.com。两者处在不同环节:网关管「能不能出去」,DNS 管「认不认得名字」。所以网关通 ≠ DNS 通,DNS 通也不代表网关通,必须分别验证。
Q2网络故障为什么要分层排查?不分层会怎样?
参考答案:网络由物理层、IP 配置、路由、DNS、端口服务等环节串联,任何一层断掉都会表现为同一句「连不上」。分层排查是「逐层用证据排除」:先确认网卡 UP(物理层),再看 IP 对不对,再看网关通不通,再看 DNS 解不解析,最后看服务端口在不在监听。不分层的后果:凭感觉乱改——例如网页打不开就急着改 DNS,其实网卡根本 DOWN,白忙一场;或同时改好几处,成功了也不知道是哪一处生效、失败了更不知回退哪一处。分层让故障一定落在某一层,省时且可回溯。
Q3私钥为什么不能上传或共享?
参考答案:SSH 密钥认证的安全模型是「私钥 = 你的身份凭证」,相当于门钥匙。公钥是锁,可以公开;私钥一旦泄露,任何拿到它的人都能以你的身份免密登录服务器,相当于复制了你的钥匙。上传到服务器会让服务器同时持有公私钥,若该机被攻破则身份全失;提交到公开仓库(GitHub 等)等于全网公开钥匙,黑客会批量扫描并登录。正确做法:私钥只留本地、权限 600;用 ssh-copy-id 只传公钥;一旦怀疑泄露立即在服务器删 authorized_keys 中对应行并重新生成密钥。
Q4共享服务权限为何需要双重检查(Samba 权限与 Linux 权限)?
参考答案:Samba 的「能写入」由两层权限叠加决定:第一层是 Samba 自身——smb.conf 里 valid users 是否允许该用户、read only 是否 no、Samba 用户密码是否有效;第二层是 Linux 文件系统——目录本身的属主与 rwx 权限。两层中任一层拒绝,Windows 端都会报「没有权限」,而且报错看起来一模一样。所以必须双重检查:先用 smbclient 在 Linux 端自测(隔离 Windows 因素),确认 Samba 层通过;再确认目录 chmod / 属主正确。漏查一层就会在「到底是哪层拦的」上反复试错。
Q5为什么不应直接关闭防火墙排障?
参考答案:排障时直接 systemctl stop firewalld 看似「立刻好了」,但带来两个问题:①不安全——等于把整台机器的端口全部敞开,在此期间任何可达的攻击者都能扫描利用,且容易忘了重新打开;②没定位真因——你只是绕过了防火墙,而不是放行了正确的服务,下次重启系统防火墙一开,问题照旧。正确做法:用 firewall-cmd --list-all 看当前放行项,精确 --add-service / --add-port 放行需要的服务,--permanent 后 --reload,再用 ss / curl 复核。既修好又安全,还留下了可复现的配置。
Q6排障报告中哪些证据最有价值?
参考答案:最有价值的证据是「能证伪假设的那一条」——它能把嫌疑从多个可能层中排除掉一个。例如本节课案例中 curl http://localhost 返回 200,立刻排除了「服务没起」「端口没监听」,把嫌疑直接锁定到防火墙层;而一堆无关的 ping / ip addr 输出虽然齐全,却不如这一条关键。好的排障报告不在于证据多,而在于:①每条证据对应「验证哪一层」②出现一个能缩小范围的关键证据 ③修复后用同样的方式复测确认消失。证据链闭合 + 关键证伪点 = 高价值报告。
下节预告 · 模块三「Shell 编程与运维」:Shell 脚本基础、变量与流程控制、定时任务 crontab、文本处理三剑客(grep/sed/awk)。
课后作业:①完成当堂 5 项实训任务并提交每步验证截图;②个人目录命名 stu序号_姓名拼音,IP 末位 / 端口 / 主机名带学号序号 N;③每类操作须保留「命令 + 输出」双证据。
Linux 智能运维与管理 · 模块二 专题二 · 网络管理 root@centos7:~# ip addr → firewall-cmd --list-all → ss -tlnp