tcpkill可精准终止Linux中指定异常TCP连接,无需重启服务;需先安装dsniff工具集,再用ss定位连接,最后通过RST包断连并验证。

可以使用 tcpkill 工具精准终止 Linux 中指定的异常 TCP 连接,无需重启服务或影响其他连接。
确认系统已安装 tcpkill
tcpkill 属于 dsniff 工具集,多数发行版默认未安装:
- Ubuntu/Debian:运行 sudo apt install dsniff
- CentOS/RHEL/Rocky:运行 sudo yum install dsniff(或 dnf install dsniff)
- 安装后可通过 tcpkill -V 验证版本
查找目标异常连接
先用 ss 或 netstat 定位问题连接(如高频率重连、可疑 IP、长时间 ESTABLISHED 却无数据):
- 查看所有 ESTABLISHED 连接:ss -tunp | grep ESTAB
- 筛选特定端口(如 22):ss -tunp | grep ':22'
- 定位某 IP 的连接:ss -tunp | grep '192.168.1.100'
- 注意记下目标连接的 源IP:端口 和 目的IP:端口(如 192.168.1.100:54322 → 10.0.0.5:80)
执行精准断连操作
tcpkill 通过发送 RST 包中止连接,语法灵活,常用方式如下:
- 按目标 IP 和端口终止所有相关连接:sudo tcpkill -i eth0 host 192.168.1.100 and port 22
- 仅终止特定五元组(更精确):sudo tcpkill -i eth0 src host 192.168.1.100 and dst port 80
- 终止某 IP 的所有连接(慎用):sudo tcpkill -i eth0 host 192.168.1.100
- 添加 -9 参数可强制立即退出(避免等待):sudo tcpkill -9 -i eth0 port 3306
验证连接是否已断开
执行后快速检查连接状态是否消失:
- 再次运行 ss -tunp | grep '192.168.1.100',应无输出或状态变为 CLOSED
- 客户端通常会收到 “Connection reset by peer” 或 “Broken pipe” 提示
- 若连接迅速重建,说明有自动重连机制(如监控脚本、KeepAlive 应用),需进一步排查源头










