在ping中使用-m选项

时间:2016-04-26 06:29:16

标签: linux unix networking ping

ping -m选项有什么用?我读了ping手册页但我无法理解。在谷歌搜索后,我看到如果使用-m选项,则将SO_MARK选项添加到套接字。那么,这个选项的用途是什么?我们什么时候应该使用它?

提前致谢。

2 个答案:

答案 0 :(得分:0)

选项-m仅存在于OSX计算机上。

它允许您为传出数据包设置IP生存时间。如果未指定,则内核使用net.inet.ip.ttl MIB变量的值。

TTL值定义路由器之间可以执行的跳数。

答案 1 :(得分:0)

在Linux上,SO_MARK用于标记传出的数据包:

   SO_MARK (since Linux 2.6.25)
          Set the mark for each packet sent through this socket (similar
          to the netfilter MARK target but socket-based).  Changing the
          mark can be used for mark-based routing without netfilter or
          for packet filtering.  Setting this option requires the
          CAP_NET_ADMIN capability.

因此,如果您使用该选项ping:

$ping -m 10 <host>

然后可以使用<host>上的iptables过滤:

$iptables -A INPUT -m mark --mark 0xa -j ACCEPT

或直接使用getsockopt()的代码。

它可以用于各种原因,例如路由决策或网络调试。