Linux网络配置与排障
Linux 网络排障要覆盖网卡、地址、路由、DNS、防火墙、连接状态、抓包和应用监听。每一层都可能导致访问失败或性能异常。
# 1. 学习目标
- 掌握 ip、ss、dig、curl、tcpdump 等工具。
- 能按层次排查 DNS、路由、端口、TLS 和应用问题。
- 理解防火墙、NAT、连接跟踪和容器网络的影响。
# 2. 知识框架
Linux网络配置与排障
├─ 入门:建立术语、对象和日常操作的直觉
├─ 进阶:理解机制、边界和跨平台差异
└─ 专家:能排障、能设计、能阅读实现和研究材料
推荐顺序:本机地址 -> 路由 -> DNS -> 端口监听 -> 防火墙 -> 抓包 -> 应用日志。
# 3. 核心概念
| 主题 | 说明 | 工程关注 |
|---|---|---|
| 网卡地址 | 接口、IP、MAC、MTU 等基础配置 | 多网卡、MTU 不匹配 |
| 路由表 | 决定数据包从哪个网关和接口出去 | 默认路由、策略路由 |
| 防火墙 | 过滤或转发网络流量的规则 | iptables、nftables、firewalld |
| 抓包 | 观察真实网络包 | 确认请求是否到达、是否返回 |
# 4. 机制与实践
- 先确认服务端是否监听正确地址和端口,再查网络路径。
- DNS 问题要看解析结果、配置文件、缓存和上游 DNS。
- 抓包时同时在客户端和服务端观察,缩小丢包位置。
# 5. 常用命令与工具
| 命令或工具 | 作用 | 使用建议 |
|---|---|---|
ip addr | 查看网卡地址 | 确认接口和 IP |
ip route | 查看路由表 | 定位默认网关和路由选择 |
tcpdump -i eth0 port 80 | 抓取指定端口流量 | 确认包是否到达 |
# 6. 常见误区
- 服务只监听 127.0.0.1:本机能访问,远程访问失败。
- 忽略安全组或云防火墙:云上即使主机防火墙开放,平台安全组也可能拦截。
- 只在一端抓包:单端证据无法判断包丢在网络中间还是对端未响应。
# 7. 进阶研究方向
- 学习 netfilter、conntrack、nftables 和 iptables 的关系。
- 研究容器 CNI、bridge、veth 和 overlay 网络。
- 用 Wireshark 分析 TCP 握手、重传和 TLS 握手。
# 8. Tips 快问快答
Q:ss 和 netstat 推荐用哪个?
A:现代 Linux 更推荐 ss,速度更快,信息更完整。
Q:curl 失败怎么分层?
A:先看 DNS,再看 TCP 连接,再看 TLS,再看 HTTP 状态和应用响应。
Q:MTU 问题有什么表现?
A:小包正常、大包卡住或 TLS/上传异常,常见于 VPN、隧道和云网络。
# 9. 总结
Linux 网络排障要按层推进。只要能把地址、路由、端口、防火墙和抓包串起来,大多数连通性问题都能收敛。
上次更新: 2026/06/25, 10:02:19