Linux中如何关掉ping服务

来源:互联网 发布:手机淘宝旺旺名怎么看 编辑:程序博客网 时间:2024/06/03 09:26
ping命令产生“ICMP echorequest”包。ICMP代表Internet Control MessagingProtocol,系统没有专门的守护进程来负责ICMP echo应答,应答包是由内核直接产生的。

   如果要阻止系统产生应答包,可以利用ipfwadm或者ipchains工具,在您的包过滤表里加一条记录。

   当然,您的系统要配置成支持包过滤。大多数Linux发布缺省就具有了该功能,例如,在Linux2.2内核中使用ipchains:

    ipchains-A output -p icmp --icmp-type pong -j DENY

    -A表示是添加(append)模式,将规则加到output链条后面。-p表示协议类型是ICMP其后--icmp-type说明icmp协议的子类型为pong,pong是 echo-reply的缩写。-j表示将继续匹配包的动作。DENY说明拒绝该包。

    在旧版Linux2.0内核中可以使用ipfwadm工具:ipfwadm -I -a deny -P icmp -S 0.0.0.0/0 0,可读性要稍差一点。

    注意,关闭ICMPecho应答不是好的办法,而关闭所有的ICMP包则更糟。这将会破坏系统TCP/IP模块的一些行为。一些包如“destinationunreachable”,“fragmentationneeded when DF optionset”被关闭将会使TCP/IP性能严重下降。ipchains到Linux2.4将被Netfilter(IPTables)取代。

白东注:关于关闭ping响应的方法,更好的方法请参见这篇文章中的方法《理解Proc 文件系统》。比这里的方法要好的多