iptables 命令使用帮助总结

本文为博主原创,转载请注明出处:

1.iptables 命令帮助参数

复制代码
root@controller1:~# iptables --help
iptables v1.6.1

Usage: iptables -[ACD] chain rule-specification [options]
       iptables -I chain [rulenum] rule-specification [options]
       iptables -R chain rulenum rule-specification [options]
       iptables -D chain rulenum [options]
       iptables -[LS] [chain [rulenum]] [options]
       iptables -[FZ] [chain] [options]
       iptables -[NX] chain
       iptables -E old-chain-name new-chain-name
       iptables -P chain target [options]
       iptables -h (print this help information)

Commands:
Either long or short options are allowed.
  --append  -A chain            Append to chain
  --check   -C chain            Check for the existence of a rule
  --delete  -D chain            Delete matching rule from chain
  --delete  -D chain rulenum
                                Delete rule rulenum (1 = first) from chain
  --insert  -I chain [rulenum]
                                Insert in chain as rulenum (default 1=first)
  --replace -R chain rulenum
                                Replace rule rulenum (1 = first) in chain
  --list    -L [chain [rulenum]]
                                List the rules in a chain or all chains
  --list-rules -S [chain [rulenum]]
                                Print the rules in a chain or all chains
  --flush   -F [chain]          Delete all rules in  chain or all chains
  --zero    -Z [chain [rulenum]]
                                Zero counters in chain or all chains
  --new     -N chain            Create a new user-defined chain
  --delete-chain
            -X [chain]          Delete a user-defined chain
  --policy  -P chain target
                                Change policy on chain to target
  --rename-chain
            -E old-chain new-chain
                                Change chain name, (moving any references)
Options:
    --ipv4      -4              Nothing (line is ignored by ip6tables-restore)
    --ipv6      -6              Error (line is ignored by iptables-restore)
[!] --protocol  -p proto        protocol: by number or name, eg. `tcp'
[!] --source    -s address[/mask][...]
                                source specification
[!] --destination -d address[/mask][...]
                                destination specification
[!] --in-interface -i input name[+]
                                network interface name ([+] for wildcard)
 --jump -j target
                                target for rule (may load target extension)
  --goto      -g chain
                              jump to chain with no return
  --match       -m match
                                extended match (may load extension)
  --numeric     -n              numeric output of addresses and ports
[!] --out-interface -o output name[+]
                                network interface name ([+] for wildcard)
  --table       -t table        table to manipulate (default: `filter')
  --verbose     -v              verbose mode
  --wait        -w [seconds]    maximum wait to acquire xtables lock before give up
  --wait-interval -W [usecs]    wait time to try to acquire xtables lock
                                default is 1 second
  --line-numbers                print line numbers when listing
  --exact       -x              expand numbers (display exact values)
[!] --fragment  -f              match second or further fragments only
  --modprobe=<command>          try to insert modules using this command
  --set-counters PKTS BYTES     set the counter during insert/append
[!] --version   -V              print package version.

2.iptables 常用参数

  1. -L, --list
    • 列出所有规则链。
    • 示例:iptables -L 列出所有链的默认规则。
  2. -A, --append
    • 向指定链追加一条规则。
    • 示例:iptables -A INPUT -p tcp --dport 22 -j ACCEPT 向 INPUT 链追加一条规则,允许所有到 TCP 端口 22 的连接。
  3. -D, --delete
    • 删除链中的一条规则。
    • 示例:iptables -D INPUT -p tcp --dport 22 -j ACCEPT 删除 INPUT 链中允许 TCP 端口 22 的规则。
  4. -I, --insert
    • 在链的指定位置插入一条规则。
    • 示例:iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT 在 INPUT 链的第一条规则之前插入一条允许 TCP 端口 80 的规则。
  5. -R, --replace
    • 替换链中的一条规则。
    • 示例:iptables -R INPUT 1 -p tcp --dport 8080 -j ACCEPT 替换 INPUT 链中第一条规则为允许 TCP 端口 8080 的规则。
  6. -F, --flush
    • 删除链中的所有规则。
    • 示例:iptables -F INPUT 删除 INPUT 链中的所有规则。
  7. -N, --new-chain
    • 创建一个新的用户自定义链。
    • 示例:iptables -N MYCHAIN 创建一个名为 MYCHAIN 的新链。
  8. -X, --delete-chain
    • 删除一个用户自定义链。
    • 示例:iptables -X MYCHAIN 删除名为 MYCHAIN 的链。
  9. -P, --policy
    • 设置链的默认策略。
    • 示例:iptables -P INPUT DROP 将 INPUT 链的默认策略设置为 DROP。
  10. -j, --jump
    • 指定匹配的数据包应该跳转到的目标。
    • 示例:iptables -A INPUT -p tcp --dport 22 -j ACCEPT 匹配的数据包将被接受(ACCEPT)。

11. -v, --verbose

    • 显示更详细的信息。这通常包括每个规则的匹配次数、数据包数、字节数等统计信息。

3.常用命令

1.删除现有规则

复制代码
iptables -F
(OR)
iptables --flush

2.屏蔽指定的IP地址

以下规则将屏蔽BLOCK_THIS_IP所指定的IP地址访问本地主机:

复制代码
BLOCK_THIS_IP="x.x.x.x"
iptables -A INPUT -i eth0 -s "$BLOCK_THIS_IP" -j DROP
(或者仅屏蔽来自该IP的TCP数据包)
iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP

3.允许来自外部的ping测试

复制代码
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

** 4.允许从本机ping外部主机**

复制代码
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

5.允许环回(loopback)访问

复制代码
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

6.允许 SSH 访问

复制代码
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

7.允许 HTTP 访问

复制代码
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

8.拒绝所有其他入站连接

复制代码
iptables -P INPUT DROP

注意:这里使用了 -P INPUT DROP 来设置 INPUT 链的默认策略为 DROP,这意味着除非明确允许,否则所有入站连接都将被拒绝。

相关推荐
py.鸽鸽15 分钟前
Linux2-mkdir,touch,cat,more
linux
aabbcc456aa16 分钟前
ubuntu安装mysql 8.0忘记root初始密码,如何重新修改密码
linux·mysql·ubuntu
张太行_16 分钟前
Linux 调用write()函数后,内核一般多久将数据写入磁盘
linux·运维
Flying_Fish_roe18 分钟前
linux-网络管理-防火墙配置
linux·运维·服务器
杰瑞的猫^_^19 分钟前
【Linux】线程&锁&条件变量&信号量&生产消费者模型&线程池
linux·线程池·条件变量·互斥锁·信号量·生产消费者模型
只对您心动1 小时前
【QT】实现TCP服务器,客户端之间的通信
linux·服务器·c语言·开发语言·c++·qt·tcp/ip
加油,旭杏1 小时前
【Linux】NAT
linux·网络·智能路由器·nat·nart
职场人参2 小时前
将多个pdf合并成一个文件?这几种合并方法很好用!
linux·前端·css
清园暖歌2 小时前
Ubuntu 20.04 解决 nvidia-smi 出错问题
linux·运维·ubuntu·报错·nvidia-smi
Flying_Fish_roe2 小时前
Spring Boot-依赖冲突问题
java·linux·spring boot