Linux使用iptables实现IP访问限制与解除限制的详细教程

 更新时间:2026年03月04日 09:29:56   作者:墨着染霜华  
在Linux服务器运维中,iptables是一款强大的防火墙工具,常用于IP访问控制、端口管理等场景,本文将聚焦IP访问限制与限制解除两大核心需求,结合实战命令详细拆解操作流程,需要的朋友可以参考下

在Linux服务器运维中,iptables是一款强大的防火墙工具,常用于IP访问控制、端口管理等场景。本文将聚焦“IP访问限制”与“限制解除”两大核心需求,结合实战命令详细拆解操作流程,适合运维新手及需要快速解决问题的开发者参考。

核心场景:当我们需要禁止某个特定IP(如恶意攻击IP、非法访问IP)访问服务器时,可通过iptables添加DROP规则;后续若需恢复该IP访问权限,则需精准删除对应限制规则。本文以192.168.1.101 为例进行演示。

一、前置知识:iptables基础规则说明​

在操作前,先明确几个核心概念,避免误操作:​

链(Chain):iptables默认包含INPUT(入站规则)、OUTPUT(出站规则)、FORWARD(转发规则)等链,IP访问限制主要操作INPUT链(控制外部IP访问服务器)。​

目标动作(Target):

规则优先级:iptables按规则添加顺序匹配,匹配到第一条符合条件的规则后,不再执行后续规则。

二、实战1:添加IP访问限制(禁止特定IP访问)

需求:禁止IP192.168.1.101访问服务器(入站方向)。

2.1 核心命令(添加限制规则)

iptables -A INPUT -s 192.168.1.101 -j DROP

2.2 命令参数详解

  • -A:Append(追加),将规则添加到指定链的末尾;
  • INPUT:指定操作的链为入站链;
  • -s:Source(源IP),指定需要限制的IP地址(此处为192.168.1.101,支持网段,如192.168.1.0/24);
  • -j:Jump(跳转),指定匹配规则后执行的目标动作(此处为DROP,丢弃数据包)。

2.3 验证限制是否生效

添加规则后,可通过以下命令查看INPUT链规则,确认规则已添加:

iptables -nL INPUT --line-numbers

输出结果类似如下(重点看包含192.168.1.101的规则):

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       all  --  192.168.1.101        0.0.0.0/0           
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED

说明:num列是规则编号(后续删除需用到),source列显示限制的IP,target列显示动作(DROP),表示规则已生效。

三、实战2:解除IP访问限制(恢复特定IP访问)

需求:后续若需恢复IP 192.168.1.101 的访问权限,需删除上述添加的DROP规则。推荐两种方法,优先选择“精准删除”(避免影响其他规则)。

方法1:按规则编号精准删除(推荐)

此方法需先获取限制规则的编号,再删除,适合规则较多的场景。

  1. 步骤1:查看规则编号:执行以下命令,获取192.168.1.101对应规则的num值(参考2.3节,假设编号为1): iptables -nL INPUT --line-numbers
  2. 步骤2:删除指定编号的规则iptables -D INPUT 1参数说明:-D(Delete,删除),INPUT为链名,1为规则编号。

方法2:按规则内容直接删除(无需查编号)

若明确知道添加限制时的完整命令,可直接按规则内容删除,适合规则较少的场景:

iptables -D INPUT -s 192.168.1.101 -j DROP

说明:此命令与添加规则的命令仅将-A(追加)改为-D(删除),即可精准匹配并删除目标规则。

方法3:临时清空INPUT链所有规则(慎用)

若仅用于临时测试,且不在乎清空INPUT链的所有规则(包括其他合法规则),可执行:

iptables -F INPUT

警告:此命令会删除INPUT链下所有规则,可能导致服务器暴露风险,仅临时测试时使用,生产环境严禁随意执行!

验证限制是否解除

删除规则后,再次执行以下命令查看INPUT链:

iptables -nL INPUT

若输出结果中无“192.168.1.101 + DROP”的条目,说明限制已成功解除。

四、关键补充:保存iptables规则(避免重启失效)

注意:上述添加/删除规则的操作仅在当前系统运行时有效,服务器重启后规则会全部丢失!需执行保存命令,将规则持久化到配置文件。

不同Linux发行版的保存命令略有差异,重点介绍两种主流系统:

4.1 CentOS/RHEL 系统

# 方法1:通过service命令保存
service iptables save

# 方法2:直接导出规则到配置文件(推荐)
iptables-save > /etc/sysconfig/iptables

4.2 Debian/Ubuntu 系统

Debian/Ubuntu默认未安装规则持久化工具,需先安装iptables-persistent

