2.3.6 常用网络管理工具与实践

常用网络管理工具应围绕“查看—诊断—配置—验证”的流程使用,优先保证可读性与可回滚性,避免在生产环境进行不可控变更。本节给出工具原理草图、安装方式、关键命令解释、完整示例、排错与练习。

原理草图:网络排查闭环#

文章图片

安装与准备(发行版通用)#

# Debian/Ubuntu
sudo apt update
sudo apt install -y iproute2 net-tools traceroute mtr-tiny dnsutils \
  ethtool tcpdump curl netcat-openbsd

# RHEL/CentOS/Rocky/Alma
sudo yum install -y iproute net-tools traceroute mtr ethtool \
  tcpdump curl nc bind-utils

查看与状态类工具(含解释与示例)#

  • ip addr / ip link:查看接口、地址与链路状态;UP 表示管理状态可用,LOWER_UP 表示物理链路已通。
  • ip route:查看路由表;default 为默认路由,metric 为优先级。
  • ss -lntup:查看监听端口与进程映射。
  • ethtool <iface>:查看物理链路、速率与双工信息。

示例:查看接口与路由并保存现状

ip link show
ip addr show
ip route show

# 保存快照,便于回滚与比对
mkdir -p /var/tmp/net_snapshot
ip addr show > /var/tmp/net_snapshot/ip_addr.txt
ip route show > /var/tmp/net_snapshot/ip_route.txt
ss -lntup > /var/tmp/net_snapshot/ss_listen.txt

诊断与连通性类工具(含解释与示例)#

  • ping -c:基础连通性与延迟观测。
  • traceroute/tracepath:定位路由路径。
  • mtr:持续观测延迟与丢包。
  • curl/nc -zv:验证端口连通与应用响应。
  • dig/nslookup:验证 DNS 解析链路与结果一致性。

示例:从链路到应用逐层验证

# 1) 链路与路由
ping -c 3 192.168.1.1

# 2) 路由路径
traceroute -n 8.8.8.8

# 3) DNS 解析
dig +short www.example.com

# 4) TCP 端口联通性
nc -zv www.example.com 80

# 5) 应用层响应
curl -I http://www.example.com

配置与维护类工具(含解释与示例)#

  • ip addr add/delip route add/del:临时配置,重启后失效。
  • nmcli/nmtui:NetworkManager 环境持久化配置。
  • ifup/ifdown:传统网络脚本环境使用。
  • resolvectl/systemd-resolve:systemd-resolved 环境下 DNS 查看与配置。

示例:临时添加地址与路由并验证

# 添加临时 IP(重启失效)
sudo ip addr add 192.168.10.10/24 dev eth0

# 添加临时默认路由
sudo ip route add default via 192.168.10.1 dev eth0 metric 100

# 验证
ip addr show dev eth0
ip route show
ping -c 3 192.168.10.1

示例:NetworkManager 持久化配置

# 查看连接名称
nmcli con show

# 假设连接名为 "System eth0"
sudo nmcli con mod "System eth0" ipv4.addresses 192.168.10.10/24
sudo nmcli con mod "System eth0" ipv4.gateway 192.168.10.1
sudo nmcli con mod "System eth0" ipv4.dns "114.114.114.114 8.8.8.8"
sudo nmcli con mod "System eth0" ipv4.method manual

# 使配置生效
sudo nmcli con up "System eth0"

# 验证
nmcli con show "System eth0" | egrep 'ipv4.addresses|ipv4.gateway|ipv4.dns'

抓包与分析类工具(含解释与示例)#

  • tcpdump -i <iface> -nn:抓取数据包,-nn 禁止解析主机名和端口名。
  • ss -o state:查看连接状态与超时。

示例:针对 80 端口排查 HTTP 失败

# 1) 查看连接状态
ss -o state syn-sent '( dport = :80 )'

# 2) 抓包(限制端口与主机)
sudo tcpdump -i eth0 -nn host 203.0.113.10 and port 80 -c 50

# 3) 结合 curl 验证
curl -v http://203.0.113.10/

常见排错场景与步骤#

1) 访问不了外网
- 检查接口状态:

ip link show dev eth0
  • 检查默认路由:
ip route | grep default
  • 检查 DNS:
resolvectl status | sed -n '1,120p'
dig +short www.baidu.com

2) 端口不通
- 检查服务是否监听:

ss -lntup | grep ':8080'
  • 防火墙与安全组:
# 本机防火墙(示例)
sudo iptables -L -n | sed -n '1,80p'
  • 远端连通性:
nc -zv 203.0.113.10 8080

3) 间歇性丢包
- 观测:

mtr -rw 8.8.8.8
  • 检查链路速率与双工:
ethtool eth0 | egrep 'Speed|Duplex|Link detected'

实战练习(含预期效果)#

1) 用 ip 临时添加地址并验证连通
- 任务:

sudo ip addr add 10.10.10.10/24 dev eth0
ping -c 3 10.10.10.1
  • 预期:ping 有响应,ip addr 可见新增地址。

2) 用 nmcli 持久化 DNS 并验证解析
- 任务:

sudo nmcli con mod "System eth0" ipv4.dns "8.8.8.8 1.1.1.1"
sudo nmcli con up "System eth0"
dig +short example.com
  • 预期:返回 A 记录,解析成功。

3) 用 tcpdump 定位连接失败
- 任务:

sudo tcpdump -i eth0 -nn host 203.0.113.10 and port 443 -c 20
curl -vk https://203.0.113.10/
  • 预期:抓包中出现 SYN/SYN-ACK/ACK 或 TLS 交互;若无 SYN-ACK,说明链路或端口被阻断。

关键命令速查(命令→作用)#

  • ip addr:查看/配置 IP 地址
  • ip route:查看/配置路由
  • ss -lntup:查看监听端口与进程
  • ethtool eth0:链路速率与双工
  • ping -c:连通性
  • traceroute:路径定位
  • mtr:丢包/延迟统计
  • dig:DNS 解析
  • nmcli:持久化网络配置
  • tcpdump:抓包分析