当前位置:首页>Linux>Linux 静态路由配置 + tcpdump 抓包实操详解

Linux 静态路由配置 + tcpdump 抓包实操详解

  • 2026-10-28 16:57:49
Linux 静态路由配置 + tcpdump 抓包实操详解

技术弄巷

读完仅需

5
分钟

记得星标公众号

在Linux系统运维中,静态路由配置是实现跨网段通信的核心手段,而抓包工具是排查网络故障、分析网络数据包的必备技能。掌握静态路由的添加、内核转发开启、路由永久生效配置,以及tcpdump基础抓包方法,能高效解决服务器跨网段不通、网络请求异常等常见问题。本文整理了静态路由的工作原理、完整配置步骤,以及tcpdump抓取ping包的实操案例,所有命令均带详细注释,内容可直接复制粘贴使用,无多余冗余。

一、静态路由配置

1、路由器核心工作原理

Linux系统作为软路由的核心依赖路由表工作,路由表存储了「目标网段」与「出网接口」的一一对应关系。当服务器接收到网络数据包时,会根据数据包的目的IP地址去匹配路由表中的网段规则,匹配成功后通过对应的网卡接口转发数据包,以此完成跨网段通信。

2、临时添加静态路由 + 开启内核路由转发(核心操作)

  1. # 静态路由临时添加命令格式(重启失效)
  2. # route add -net 目的网段 gw 下一跳地址
  3. # 说明:-net 指定目标网段,gw 指定下一跳的网关/路由器IP地址
  4. # ========== 开启Linux内核的IP路由转发功能(路由必备,默认关闭) ==========
  5. # 1. 查看当前路由转发功能状态,0=关闭,1=开启
  6. [root@router-a ~]# cat /proc/sys/net/ipv4/ip_forward
  7. 0
  8. # 2. 临时开启路由转发功能,将数值1写入对应内核参数文件(重启服务器失效)
  9. [root@router-a ~]# echo 1>/proc/sys/net/ipv4/ip_forward
  10. # 3. 验证路由转发功能是否开启成功
  11. [root@router-a ~]# cat /proc/sys/net/ipv4/ip_forward
  12. 1

3、永久添加静态路由(重启不失效)

  1. # 永久静态路由配置规则:在 /etc/sysconfig/network-scripts/ 目录下,创建 【route-网卡名称】 文件
  2. # 文件命名规范:route-出接口名称 ,例如网卡为ens37,则文件名必须是 route-ens37
  3. # 文件内容格式:目的网段  via 下一跳地址 dev 出接口名称
  4. # via 指定下一跳网关,dev 指定数据包的出网网卡,三者缺一不可
  5. # 查看配置好的永久静态路由文件示例
  6. [root@router-a ~]# cat /etc/sysconfig/network-scripts/route-ens37
  7. 192.168.126.0/24 via 192.168.248.11 dev ens37

4、永久修改内核路由转发参数(关键,重启永久生效)

  1. # ========== 方法补充:查看内核参数相关命令 ==========
  2. # 1. 查看系统所有内核参数配置
  3. # sysctl -a 
  4. # 2. 过滤查询路由转发相关内核参数
  5. # sysctl -a | grep "ip_forward"
  6. # ========== 永久开启路由转发,修改核心配置文件 ==========
  7. # 编辑/etc/sysctl.conf内核参数主配置文件,写入固定配置项
  8. [root@router-a ~]# cat /etc/sysctl.conf
  9. net.ipv4.ip_forward =1
  10. # 重新加载sysctl.conf配置文件,使修改的内核参数立即生效,无需重启服务器
  11. [root@router-a ~]# sysctl -p

二、tcpdump 抓包实操(抓取ping包案例)

tcpdump是Linux系统自带的纯命令行网络抓包工具,轻量高效,无需额外安装,是排查网络连通性、分析数据包的首选工具,以下为最常用的抓取ICMP协议(ping包)完整实操。

  1. # tcpdump 抓包命令:抓取指定网卡的ping包(ICMP协议)
  2. # 命令参数说明:
  3. # -i ens33 :指定要抓包的网卡名称为ens33,不加该参数默认抓取所有网卡
  4. # -nn :不解析IP地址和端口号为域名/服务名,纯数字显示,抓包速度更快、结果更直观
  5. # icmp :指定只抓取ICMP协议的数据包,ping命令基于ICMP协议通信,精准过滤ping包
  6. [root@node02 ~]# tcpdump -i ens33 -nn icmp 
  7. tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
  8. listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
  9. 14:06:46.027991 IP 192.168.146.10>192.168.126.10: ICMP echo request, id 17021, seq 1, length 64
  10. 14:06:46.028023 IP 192.168.126.10>192.168.146.10: ICMP echo reply, id 17021, seq 1, length 64
  11. 14:06:47.048360 IP 192.168.146.10>192.168.126.10: ICMP echo request, id 17021, seq 2, length 64
  12. 14:06:47.048406 IP 192.168.126.10>192.168.146.10: ICMP echo reply, id 17021, seq 2, length 64

抓包结果说明:echo request是请求包(本机发送的ping请求),echo reply是应答包(目标主机的ping回应),能抓取到这两类包,说明本机与目标IP的ICMP通信正常。

最新文章

随机文章