新闻  |   论坛  |   博客  |   在线研讨会
Linux下使用指定网卡进行ping操作
电子禅石 | 2023-04-12 19:15:16    阅读:27470   发布文章

目录

  1. 为什么要使用知道那个网卡ping操作

  2. 使用指定网卡ping操作

  3. 总结


1、 为什么要使用指定网卡ping操作

  现在很多服务器都拥有双网卡甚至多网卡,有些是为了保持高可用,有些是网络隔离(内网与外网或者不同网络)

  很多学者在模拟企业级环境时也为一台虚拟机配置了双网卡,一块NAT模式,一块LAN区段模式,如果使用简单的ping ip形式的命令得到ping通的结果,只能证明两个虚拟机可以ping通,那究竟是使用了哪块网卡去ping另一个虚拟机?

 

2、实现使用指定网卡进行ping操作

  (1) 查ping的帮助

    遇到问题首先就想到查看命令帮助,获取到的帮助如下:

  # ping --help 
  ping: invalid option -- '-' 
   Usage: ping [-aAbBdDfhLnOqrRUvV64] [-c count] [-i interval] [-I interface] 
               [-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos] 
               [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option] 
               [-w deadline] [-W timeout] [hop1 ...] destination

    一眼就看到了这个  -I 接口  这个选项(也就这个沾点边),其他完全没有看出任何可以指定网卡设备的可能,接下来查看下man帮助,搜索  -I  这个选项查看详细解释。

1 # man ping
   I interface3               interface  is  either  an  address,  or  an  interface  name.  If interface is an4               address, it sets source address to specified interface address.  If interface  in5               an  interface  name,  it sets source interface to specified interface.  For IPv6,6               when doing ping to  a  link-local  scope  address,  link  specification  (by  the7               '%'-notation in destination, or by this option) is required.

    本人英文不好,百度翻译了一下,大概意思为:接口可以是地址,也可以是接口名。如果接口是4地址,将源地址设置为指定的接口地址。

    也就是说,  -I 接口  这个接口可以是网卡设备名,也可以是网卡设备的IP地址。接下来进行试验

 

  (2) 使用  -I  选项实现指定网卡进行ping操作

   我的linux虚拟机(主机A)有两张网卡,一张是NAT(192.168.187.10),另一张是LAN区段(172.16.0.10)

    第二台虚拟机(主机B),一张NAT(192.168.187.11),另一张是LAN区段(172.16.0.11)

    正常情况下 主机A  ping  主机B 是可以ping通的,但是不知道使用的是那张网卡:

 #  . PING . (.) (  bytes from .: icmp_seq= ttl= =  bytes from .: icmp_seq= ttl= =

 

    使用IP地址指定主机A的NAT网卡ping主机B的LAN区段网卡(理论不能ping通):

# ping I 192.168.187.10 172.16.0.112 
PING 172.16.0.11 (172.16.0.11) from 192.168.187.10 : 56(84) bytes of data.
 From 192.168.187.10 icmp_seq=1 Destination Host Unreachable

    实际确实ping不通,而且显示 PING 172.16.0.11 (172.16.0.11) from 192.168.187.10 证明ping操作是来自IP地址为192.168.187.10这块网卡的,实验成功

    另一种方式,使用主机A的NAT网卡名ping主机B的NAT网卡(理论可以ping通):

# ping I ens33 192.168.187.112 
PING 192.168.187.11 (192.168.187.11) from 192.168.187.10 ens33: 56(84) bytes of data. 64 bytes from 192.168.187.11: icmp_seq=1 ttl=64 time=18.1 ms4 64 bytes from 192.168.187.11: icmp_seq=2 ttl=64 time=4.11 ms

    实验成功,显示的也是 ping 192.168.187.11 来自 192.168.187.10 ens33网卡。

 

3、总结

  ping命令可以使用指定网卡进行ping操作

  用法是:

1 # ping  -I  本机指定网卡名或网卡的IP地址  目标地址


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客