web-dev-qa-db-ja.com

FreeBSDで特定のホストへのすべての接続を切断するにはどうすればよいですか?

基本配布されているtcpdropについて知っています。ただし、このツールではポート番号を指定する必要があります。 IPで接続を切断するツールはありますか?

2
Eugene Yarmash

そうですね、いくつかの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を使用して2つのIP /ポートペアを剥がし、それらをドットで接着するため、別のawkを使用して、目的のドット付きクワッドスペースポート構文を吐き出すことができます。

おそらく、より明確な、より滑らかなオールインワンの正規表現があります。 $ IPADDRは、削除するIPです。

0
cjp

ところで、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
1
SaveTheRbtz