# 安装工具
apt update && apt install iptables-persistent -y

# 保存IPv4规则(核心)
iptables-save > /etc/iptables/rules.v4

# 若需保存IPv6规则(可选)
ip6tables-save > /etc/iptables/rules.v6

五、常见问题与注意事项

  1. 问题1:执行iptables命令提示“Permission denied”:原因是未使用root权限,需在命令前加sudo(如sudo iptables -A INPUT ...)或切换到root用户(su - root)。
  2. 问题2:删除规则后仍无法访问:可能是存在其他限制规则(如网段限制),可通过iptables -nL INPUT --line-numbers 全面检查;或存在防火墙叠加(如firewalld、ufw),需关闭其他防火墙或同步规则。
  3. 注意事项1:添加规则时,避免误将自己的IP加入DROP列表,否则会导致无法远程连接服务器(解决方案:若有物理机访问权限,直接在服务器本地操作删除规则;若无物理机权限,需联系机房运维)。
  4. 注意事项2:生产环境中,建议先添加ACCEPT规则(如允许管理员IP访问),再添加DROP规则,避免锁死自己。示例: # 先允许管理员IP(如192.168.1.100)访问 iptables -A INPUT -s 192.168.1.100 -j ACCEPT # 再禁止目标IP访问 iptables -A INPUT -s 192.168.1.101 -j DROP

六、总结

本文通过实战案例讲解了iptables添加IP限制(iptables -A INPUT -s 目标IP -j DROP)与解除限制(按编号/内容删除规则)的完整流程,核心要点如下:

  • 精准删除规则是首选,避免使用清空链命令(iptables -F);
  • 规则添加/删除后,务必保存规则,防止重启失效;
  • 操作前优先查看规则(iptables -nL INPUT --line-numbers),避免误操作。

以上就是Linux使用iptables实现IP访问限制与解除限制的详细教程的详细内容,更多关于Linux iptables实现IP访问与解除限制的资料请关注脚本之家其它相关文章!

相关文章

  • Angular.JS中指令的命名规则详解

    Angular.JS中指令的命名规则详解

    这篇文章主要给大家介绍了关于Angular.JS中指令命名规则的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • Linux系统切换国内镜像源的详细步骤

    Linux系统切换国内镜像源的详细步骤

    在中国大陆使用 Linux 系统时,由于网络环境的原因,连接官方的软件包镜像源速度较慢,甚至可能出现连接失败的情况,此时,将系统配置为使用国内的镜像源可以显著提升软件包下载和更新的速度,所以本文给大家介绍了Linux系统切换国内镜像源教程,需要的朋友可以参考下
    2025-07-07
  • 解决CentOS7下yum失效问题

    解决CentOS7下yum失效问题

    CentOS 7正式结束生命周期(EOL),官方也终止了所有支持,但我们服务用的都是CentOS7 ,也不会轻易升级,这一问题如何解决呢,下面小编就来和大家详细讲讲
    2025-06-06
  • 在 Linux 终端中查找域名 IP 地址的命令(五种方法)

    在 Linux 终端中查找域名 IP 地址的命令(五种方法)

    本教程介绍了如何在 Linux 终端验证域名或计算机名的 IP 地址。我们将教你如何有效使用这些命令在 Linux 终端中识别多个域的 IP 地址信息
    2019-12-12
  • Linxu下性能指标采集工具之nmon工具的使用

    Linxu下性能指标采集工具之nmon工具的使用

    Linux下查看CPU信息一般采用top命令来实时观察,但是这种对于只是通过观察数据的变化来评估cpu的实时情况显然不太科学。如果想要通过图标的形式来表现则需要借助一些外部工具,今天就来讲解一下nmon工具的使用
    2023-04-04
  • Linux配置cuda环境变量过程

    Linux配置cuda环境变量过程

    这篇文章主要介绍了Linux配置cuda环境变量过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • linux 入侵常用命令汇编

    linux 入侵常用命令汇编

    掌握这些命令也有助于配置linux的安全,大家可以看看。
    2009-07-07
  • linux新文件权限设置之umask的深入理解

    linux新文件权限设置之umask的深入理解

    这篇文章主要给大家介绍了关于linux新文件权限设置之umask的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • linux free命令以及系统内存占用过高的处理方式

    linux free命令以及系统内存占用过高的处理方式

    这篇文章主要介绍了linux free命令以及系统内存占用过高的处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • linux下umask命令用途原理和计算方式详解

    linux下umask命令用途原理和计算方式详解

    大家好,本篇文章主要讲的是linux下umask命令用途原理和计算方式详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦
    2021-11-11

最新评论