首页/网络/网络排障速查/ping 指定源接口/源地址:-I
连通性与链路检测54 条

ping 指定源接口/源地址:-I

多网卡、多出口、策略路由环境必须指定源:用 -I 绑定源接口或源地址,才能复现「服务器选了错误的源 IP」类故障。

网络排障速查网络更新于 2026-10-13

-I 为什么必须会

多网卡、多出口、策略路由的环境里,同一个目标从不同源地址发出,走的路径、返回的结果、对端的策略判定都可能不同。ping 的 -I 参数用来绑定源:传接口名时由内核按该接口选择源地址,传 IP 地址时强制定用这个源。复现「服务器选了错误的源 IP 导致对端拒绝」这类故障,必须先固定源再测,否则每次结果都不一样。

基本信息

适用平台Linux iputils-ping(-I 也支持传接口名)
语法差异-I eth1 传接口名,内核按接口选源;-I 10.10.0.2 传地址,强制绑定
配套命令ip route get 查看内核实际选用的出接口与源地址
典型场景多网卡、多出口、VRF、策略路由环境
权限要求绑定源地址通常需要 root 权限

典型使用场景

  • 业务走了错误的源 IP 被对端策略拒绝:固定源复现故障
  • 多出口服务器验证某条链路是否可用:绑定对应出口网卡的源地址测试
  • VPN 或隧道场景确认流量是否从隧道接口发出
  • MTU 探测时固定出接口,避免结果随选路变化
  • 对比两个源地址的连通性差异,快速定位策略路由问题

绑定源接口与源地址

绑定源接口与源地址
ping -I eth1 -c 3 10.0.0.5                 # 指定出接口,内核按该接口选源地址
ping -I 10.10.0.2 -c 3 10.0.0.5             # 强制使用该源 IP 发出
ping -I eth1 -s 1400 -M do -c 2 10.0.0.5    # 组合:从指定口做 MTU 探测
# 先查内核会选哪个源地址,再决定是否要绑定
ip route get 10.0.0.5                       # 输出含 dev 与 src
ip route get 10.0.0.5 from 10.10.0.2        # 指定源时的选路结果

参数与语义

写法语义说明
-I eth1绑定出接口源地址由内核按接口选择,可能不是业务期望的那个
-I 10.10.0.2强制绑定源地址最贴近业务真实流量形态的验证方式
不加 -I走默认选路结果只代表默认路径,多出口机器上参考价值有限
-M do禁止分片配合 -s 用于 MTU 探测
-c N发送包数巡检用 1-3,评估质量用更多
策略路由或 VRF 环境下「同一条命令、不同源地址、结果不同」是常态;做对比测试时务必固定源,否则结论不可复现。

易错点

  • 不指定源就下结论:结果只代表默认路由路径,多出口机器上与其他业务路径可能完全不同
  • 混淆 -I 的两种用法:传接口名由内核选源,传地址才强制绑定,误用会得到与预期不符的源 IP
  • 忽略对端策略:本机侧看起来通了,对端可能按源地址做了限制,验证时必须用业务真实源地址
  • 绑定源地址时忘记权限:非 root 用户执行会直接失败,误判为网络不通

数据来源与参考

  • man 8 ping(-I 参数)
  • iproute2 手册:ip route get

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