当前位置: 代码网 > 服务器>服务器>Linux > Linux使用iptables实现IP访问限制与解除限制的详细教程

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

2026年03月04日 Linux 我要评论
在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访问与解除限制的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com