Deprecated: Optional parameter $keys declared before required parameter $cms_id is implicitly treated as a required parameter in /home/www/dev/work/class/blog/CmsKey.php on line 75

Deprecated: Creation of dynamic property lvesu\lvesu\controller\blog\main::$outlink is deprecated in /home/www/dev/work/website/lvesu/template/blog/cms/cms.tpl on line 2

Deprecated: Creation of dynamic property lvesu\lvesu\controller\blog\main::$status is deprecated in /home/www/dev/work/website/lvesu/template/blog/index.head.php on line 2
iptables命令用法 - 互联网笔记

略微加速

略速 - 互联网笔记

iptables命令用法

2025-07-18 leiting (32阅读)

标签 Linux

基本语法

iptables [-t 表名] 命令选项 [链名] [规则匹配条件] [-j 目标动作]

常用表(Tables)

  1. filter:默认表,用于数据包过滤(INPUT/OUTPUT/FORWARD 链)。

  2. nat:用于网络地址转换(如端口转发、SNAT/DNAT)。

  3. mangle:用于修改数据包(如 TTL、TOS 等)。

  4. raw:用于连接跟踪豁免。


常用命令选项

选项

作用

-A

追加规则到链尾

-I

插入规则到链首(可指定位置)

-D

删除指定规则

-L

列出规则

-F

清空链中的所有规则

-P

设置链的默认策略(如 DROP/ACCEPT)

-N

创建自定义链

-X

删除自定义链

-v

显示详细信息(与 -L连用)

--line-numbers

显示规则的行号(便于删除)


常用规则匹配条件

条件

示例

说明

-p

-p tcp

匹配协议(tcp/udp/icmp等)

--dport

--dport 80

目标端口(需配合 -p tcp/udp

--sport

--sport 22

源端口

-s

-s 192.168.1.0/24

源 IP 或网段

-d

-d 10.0.0.1

目标 IP

-i

-i eth0

输入网卡

-o

-o eth1

输出网卡

-m

-m state --state NEW

使用扩展模块(如 statemultiport


常用目标动作(-j)

动作

说明

ACCEPT

允许数据包

DROP

丢弃数据包(无响应)

REJECT

拒绝数据包(返回错误)

LOG

记录日志(/var/log/messages)

SNAT

源地址转换(NAT)

DNAT

目标地址转换(NAT)

MASQUERADE

动态 IP 的 SNAT(如拨号网络)


示例命令

  1. 查看当前规则:

    iptables -L -n -v --line-numbers
  2. 允许来自 192.168.1.0/24 的 SSH 连接:

    iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
  3. 拒绝所有其他 INPUT 流量:

    iptables -P INPUT DROP
  4. 端口转发(将 80 转到 8080):

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
  5. 删除规则(按行号):

    iptables -L INPUT --line-numbers  # 查看行号
    iptables -D INPUT 3  # 删除 INPUT 链的第 3 条规则
  6. 保存规则(依赖发行版):

    • CentOS/RHEL: service iptables save或 /etc/init.d/iptables save

    • Ubuntu/Debian: 需安装 iptables-persistent并运行 netfilter-persistent save


注意事项

  1. 规则顺序:规则从上到下匹配,第一条匹配的规则生效。

  2. 默认策略:设置 DROP前确保允许必要的流量(如 SSH),否则可能被锁定。

  3. 测试前备份:使用 iptables-save > backup.rules备份规则。

  4. IPv6:如需配置 IPv6,需使用 ip6tables命令。


如果需要更复杂的配置(如限速、连接数限制),可以结合 iptables扩展模块(如 limitconnlimit)或工具如 fail2ban


北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3