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文件的时间排序

    ls -lt命令可按修改时间排序查看文件,`ls

    2025年8月18日
    13700
  • linux如何访问mysql数据库服务器

    Linux 中,可使用命令行工具(如 mysql)或通过编程语言的数据库连接

    2025年8月15日
    15400
  • Linux如何删除环境变量?临时与永久方法有哪些?

    在Linux系统中,环境变量是用于存储系统运行时需要使用的参数和配置信息的动态值,它们影响着用户会话和进程的行为,合理管理环境变量对系统优化和任务执行至关重要,而删除不再需要的环境变量则是管理过程中的常见操作,本文将详细介绍Linux中删除环境变量的方法,涵盖临时删除、永久删除(针对用户级和系统级配置),以及不……

    2025年9月8日
    15400
  • 安装前你准备好了吗?

    Java Development Kit(JDK)是开发和运行Java应用的核心工具包,在Linux系统中安装JDK是开发者的基础操作,本文将提供三种主流安装方法,涵盖OpenJDK和Oracle JDK,并详解环境变量配置与故障排查,确保您高效完成部署,检查现有JDK终端执行以下命令,若返回版本号则已安装:j……

    2025年7月24日
    18700
  • Linux中如何暂停一个运行中的进程?

    在Linux系统中,暂停进程是常见的操作,主要用于临时释放系统资源、调试程序或管理多任务运行状态,暂停进程的本质是将其从运行状态切换至“停止状态”(Stopped),此时进程会暂停执行,但保留其内存和上下文信息,便于后续恢复,以下是Linux中暂停进程的详细方法及操作场景,交互式暂停:Ctrl+Z(发送SIGT……

    2025年9月16日
    15400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信