Linux 网络配置与故障排查:从 `ip`、`ss`、`netstat` 到 `ping`、`traceroute`、`tcpdump` 全面实战指南

前言

在 Linux 服务器运维中,网络问题是最常见、最棘手的故障类型之一。你是否曾遇到过:

  • 服务器无法访问外部网络?
  • 客户端连不上你的 Web 服务?
  • 网络延迟高,但 ping 却正常?
  • 怀疑有异常连接,却不知如何排查?

Linux 提供了一整套强大的网络诊断工具,但很多用户仍停留在 ifconfignetstat 的“上古时代”,对现代工具如 ipsstcpdump 缺乏系统认知。

本文将带你从零构建 Linux 网络排查知识体系,深入讲解核心命令的使用场景、输出解读与实战技巧,助你成为“网络问题终结者”。


🧭 一、Linux 网络工具演进:告别 ifconfig,拥抱 ip

传统工具(如 ifconfignetstat)已被标记为过时(deprecated),现代 Linux 系统推荐使用:

旧命令新命令所属工具包
ifconfigipiproute2
netstatssiproute2
——arpip neighiproute2

建议:新项目/服务器统一使用 ipss,性能更好,功能更全。


🔧 二、核心网络命令详解

1. ip 命令:网络配置的“全能选手”

ipifconfig 的现代替代品,功能涵盖地址、路由、邻居、隧道等。

✅ 查看网络接口

ip link show
  • 显示所有网络接口(物理/虚拟)及其状态(UP/DOWN)。

✅ 查看 IP 地址

ip addr show
# 或简写
ip a

输出示例:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
  • inet:IPv4 地址
  • /24:子网掩码(255.255.255.0)
  • scope global:全局可访问

✅ 临时配置 IP(重启失效)

sudo ip addr add 192.168.1.101/24 dev eth0
sudo ip link set eth0 up

✅ 查看路由表

ip route show
# 或
ip r

输出:

default via 192.168.1.1 dev eth0 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
  • default via:默认网关
  • 若无默认路由,服务器无法访问外网!

2. ss 命令:Socket 状态查看器(netstat 替代品)

ss(Socket Statistics)比 netstat 更快、更高效,尤其适合高并发场景。

✅ 查看所有监听端口

ss -tuln
  • -t:TCP
  • -u:UDP
  • -l:监听中(LISTEN)
  • -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:*
  • 0.0.0.0:22:SSH 服务监听所有接口
  • 127.0.0.1:3306:MySQL 仅本地访问

✅ 查看所有 TCP 连接(含 ESTABLISHED)

ss -tulnp
  • -p:显示进程信息(需 root 权限)

✅ 查看特定端口

ss -tuln | grep :80

最佳实践:用 ss 替代 netstat -tulnp,速度提升显著。


3. ping —— 连通性测试基础

ping google.com
ping 192.168.1.1

✅ 关键指标:

  • 丢包率(Packet loss):>0% 表示网络不稳定
  • 延迟(ms):越低越好

💡 高级用法:

ping -c 4 google.com      # 只发4个包
ping -I eth0 8.8.8.8      # 指定从 eth0 接口发出

⚠️ 注意:某些服务器禁用了 ICMP(ping),ping 通≠服务可用。


4. traceroute / tracepath —— 路径追踪

traceroute google.com
  • 显示数据包从本机到目标的每一跳(hop) 及延迟。

✅ 用途:

  • 定位网络延迟发生在哪一跳
  • 判断是否绕路(如跨境线路)

💡 替代命令(无需 root):

tracepath google.com

5. dig / nslookup —— DNS 解析诊断

✅ 使用 dig(推荐)

dig google.com

输出关键字段:

  • QUESTION SECTION:查询的域名
  • ANSWER SECTION:返回的 IP
  • SERVER:使用的 DNS 服务器

✅ 查看特定记录

dig MX example.com    # 邮件服务器
dig CNAME cdn.example.com

提示:若 dig 返回 NXDOMAIN,说明域名不存在或 DNS 配置错误。


6. tcpdump —— 网络抓包神器(Wireshark 命令行版)

✅ 安装

sudo apt install tcpdump    # Debian/Ubuntu
sudo yum install tcpdump    # CentOS/RHEL

✅ 基本用法

# 抓取 eth0 接口所有包
sudo tcpdump -i eth0

# 抓取指定端口(如 80)
sudo tcpdump -i eth0 port 80

# 抓取特定主机
sudo tcpdump -i eth0 host 192.168.1.100

# 保存到文件(供 Wireshark 分析)
sudo tcpdump -i eth0 -w capture.pcap

✅ 高级过滤

# 抓取 TCP SYN 包(新连接)
sudo tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'

# 抓取 HTTP 请求
sudo tcpdump -i eth0 -A 'tcp port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420)'

实战场景:怀疑有 DDoS 攻击?用 tcpdump 抓包分析源 IP 分布。


🚀 三、经典网络问题排查流程

📌 场景 1:服务器无法上网

排查步骤:

  1. 检查接口状态

    ip link show eth0
    

    → 确认是否为 UP 状态。

  2. 检查 IP 配置

    ip addr show eth0
    

    → 是否有正确 IP 和子网掩码?

  3. 检查默认网关

    ip route show
    

    → 是否有 default via

  4. 测试网关连通性

    ping 192.168.1.1
    

    → 通?继续;不通?检查物理连接或交换机。

  5. 测试 DNS 解析

    dig google.com
    

    → 无返回?检查 /etc/resolv.conf

  6. 测试外网连通性

    ping 8.8.8.8
    

📌 场景 2:服务无法访问(如 Web 服务 80 端口)

排查步骤:

  1. 服务是否在监听?

    ss -tulnp | grep :80
    

    → 无输出?服务未启动或绑定错接口。

  2. 防火墙是否放行?

    sudo iptables -L -n | grep 80
    # 或 firewalld
    sudo firewall-cmd --list-ports
    
  3. 本地能否访问?

    curl http://localhost
    

    → 通?问题在外部网络;不通?服务配置错误。

  4. 从客户端 telnet 测试端口

    telnet your-server-ip 80
    

    → 连接失败?网络或防火墙问题。


📊 四、命令速查表

功能推荐命令
查看网络接口ip link show
查看 IP 地址ip addr show
查看路由表ip route show
查看端口监听ss -tuln
查看所有连接ss -tulnp
测试连通性ping
追踪路径traceroutetracepath
DNS 诊断dig
网络抓包tcpdump

🎯 写在最后

网络是系统的“神经系统”,一旦出问题,影响巨大。掌握 ipsstcpdump 等现代工具,不仅能快速定位故障,还能深入理解 TCP/IP 协议的工作机制。

记住排查口诀

  • 先本地,后远程
  • 先配置,后连通
  • 先服务,后防火墙
  • 抓包定乾坤

不要依赖图形化工具,命令行才是运维的终极武器


如需获取更多关于 Linux 内核调优、企业级服务部署、自动化运维与安全加固 等深度实战内容,请持续关注本专栏 《Linux企业级运维实战》 系列文章。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值