Linux如何正确关闭网络连接?3种方法

断开特定客户端的TCP连接

当需要终止某个远程客户端(如SSH用户或异常访问IP)的活跃连接时:

  1. 定位目标连接
    使用ssnetstat命令查看活跃连接:

    sudo ss -tunp | grep <客户端IP或端口>  # 示例:sudo ss -tunp | grep 192.168.1.100

    输出示例:

    tcp ESTAB 0 0 192.168.1.10:22  192.168.1.100:54321 users:(("sshd",pid=1234,fd=3))
  2. 终止连接

    • 方法1:通过进程ID(PID)终止
      找到输出中的pid值(如1234),执行:

      sudo kill -9 1234  # 强制结束进程
    • 方法2:使用ss直接断开(需内核≥4.9)
      sudo ss -K dst 192.168.1.100 dport = 54321  # 指定目标IP和端口

通过防火墙禁止客户端访问

使用防火墙永久阻止特定IP的网络访问:

  1. iptables(传统方案)

    sudo iptables -A INPUT -s <客户端IP> -j DROP  # 禁止该IP所有入站流量
    sudo iptables -A OUTPUT -d <客户端IP> -j DROP # 禁止出站流量
    sudo iptables-save > /etc/iptables/rules.v4  # 永久保存规则
  2. firewalld(推荐,适用于CentOS/RHEL)

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<客户端IP>" reject'  # 拒绝IP
    sudo firewall-cmd --reload  # 生效配置
  3. UFW(Ubuntu/Debian)

    sudo ufw deny from <客户端IP> to any  # 禁止IP访问

完全关闭网络接口

临时禁用整张网卡(如eth0):

sudo ip link set eth0 down  # 关闭接口
sudo ifconfig eth0 down     # 传统命令(部分系统兼容)

恢复网络

sudo ip link set eth0 up    # 重新启用

关键注意事项

  1. 风险预防

    • 避免在生产环境直接kill关键服务(如数据库连接)。
    • 防火墙规则错误可能导致自身被锁,操作前确保留有本地控制台访问权限。
  2. 连接状态验证

    • 断开后检查效果:
      sudo ss -tunp | grep <客户端IP>  # 确认连接消失
      ping <客户端IP>                 # 验证防火墙阻断(应无响应)
  3. 持久化配置

    • 防火墙规则需--permanent(firewalld)或iptables-save保存,否则重启失效。
    • 禁用网卡重启后自动恢复,需编辑配置文件(如/etc/network/interfaces)实现永久关闭。

适用场景总结

场景 推荐方法
踢出单个异常用户(如SSH) 终止TCP连接(kill/ss -K
永久封禁恶意IP 防火墙规则(iptables/firewalld)
临时断网维护 关闭网络接口(ip link down

引用说明基于Linux内核文档、iptables官方手册及firewalld Wiki,命令兼容主流发行版(Ubuntu 20.04+/CentOS 7+),操作前建议查阅man手册(如man ssman iptables)获取系统特定说明。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5410.html

(0)
酷番叔酷番叔
上一篇 2025年6月23日 12:50
下一篇 2025年6月23日 13:09

相关推荐

  • Linux系统下如何正常观看视频?

    在Linux系统中观看视频是许多用户的日常需求,无论是本地视频文件、在线流媒体还是高清蓝光资源,Linux都提供了多样化的解决方案,本文将详细介绍Linux环境下观看视频的常用方法、播放器选择、格式支持、硬件加速优化及常见问题处理,帮助用户根据自身需求选择最合适的方案,桌面环境下的视频播放器选择Linux桌面环……

    2025年9月26日
    10300
  • Linux系统下编译C++程序的具体步骤和命令有哪些?

    在Linux环境下编译C++程序是开发者必备的技能,通常使用GNU编译器集合(GCC)中的g++工具完成,本文将详细介绍Linux下C++编译的完整流程,从基础单文件编译到多文件项目管理,涵盖编译选项、Makefile使用等关键内容,帮助读者掌握不同场景下的编译方法,基础编译流程:单文件编译对于简单的单文件C……

    2025年9月25日
    11100
  • Linux如何以daemon方式运行程序?

    在Linux系统中,守护进程(Daemon)是一种在后台运行、独立于终端的进程,通常用于提供系统服务或周期性执行任务,如Web服务器、数据库服务、日志轮转等,守护进程的创建和管理需要遵循特定规范,以确保其稳定运行且与系统环境兼容,以下是Linux中以daemon方式运行进程的详细方法,涵盖手动创建和system……

    2025年8月25日
    12100
  • Linux下运行脚本的具体操作步骤与方法是怎样的?

    在Linux系统中,运行脚本是自动化任务、提升效率的核心操作,无论是Shell脚本、Python脚本还是其他类型脚本,其运行逻辑均围绕“权限设置”与“执行方式”展开,本文将详细说明Linux下运行脚本的完整流程,涵盖脚本创建、权限赋予、执行方法及注意事项,脚本创建与基础规范首先需明确脚本类型,Linux中最常用……

    2025年9月23日
    7600
  • 如何快速确认系统并进行基础操作?

    在开始使用前,请务必确认您的系统版本,主流 Linux 发行版(如 Red Hat Enterprise Linux / CentOS)的 1 版本发布于 2015 年,目前已结束生命周期(EOL),不再获得安全更新和技术支持,强烈建议用户升级至受支持的版本(如 RHEL/CentOS 8+ 或 Ubuntu……

    2025年7月4日
    12300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信