iptables 命令详细介绍
1. 作用
iptables 是 Linux 下用于配置和管理防火墙规则的命令行工具。它通过操作内核的 netfilter 框架,实现数据包的过滤、转发、NAT(网络地址转换)等功能。常用于服务器安全、流量控制、端口转发等场景。
2. 基本结构
- 表(table):常用有
filter(默认,包过滤)、nat(地址转换)、mangle(包修改)、raw(特殊处理)。 - 链(chain):如
INPUT(入站)、OUTPUT(出站)、FORWARD(转发)、PREROUTING、POSTROUTING。 - 规则(rule):具体的匹配条件和动作(如 ACCEPT、DROP、REJECT)。
3. 常用命令示例
查看规则
iptables -L # 查看所有规则
iptables -L -n -v # 显示详细信息(数字格式)
iptables -t nat -L # 查看 NAT 表规则
添加规则
iptables -A INPUT -s 192.168.1.100 -j DROP
# 阻止来自 192.168.1.100 的所有入站流量
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许所有入站 SSH(22端口)流量
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
# 允许 eth0 到 eth1 的转发流量
删除规则
iptables -D INPUT 1
# 删除 INPUT 链的第1条规则
iptables -D INPUT -s 192.168.1.100 -j DROP
# 按内容删除规则
插入规则
iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
# 在 INPUT 链第1条插入允许80端口(HTTP)流量
保存和恢复规则
service iptables save # 保存当前规则(部分系统)
iptables-save > /etc/iptables.rules
iptables-restore < /etc/iptables.rules
清空规则
iptables -F
# 清空所有规则
4. 常见用法
- 端口开放/关闭
只允许特定端口流量,阻止其他端口。 - IP 白名单/黑名单
允许或拒绝指定 IP 的访问。 - NAT 转发
实现端口映射、内网穿透等。 - 包日志
记录特定流量到日志文件。
5. 注意事项
- 规则顺序很重要,先匹配先执行。
- 默认策略建议设置为 DROP,只允许需要的流量。
- 修改规则可能导致远程连接中断,建议本地操作或提前设置回滚。
总结:
iptables 是 Linux 防火墙和网络安全的核心工具,灵活强大,适合各种网络环境的流量控制和安全防护。