我怎样才能把所有连接都放到FreeBSD下的给定主机上?

我知道基地分布的tcpdrop 。 但是这个工具需要指定端口号。 有什么工具可以通过IP删除连接吗?

那么,你可以使用一些unix工具来给你正确的tcpdrop语法,并通过你自己的脚本中的xargs运行它。 这是一个丑陋的例子,可能有更漂亮的方法:

 netstat -an | grep $IPADDR | awk '{print $4"."$5}' | awk -F '\.' '{print $1"."$2"."$3"."$4" "$5" "$6"."$7"."$8"."$9" "$10}' | xargs tcpdrop 

这使用awk来剥离两个IP /端口对,然后用一个点将它们粘在一起,以便您可以使用另一个awk来吐出所需的虚线四空间端口语法。

有可能是一个更清晰的一体式正则expression式。 $ IPADDR是你想要删除的IP地址。

顺便说一句,较新版本的tcpdrop(1)具有-a-l标志,使其易于“grepable”:

 [savetherbtz@host ~]$ tcpdrop -l -a | grep 127.0.0.1 tcpdrop 127.0.0.1 10006 127.0.0.1 14796 tcpdrop 127.0.0.1 10006 127.0.0.1 13794 tcpdrop 127.0.0.1 10006 127.0.0.1 12996 tcpdrop 127.0.0.1 10006 127.0.0.1 12208 tcpdrop 127.0.0.1 10018 127.0.0.1 27132 tcpdrop 127.0.0.1 27132 127.0.0.1 10018 tcpdrop 127.0.0.1 10018 127.0.0.1 24355 tcpdrop 127.0.0.1 24355 127.0.0.1 10018