通过 ss
+ kill
组合(推荐)
适用场景:精准关闭指定IP或端口的连接。
步骤:
-
查找目标连接:
ss -tpan | grep '客户端IP:端口' # 替换为实际IP和端口
-t
:仅TCP连接-p
:显示进程信息-n
:禁用域名解析(加速查询)- 输出示例:
ESTAB 0 0 192.168.1.5:22 203.0.113.10:54321 users:(("sshd",pid=1234,fd=3))
-
终止连接进程:
sudo kill -9 1234 # 替换为实际PID
kill -9
强制终止进程(慎用),常规情况优先用kill -TERM
。
使用 fuser
命令(内核级工具)
适用场景:直接通过端口关闭连接。
操作:
sudo fuser -k 端口号/tcp # 例如关闭80端口:sudo fuser -k 80/tcp
-k
:杀死占用该端口的进程- 自动识别PID,无需手动查询。
tcpkill
工具(实时阻断)
适用场景:强制中断活跃连接(需安装)。
步骤:
- 安装工具:
sudo apt install dsniff # Debian/Ubuntu sudo yum install dsniff # CentOS/RHEL
- 阻断连接:
sudo tcpkill -i eth0 host 客户端IP # 替换网卡名和IP
持续监控并中断指定IP的新建/活跃连接。
防火墙拦截(预防性措施)
适用场景:批量阻止IP访问,非直接关闭连接但效果等同。
操作:
sudo iptables -A INPUT -s 客户端IP -j DROP # 永久阻断IP sudo nft add rule ip filter INPUT ip saddr 客户端IP drop # nftables替代方案
高级工具:conntrack
(连接跟踪)
适用场景:处理NAT或复杂网络环境。
步骤:
sudo conntrack -D -s 客户端IP # 删除该IP的所有连接记录 sudo conntrack -D -d 服务端IP --dport 端口 # 删除目标端口的连接
⚠️ 关键注意事项
- 权限要求:除
ss
查看外,其他操作均需sudo
权限。 - 风险规避:
- 避免
kill -9
强制终止关键服务(如数据库),优先尝试kill -TERM
。 - 生产环境操作前备份连接状态(
ss -tpan > connections.log
)。
- 避免
- 连接状态:
ESTABLISHED
:活跃连接TIME_WAIT
:系统自动回收,无需手动干预。
- 替代方案:
- 配置服务限制(如SSH的
MaxStartups
、Nginx的max_conns
)。 - 使用
fail2ban
自动封禁恶意IP。
- 配置服务限制(如SSH的
方法 | 优势 | 适用场景 |
---|---|---|
ss + kill |
精准控制 | 单连接处理 |
fuser |
快速按端口操作 | 端口占用清理 |
tcpkill |
实时阻断 | 应急安全响应 |
防火墙 | 批量阻止 | 预防性防护 |
conntrack |
处理NAT连接 | 复杂网络环境 |
引用说明:
- Linux
ss
命令文档:man ss
(基于iproute2工具集)fuser
使用指南:man fuser
(util-linux包)tcpkill
来源:dsniff项目(官网存档)- iptables/nftables 官方手册:
man iptables
/man nft
- conntrack 文档:
man conntrack
(netfilter项目)
操作前请查阅相关man
手册或内核文档,确保兼容性。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5416.html