《每日一命令18:iptables——Linux防火墙入门》
2026/5/12 16:49:46 网站建设 项目流程

本期摘要

iptables 是 Linux 内核集成的防火墙工具,但很多人对它敬而远之——规则看起来像天书。本文从实战出发,不讲复杂的表和链理论,只教你三件事:怎么查看当前规则、怎么开放/关闭端口、怎么封禁单个IP。附带最常用的规则示例、保存规则的方法,以及如何避免把自己锁在服务器外的“后悔药”。读完你就能在服务器上建起第一道防线。

iptables是什么?

iptables 是 Linux 内核 netfilter 框架的用户态管理工具。用于配置包过滤规则、网络地址转换(NAT)等。

大多数云服务器默认没有开启防火墙,或者用的是 firewalld,但 iptables 的命令思路是通用的。

最常用的5种姿势

1. 查看当前规则

bash

# 查看 filter 表(默认)的规则 iptables -L -n -v # 查看更详细的规则编号(方便删除) iptables -L -n --line-numbers

-L列出,-n不解析名字,-v显示详细信息。

2. 开放端口

bash

# 开放 80 端口 iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 开放 22 端口(SSH) iptables -A INPUT -p tcp --dport 22 -j ACCEPT

-Aappend 追加规则到链尾,-p协议,--dport目标端口,-j动作(ACCEPT/DROP/REJECT)。

3. 拒绝特定IP

bash

# 封禁单个IP iptables -A INPUT -s 192.168.1.100 -j DROP # 封禁整个C段 iptables -A INPUT -s 192.168.1.0/24 -j DROP

-s源地址。

4. 删除规则

bash

# 根据规则内容删除 iptables -D INPUT -s 192.168.1.100 -j DROP # 根据编号删除(先查看编号) iptables -L -n --line-numbers iptables -D INPUT 3

-D删除。

5. 保存与恢复规则

Debian/Ubuntu:

bash

# 安装持久化工具 apt install iptables-persistent # 保存 netfilter-persistent save

CentOS/RHEL:

bash

# 保存规则(覆盖) service iptables save # 或 iptables-save > /etc/sysconfig/iptables

真实场景

场景1:服务器新上业务,开放8080端口

bash

iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

-I插入到链首,优先级更高。

场景2:禁止某个IP访问本机所有端口

bash

iptables -A INPUT -s 恶意IP -j DROP

场景3:只允许特定IP访问SSH

bash

iptables -A INPUT -p tcp --dport 22 -s 允许的IP -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP

注意顺序:先允许,再拒绝其他。

场景4:防止简单的DDoS(限制连接数)

bash

# 限制单个IP对80端口的并发连接数不超过10 iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j DROP

避免把自己锁在外面

远程操作服务器配置防火墙时,最怕的是把自己封掉了。

安全操作步骤:

bash

# 1. 先开放SSH端口(如果不确定是否已存在) iptables -I INPUT -p tcp --dport 22 -j ACCEPT # 2. 保存规则(如果已经可以) # 3. 测试新规则(另开一个SSH窗口连一下,能通再继续) # 4. 最后设置默认策略(小心!) iptables -P INPUT DROP # 默认拒绝所有入站

后悔药方案:设置一个定时任务,10分钟后清空规则。万一锁住了,等10分钟自动恢复。

bash

# 10分钟后清空所有规则 echo "iptables -F" | at now + 10 minutes

常用参数速查

参数含义
-A追加规则(链尾)
-I插入规则(链首,可指定位置)
-D删除规则
-L列出规则
-F清空所有规则(小心!)
-P设置默认策略
-p协议(tcp/udp/icmp)
--dport目标端口
--sport源端口
-s源地址
-d目标地址
-j动作(ACCEPT/DROP/REJECT/LOG)
-m匹配模块(connlimit、state等)
-v详细信息

下期预告

《每日一命令19:firewalld——更友好的防火墙管理》

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询