【Linux】tcpkill离线rpm安装

一、概念

TCPKILL是一个TCP连接释放工具,主要用于客户端TCP连接未释放导致Address already in use情况。TCPKILL默认只能干掉活跃连接,无法释放非活跃连接、半连接。

二、安装

1.通过yum安装

yum install dsniff
yum -y install dsniff --enablerepo=epel

2.通过rpm安装

rpm -ivh dsniff-2.4-0.17.b1.el6.x86_64.rpm
error: Failed dependencies:
	libICE.so.6()(64bit) is needed by dsniff-2.4-0.17.b1.el6.x86_64
	libSM.so.6()(64bit) is needed by dsniff-2.4-0.17.b1.el6.x86_64
	libXmu.so.6()(64bit) is needed by dsniff-2.4-0.17.b1.el6.x86_64
	libdb-4.7.so()(64bit) is needed by dsniff-2.4-0.17.b1.el6.x86_64
	libnet.so.1()(64bit) is needed by dsniff-2.4-0.17.b1.el6.x86_64
	libnids.so.1.24()(64bit) is needed by dsniff-2.4-0.17.b1.el6.x86_64

$rpm -ivh libICE-1.0.6-1.el6.x86_64.rpm

$rpm -ivh libSM-1.2.1-2.el6.x86_64.rpm 

$rpm -ivh libXmu-1.1.1-2.el6.x86_64.rpm
error: Failed dependencies:
	libXext.so.6()(64bit) is needed by libXmu-1.1.1-2.el6.x86_64
	libXt.so.6()(64bit) is needed by libXmu-1.1.1-2.el6.x86_64

	$rpm -ivh libXext-1.3.3-1.el6.x86_64.rpm

	$rpm -ivh libXt-1.1.4-6.1.el6.x86_64.rpm

$rpm -ivh libXmu-1.1.1-2.el6.x86_64.rpm

$rpm -ivh libnet-1.1.6-7.el6.x86_64.rpm

$rpm -ivh libnids-1.24-1.el6.x86_64.rpm 

$yum install compat-db47

$rpm -ivh dsniff-2.4-0.17.b1.el6.x86_64.rpm 

3.校验

$tcpkill
Version: 2.4
Usage: tcpkill [-i interface] [-1..9] expression

三、使用

1.命令

tcpkill -i eth0 -9 port yyyy

tcpkill -i eth0 host xxx.xxx.xxx.xxx and port yyyy

2.实例:释放指定端口连接

1.查找连接对应被动端口号
netstat -an|grep 3600
tcp        0      0 0.0.0.0:3600                0.0.0.0:*                   LISTEN  
tcp        0    378 22.61.189.76:3600          13.66.110.215:59986        ESTABLISHED

2.踢掉59986连接
tcpkill -i eth0 -9 port 59986
tcpkill: listening on em1 [port 59986]
22.61.189.76:59986 > 13.66.110.215:3600: R 2505431948:2505431948(0) win 0

3.ctrl+c结束后再次查看连接
netstat -an|grep 3600
tcp        0      0 0.0.0.0:3600                0.0.0.0:*                   LISTEN 

3.实例:释放指定IP连接

1.统计171.1.1.171 IP连接数
netstat -anp | grep "171.1.1.171" | wc -l

2.统计80端口连接数
netstat -nat | grep -i "80" | wc -l

3.释放172.30.219.7 IP连接
tcpkill -9 host 172.30.219.7

4.实例:其他情况

tcpkill -9 host 192.168.10.30 &>/dev/null

tcpkill -9 port ftp &>/dev/null
tcpkill -9 port 53 and port 8000 &>/dev/null

tcpkill -9 net 192.168.10 &>/dev/null
tcpkill -9 net 192.168.10 and port 22 &>/dev/null

扩展:如何干掉一条tcp连接(活跃/非活跃)

原理:对于nc已经建立的连接运行tcpkill 后无法立即干掉,只有在这个连接上有数据传输的时候才会把发送rst 包将连接reset掉

1.干掉活跃连接
直接利用tcpkill干掉活跃连接即可

2.干掉非活跃连接
构造SYN 包发送给连接的一端,收到应答后根据应答中的序列号构造RST报文干掉连接

3.干掉半连接
干掉半连接的方法同干掉非活跃连接的方式一样,只是SYN 包一定要向半连接还存在的一端发送

4.注意问题
tcpkill 一定要运行在能接收到应答包的主机上在,最好运行在连接或半连接存在的一端主机上

5.关于tcpkill代码改动
(1)增加函数build_syn 根据相关参数构造syn 报文并发送到网络中,后台线程运行此函数不断发送syn 包
(2)运行pcap_loop捕获应答报文,并发送RST报文,reset 连接。从本质上说其实就是让非活跃连接或者半连接上有报文流动,被tcpkill捕获到之后发RST报文干掉连接

6.改动过后新tcpkill干掉一条连接的使用方法
sudo tcpkill -s 192.168.103.12:10261 -d 192.168.103.169:12345

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值