文章目录
前言
你是否遇到过:
- 新服务器无法联网,
ping
不通网关? - 应用提示“Connection refused”,但服务明明在运行?
- 想查看某个端口被哪个进程占用,却不知道用什么命令?
- 怀疑网络被劫持,想抓包分析却无从下手?
在 Linux 系统中,网络问题是运维中最常见、最紧急的故障类型。传统的 ifconfig
和 netstat
已被现代工具取代,掌握新一代网络命令是每个运维工程师的必备技能。
本文将带你从 基础网络配置 → 高级诊断 → 抓包分析 全流程实战,精通 ip
、ss
、tcpdump
等核心工具,打造“网络医生”级排障能力。
🧭 一、Linux 网络管理工具演进
传统命令 | 现代替代 | 所属工具包 |
---|---|---|
ifconfig | ip addr | iproute2 |
route | ip route | iproute2 |
netstat | ss | iproute2 |
arp | ip neigh | iproute2 |
✅ 结论:
ip
和ss
是当前 Linux 网络管理的标准工具。
🛠 二、核心命令 1:ip
—— 网络配置的“瑞士军刀”
ip
命令功能强大,可管理地址、路由、邻居等。
✅ 1. 查看网络接口(替代 ifconfig
)
ip addr show
# 或简写
ip a
输出解读:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
eth0
:网卡名称state UP
:接口已启用inet 192.168.1.100/24
:IP 地址和子网掩码
✅ 2. 启用/禁用网卡
sudo ip link set eth0 up # 启用
sudo ip link set eth0 down # 禁用
✅ 3. 配置 IP 地址
# 添加 IP
sudo ip addr add 192.168.1.101/24 dev eth0
# 删除 IP
sudo ip addr del 192.168.1.101/24 dev eth0
⚠️ 注意:
ip addr
配置是临时的,重启后失效。永久配置需修改/etc/sysconfig/network-scripts/ifcfg-eth0
(CentOS)或/etc/netplan/*.yaml
(Ubuntu)。
✅ 4. 查看和配置路由(替代 route
)
# 查看路由表
ip route show
# 或
ip r
# 添加默认网关
sudo ip route add default via 192.168.1.1 dev eth0
# 添加静态路由
sudo ip route add 10.0.0.0/8 via 192.168.1.2
✅ 5. 查看 ARP 表(替代 arp
)
ip neigh show
- 显示 IP 与 MAC 地址映射
- 可用于排查 ARP 欺骗
🔍 三、核心命令 2:ss
—— 替代 netstat
的高性能工具
ss
(Socket Statistics)比 netstat
更快、更详细。
✅ 1. 查看所有监听端口
ss -tuln
-t
:TCP-u
:UDP-l
:监听中-n
:不解析服务名(显示端口号)
输出示例:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.1:3306 0.0.0.0:*
✅ 2. 查看特定端口被哪个进程占用
sudo ss -tulnp | grep :80
-p
:显示进程信息- 输出中
PID/Program name
列显示占用进程
✅ 3. 查看 TCP 连接状态
ss -t state established
ss -t state time-wait
- 用于分析连接数、排查
TIME_WAIT
过多问题
🌍 四、网络连通性测试:ping
与 traceroute
✅ 1. ping
—— 测试网络连通性
ping -c 4 google.com
-c 4
:发送 4 个包- 关注 丢包率 和 延迟
✅ 高级用法:
ping -I eth0 8.8.8.8 # 指定从 eth0 接口发包
✅ 2. traceroute
—— 跟踪路由路径
traceroute google.com
- 显示数据包经过的每一跳(hop)
- 可用于定位网络延迟节点
✅ 替代工具:mtr
(更强大)
mtr google.com
- 结合
ping
和traceroute
- 实时动态显示
📡 五、DNS 解析诊断:dig
与 nslookup
✅ 1. dig
—— 强大的 DNS 查询工具
dig google.com
- 查看 A 记录、权威服务器、响应时间
- 推荐使用
+short
简化输出:dig +short google.com
✅ 2. nslookup
(较老,但仍可用)
nslookup google.com
✅ 3. 检查 /etc/resolv.conf
cat /etc/resolv.conf
- 确认 DNS 服务器配置正确
🕵️ 六、实战:tcpdump
抓包分析(网络版“黑匣子”)
tcpdump
是 Linux 下最强大的网络抓包工具,可用于深度诊断。
✅ 1. 安装 tcpdump
sudo yum install tcpdump # CentOS
sudo apt install tcpdump # Ubuntu
✅ 2. 基本语法
tcpdump [选项] [过滤表达式]
✅ 3. 常用命令示例
抓取指定网卡的数据包:
sudo tcpdump -i eth0
只抓取 TCP 流量:
sudo tcpdump -i eth0 tcp
抓取特定 IP 的流量:
sudo tcpdump host 192.168.1.100
抓取特定端口的流量(如 80):
sudo tcpdump port 80
抓取 HTTP 请求(显示内容):
sudo tcpdump -i eth0 -A -s 0 port 80 | grep -i "GET\|POST"
-A
:以 ASCII 显示-s 0
:捕获完整数据包
保存抓包文件(供 Wireshark 分析):
sudo tcpdump -i eth0 -w network.pcap
- 用 Wireshark 打开
network.pcap
可图形化分析
✅ 4. 过滤表达式语法
表达式 | 说明 |
---|---|
host 192.168.1.1 | 指定主机 |
net 192.168.1.0/24 | 指定网段 |
port 80 | 指定端口 |
src 192.168.1.1 | 源地址 |
dst port 443 | 目标端口 |
tcp[tcpflags] & tcp-syn != 0 | 抓取 SYN 包 |
🚨 七、实战:快速诊断网络故障
📌 场景 1:服务器无法上网
排查步骤:
-
检查网卡状态
ip link show eth0 # 确认 state UP
-
检查 IP 配置
ip addr show eth0 # 确认有正确 IP
-
检查网关路由
ip route # 确认有 default via 网关
-
ping 网关
ping 192.168.1.1 # 通 → 问题在外部;不通 → 本地网络问题
-
ping 外网(如 8.8.8.8)
ping 8.8.8.8 # 通但无法解析域名 → DNS 问题
-
检查 DNS
dig google.com
📌 场景 2:应用无法访问(Connection Refused)
可能原因:服务未启动、端口未监听、防火墙阻止。
排查步骤:
-
确认服务运行
systemctl status nginx
-
检查端口监听
ss -tuln | grep :80
-
检查防火墙
sudo firewall-cmd --list-ports # firewalld sudo ufw status # ufw
-
从客户端抓包
sudo tcpdump -i eth0 port 80 # 查看是否有 SYN 包进来,是否有 RST 响应
🧰 八、网络性能监控:nethogs
与 iftop
✅ 1. nethogs
—— 按进程查看带宽
sudo nethogs eth0
- 显示每个进程的实时上传/下载速度
- 找出“带宽杀手”
✅ 2. iftop
—— 按连接查看带宽
sudo iftop -i eth0
- 显示 IP 之间的实时流量
- 类似网络版的
top
🎯 写在最后
掌握 ip
、ss
、tcpdump
等现代网络工具,你就能:
- 快速配置和管理网络
- 精准诊断网络连通性、端口、DNS 问题
- 通过抓包深入分析协议交互
- 在故障发生时迅速定位根源
记住:
ip a
是查看网络的起点ss -tulnp
是排查端口冲突的利器tcpdump
是网络问题的“终极武器”- 网络故障,从物理层 → 网络层 → 传输层 → 应用层”逐层排查
在企业级环境中,网络是系统的“血管”,其稳定性直接决定业务可用性。精通 Linux 网络管理,是每一位运维工程师的立身之本。
如需获取更多关于 Linux 高可用网络、VLAN 配置、IPVS 负载均衡、网络性能调优 等深度实战内容,请持续关注本专栏 《Linux企业级运维实战》 系列文章。