首页 新能源汽车

Linux 网络命令精通:从排障到性能优化,十年老鸟实战经验

字数: (1397)
阅读: (5568)
内容摘要:Linux 网络命令精通:从排障到性能优化,十年老鸟实战经验,

在日常的 Linux 服务器运维工作中,网络问题是不可避免的。无论是网站访问速度慢、服务不稳定,还是服务器之间通信异常,都需要我们熟练掌握 Linux 网络命令,才能快速定位问题并解决。本文将结合我十年 Linux 后端架构经验,深入剖析常用网络命令的原理和使用方法,并分享一些实战避坑经验。

TCP/IP 协议栈与网络命令的关系

要理解 Linux 网络命令 的作用,首先需要了解 TCP/IP 协议栈的基本概念。TCP/IP 协议栈是互联网通信的基础,它定义了一系列协议,用于在网络上传输数据。常见的协议包括 TCP、UDP、IP、ICMP 等。

  • TCP(传输控制协议): 提供可靠的、面向连接的通信服务。例如,网页浏览、文件传输等都使用 TCP 协议。
  • UDP(用户数据报协议): 提供不可靠的、无连接的通信服务。例如,在线视频、语音聊天等可以使用 UDP 协议。
  • IP(网际协议): 负责将数据包从源地址发送到目标地址。
  • ICMP(互联网控制报文协议): 用于在 IP 网络中发送控制消息,例如,ping 命令就是基于 ICMP 协议的。

Linux 网络命令 就是用来查看和修改 TCP/IP 协议栈的状态,以及发送和接收数据的工具。例如,netstat 命令可以查看 TCP 连接状态,ping 命令可以测试网络连通性,tcpdump 命令可以抓取网络数据包。

常用 Linux 网络命令详解

1. ping:测试网络连通性

ping 命令是最常用的网络命令之一,用于测试目标主机是否可达。它的原理是向目标主机发送 ICMP Echo Request 报文,如果目标主机可达,则会返回 ICMP Echo Reply 报文。

Linux 网络命令精通:从排障到性能优化,十年老鸟实战经验
ping baidu.com
  • -c count:指定发送 ICMP Echo Request 报文的次数。
  • -i interval:指定发送 ICMP Echo Request 报文的时间间隔(秒)。
  • -s packetsize:指定发送 ICMP Echo Request 报文的大小(字节)。

实战避坑经验: 在测试网络连通性时,要注意目标主机可能禁用了 ICMP 协议,导致 ping 命令无法正常工作。这时,可以尝试使用其他网络命令,例如 telnetnc,测试目标主机的端口是否开放。

2. netstat:查看网络连接状态

netstat 命令用于查看网络连接状态、路由表、网络接口等信息。在排查网络问题时,netstat 命令可以帮助我们了解服务器的网络连接情况,例如,哪些端口被占用,哪些连接处于 ESTABLISHED 状态等。

netstat -an | grep 80  # 查看 80 端口的连接状态
  • -a:显示所有连接和监听端口。
  • -n:以数字形式显示地址和端口号,而不是尝试查找主机名和服务名。
  • -t:显示 TCP 连接。
  • -u:显示 UDP 连接。
  • -l:显示监听端口。
  • -p:显示进程 ID 和进程名称。

实战避坑经验: netstat 命令已经被 ss 命令逐渐取代,ss 命令的性能更好,功能更强大。因此,建议使用 ss 命令代替 netstat 命令。

Linux 网络命令精通:从排障到性能优化,十年老鸟实战经验

3. ssnetstat 的替代者

ss (socket statistics) 命令用于显示 socket 的统计信息。它比 netstat 命令更快更高效,尤其是在处理大量连接时。

ss -tln  # 查看 TCP 监听端口
ss -s    # 显示网络统计信息
  • -t:显示 TCP 连接。
  • -u:显示 UDP 连接。
  • -l:显示监听端口。
  • -n:以数字形式显示地址和端口号,而不是尝试查找主机名和服务名。
  • -p:显示使用 socket 的进程。
  • -s:显示网络统计信息。

实战避坑经验: 使用 ss 命令时,可以结合 grep 命令,快速查找特定的连接信息。例如,ss -tan | grep 22 可以查找所有连接到 22 端口的 TCP 连接。

4. tcpdump:抓包分析

tcpdump 命令是一个强大的抓包工具,可以抓取网络数据包,并将其保存到文件中。通过分析抓包文件,我们可以了解网络通信的详细过程,从而定位网络问题。

Linux 网络命令精通:从排障到性能优化,十年老鸟实战经验
tcpdump -i eth0 -w capture.pcap  # 抓取 eth0 网卡上的数据包,保存到 capture.pcap 文件
  • -i interface:指定要抓取的网卡。
  • -w filename:指定抓包文件的名称。
  • -n:不将地址转换为主机名。
  • -nn:不进行端口名称或主机名转换。
  • -s snaplen:设置抓取数据包的长度,默认为 68 字节。设置为 0 表示抓取完整的数据包。

实战避坑经验: 在使用 tcpdump 命令抓包时,要注意抓包文件的大小。如果抓包时间过长,抓包文件可能会变得非常大,导致分析困难。可以设置抓包时间或限制抓包文件的大小。

5. ifconfig / ip:配置网络接口

ifconfig 命令用于配置和显示网络接口的信息。虽然 ifconfig 命令已经被 ip 命令取代,但仍然有很多系统在使用 ifconfig 命令。

ip 命令是 Linux 系统中用于配置和管理网络接口的命令,功能比 ifconfig 命令更强大,更灵活。

Linux 网络命令精通:从排障到性能优化,十年老鸟实战经验
ip addr show  # 显示所有网络接口的信息
ip route show # 显示路由表

实战避坑经验: 在配置网络接口时,要注意 IP 地址、子网掩码、网关等参数的设置。错误的配置可能会导致网络无法正常工作。

高级应用:结合脚本自动化运维

熟练掌握 Linux 网络命令 后,可以将它们结合脚本,实现网络自动化运维。例如,可以使用脚本定期检查服务器的网络连接状态,并在出现异常时自动报警。也可以使用脚本批量配置服务器的网络接口,提高运维效率。

#!/bin/bash

# 检查服务器的网络连通性
HOST="baidu.com"
ping -c 3 $HOST > /dev/null
if [ $? -eq 0 ]; then
  echo "$HOST is reachable"
else
  echo "$HOST is unreachable"
fi

总结

本文详细介绍了常用的 Linux 网络命令,包括 pingnetstatsstcpdumpifconfigip 等。通过学习这些命令,可以帮助我们更好地了解 Linux 网络的原理和使用方法,从而快速定位和解决网络问题,并实现网络自动化运维。希望本文对您有所帮助。

Linux 网络命令精通:从排障到性能优化,十年老鸟实战经验

转载请注明出处: 半杯凉茶

本文的链接地址: http://m.acea4.store/blog/120706.SHTML

本文最后 发布于2026-04-02 13:55:47,已经过了25天没有更新,若内容或图片 失效,请留言反馈

()
您可能对以下文章感兴趣
评论
  • 摆烂大师 5 天前
    请问下大佬,如果服务器被DDOS攻击,有什么快速的排查方法吗?
  • 西瓜冰冰凉 1 天前
    写得真不错!条理清晰,实战经验也很到位,收藏了慢慢学习。
  • 折耳根yyds 6 天前
    请问下大佬,如果服务器被DDOS攻击,有什么快速的排查方法吗?