概要

iptables [-t table] -[AD] chain rule-specification [options]
iptables [-t table] -I chain [rulenum] rule-specification [options]
iptables [-t table] -R chain rulenum rule-specification [options]
iptables [-t table] -D chain rulenum [options]
iptables [-t table] -[LFZ] [chain] [options]
iptables [-t table] -N chain
iptables [-t table] -X [chain]
iptables [-t table] -P chain target [options]
iptables [-t table] -E old-chain-name new-chain-name

翻译说明:

table:表
chain:链
rule:规则
option:选项
target:目标

ACCEPT:接受
DROP:丢弃
QUEUE:排队
RETURN:返回

  ACCEPT接受意思是让这个包通过,DROP丢弃的意思是丢弃这个包,QUEUE排队意思是将这个包传给用户空间。(一个用户空间进程由不同的特定队列处理程序来决定怎样来接受这样的包。2.4.x和2.6.x到2.6.13版的内核包含了"ip_queue"这个处理程序。2.6.14及以后版本的内核包含了"nfnetlink_queue"队列处理程序。这种情况下的目标为QUEUE的包会被发送到队列号位'0'的队列。请看后文中NFQUUE目标的描述)RETURN返回意味着停止遍历这个链,从前一个(调用的)链继续下一条规则。如果到了一个内建链的末尾,或者匹配了一个目标为RETURN的内建链规则,那么就有这个链指定的目标来决定这个包的命运。

表:
当前一共有4个独立的表(任何一个现存的表都依赖于内核的配置选项和加载的模块)
-t, --table table
  这个选项指明了该条命令应该作用于哪一个包匹配表。如果内核被配置为自动加载模块,那么内核就会自动尝试加载恰当的未加载模块。

下面列出了所有的表:
filter过滤器:

这个是默认表(如果没有使用-t 选项)。它包含了内建链INPUT输入(用于目的为本地socket的包),FORWARD转发(用于经过经过本地转发的包),和OUTPUT输出(用于本地产生的包)。

nat:

这个表用于会创建一个新连接的包。它包括了3个内建链:PREROUTING路由前(用于改变刚刚收到还未route寻径的包),OUTPUT(用于改变本地产生的还未route寻径包),POSTROUTING(用于改变马上就要发送的包)

mangle:

这个表用于一些特殊的包的内容。直到内核2.4.17,它有了两个内建链:PREROUTING(用于改变寻径routing前收到的包)和OUTPUT(用于改变寻径前本地产生的包)。从内核2.4.18起,另外3个内建链也被支持:INPUT(用于收到给本机的包),FORWARD(用于改变经过本机转发的包)和POSTROUTING(用于改变马上就要发出的包)。

raw:

This table is used mainly for configuring exemptions from connection tracking in combination with the NOTRACK target.————这句话看了几遍,大概意思自己是明白了,但是想了半天不知道怎样翻译才准确,大家自己看看英文吧。
它以更高的优先级注册在netfilter钩子上,因此会在ip_conntrack或者其它IP table前面调用。它提供了内建链:寻径前PREROUTING(用于到达任何网卡的包),OUTPUT输出(用于本地产生的包)。

选项
iptables支持的选项被分为几个不同的组

  命令
  这些选项指明了要采取的动作。出下面进行特别说明的,在命令行指定其中的一个动作。对于长格式的命令和选项,你只需要输入足够iptalbes可以区分出来是什么命令的字母就可以了。

-A,--apend chain rule-specification
追加一条或多条规则到选定的链中。当源名字和(或)目的名字可以被解析为多个地址时,那么被加入的这条规则适用于所有可能的地址;

-D, --delete chain rule-specification
-D, --delete chain rulenum
从所选的链中删除一条或者多条规则。这里一共有两个版本的命令格式:可以通过一个在链中的序号来指定这个规则(第1条规则序号为1)或者匹配的规则。

-I,--insert chain [rulenum] rule-specification
以指定序号,插入一条或者多条规则到选择的链中。因此,如果序号为1,那么这些规则会被插入到这个链的头部。这也是没有指定规则序号的默认行为.

-R,--replace chain rulenum rule-specificaiton
取代选中链中的一条规则。如果源名字和目的名字可以被解析为多个地址,则命令失败。规则从1开始计数。

-L,--list [chain]
列出选中链中的所有规则。如果没有链选中,那么所有就会列出所有链的规则。跟其他的iptables命令一样,它会应用于一个指定的表中(默认情况下,是filter表),因此要列出所有NAT表的规则,需要使用命令 iptables -t nat -n -L

-F,--flush [chain]
冲刷选中的链(如果没有指明链,就会应用到所有的链)。这个命令等于一条条的删除所有的规则。

-Z,--zero [chain]
将所有链中的包和字节计数器清零。可以指定-L,--list选项来在清零之前,显示这些计数器。

-N,--new-chain chain
创建一个给定名字的用户自定义链。要求不能有这个名字的目标。

-X,--delete-chain [chain]
删除指定的用户自定义链。这要求必须没有任何对这个链的引用。如果有引用的话,你需要先删除或者取代这些规则。这个链必须是空的。例如,不能包含任何的规则。如果没有给定任何参数,它会尝试删除每一个表中的非内建链。

-P,--policy chain target
为链设定目标策略。可以跳转到TARGETS节学习合法的目标。只有内建链(非用户自定义)可以有策略,和既不是内建也不是用户的链可以成为策略目标。

-h,
帮助

参数
下面的参数组成了规则的细节(被用于add,delete,insert,replace和append命令)

-p,--protocol [!]protocol
需要检查的规则或者包的协议。可以指定tcp,udp,icmp,或者all。它也可以是一个数字,用于表示这些协议中的一个。允许的协议名字来自于/etc/protocols。协议签的参数“!”用于对测试取反。数字0等于all。协议all可以匹配任何协议,并且是没有指明这个参数时的默认行为。

-s,--source [!]address[/mask]
指定源地址。地址可以是一个网络名字,一个主机名(请注意指定任何名字,会导致进行一个远程的DNS解析,这不是一个好主意。),一个网络IP地址(带有/mask),或者一个直接的IP地址。这个掩码可以是一个网络掩码,也可以是一个数字来指明掩码左边的“1”的个数。因此一个24的掩码就是255.255.255.0。在地址前面的“!”用于对地址取反。标志--src是这个选项的一个别名。

-d, --destination [!] address[/mask]
指定目的地址。细节与-s类似。

-j,--jump target
指明了规则的目标。例如,当包匹配规则时,要采取什么动作。这个目标可以是一个用户自定义的链(一个这个规则不在其中的链),一个特殊的内奸目标来立即决定包的命运,或者一个扩展。如果这个选项在规则中被省略(并且没有使用-g),那么匹配了的这个规则对这个包没有任何的影响,但是会增加这个规则的计数器。

-g,--goto chain
用于指明包需要进行一个用户自定义链的处理。当时使用--jump转到某个链中时,return不会继续后面的链中处理,而是返回至调用--jump的链中。而--goto与之不同。

-i,--in-interface [!]name
指定收到包的网卡(只能应用于进入到INPUT,FORWARD和PREROUTING链的包)。当在网卡名字前使用“!”时,取相反的意思。如果网卡名字以“+”结尾,那么任何一个以这个名字开头的网卡都会被匹配。如果这个选项被省略,那么任何网卡名字都可以匹配。

-o,--out-interface [!]name
指明发包的网卡名字(用于进入FORWARD,OUTPUT,和POSTROUTING链的包)。“!”的意思与前文相同。

[!] -f, --fragment
这意味这个规则只应用于第二个和后面的分片包。因为分片时是没有方法来的得到一个包的源或者目的端口(或者ICMP类型),这样的包就不会匹配以端口指定的规则。"!"的意思与前文相同。

-c, --set-counters PKTS BYTES
这个选项使管理员可以初始化一个规则的包和字节的计数器(在INSERT,APPEND,REPLACE操作)

其他选项
可以指定下面的附加选项

-v, --verbose
详细输出。这个选项使list命令显示网卡的名字,规则的选项,和TOS masks。包和字节计数器也会以后缀“K”,“M”,或者“G”的形式显示出来。对于追加,插入,删除和取代,详细选项使这些被操作的规则打印出来。

-n, --numeric
数字格式输出。IP地址和端口号以数字形式打印。默认情况下,程序会显示主机名,网络名字,或者服务的名字。

-x, --exact
扩展数字。显示准确的包和字节计数器的准确的值,来代替“K”,“M”,或者“G”。这个选项与“-L”命令相关。

--line-numbers
当列出规则时,在每个规则前加上行号,对应于规则在链中的位置。

--modprobe=command
当加入或者插入规则到一个链接中,使用command来加载必要的模块(目标,匹配扩展等)

附录:

[root@localhost ~]# iptables --help
iptables v1.4.21 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 ( = first) from chain
--insert -I chain [rulenum]
Insert in chain as rulenum (default =first)
--replace -R chain rulenum
Replace rule rulenum ( = 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 - Nothing (line is ignored by ip6tables-restore)
--ipv6 - 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 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.

iptables man手册翻译的更多相关文章

  1. MariaDB官方手册翻译

    MariaDB官方手册 翻译:create database语句(已提交到MariaDB官方手册) 翻译:rename table语句(已提交到MariaDB官方手册) 翻译:alter table语 ...

  2. Java垃圾回收手册翻译 - 什么是垃圾回收

    Java垃圾回收手册翻译 - 什么是垃圾回收 初看之下,垃圾回收应该要做其名称之事 - 找到和丢掉垃圾.然而事实上它正好做着相反的事,垃圾回收会记录所有仍在使用中的对象,然后将其他标记为垃圾.谨记这点 ...

  3. Hive官方手册翻译(Getting Started)

    翻译Hive官方文档系列,文中括号中包含 注: 字样的,为我自行标注的,水平有限,翻译不是完美无缺的.如有疑问,请参照Hive官方文档对照查看.   内容列表 Cloudera制作的Hive介绍视频 ...

  4. Matlab手册翻译

    MATLAB 语言是一种工程语言,语法很像 VB 和 C,比 R 语言容易学,你知道 R 语言的语法有多糟糕么.同样,相对于 Python,MATLAB 的优点是天生为了算而算,数与数之间的运算就是矩 ...

  5. LLVM language 参考手册 翻译停止相关

    再翻译LLVM language 参考手册的时候,个人感觉很多东西都不是很懂,因此打算学习完编译原理后再去继续研究翻译,多有不便望见谅

  6. Hive官方手册翻译(Getting Started)(转)

    原文:http://slaytanic.blog.51cto.com/2057708/939950 翻译Hive官方文档系列,文中括号中包含 注: 字样的,为我自行标注的,水平有限,翻译不是完美无缺的 ...

  7. Storm官方帮助手册翻译(下)

    使用其他语言编写Bolt Bolt可以使用任意语言编写.用另外一种语言编写Bolt来作为子进程运行.Storm会在标准输入输出的基础上使用Json来与子进程通信.通信协议之需要一个100行的适配器库, ...

  8. Storm官方帮助手册翻译(上)

    Storm作为当前最流行的实时计算框架,自Twitter将其开源后就一直备受关注.由于其具有先天的稳定性以及便捷性,目前被许多大公司所采用,国外像雅虎.雅虎日本.Twitter.OOYALA.Spot ...

  9. NumPy 数组学习手册·翻译完成

    原文:Learning NumPy Array 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 ...

随机推荐

  1. git自动提交脚本

    每次在linux都要重新一遍一遍敲着这些重复的代码,我想着能够优化一下,做个一键脚本,减少重复劳动. #!/bin/bash git status read -r -p "是否继续提交? [ ...

  2. Obloq模块:基于ESP8266的物联网模块

    OBLOQ 物联网模块 OBLOQ模块是DFRobot公司开发的一款基于ESP8266芯片的物联网通信模块.模块使用串口(TTL UART)和Arduino(或者其他单片机)通信,支持MQTT,HTT ...

  3. protobuf 中import 的使用

    目录结构如下: test.proto的文件内容如下: syntax="proto2"; package com.eagle.mohrss; option java_outer_cl ...

  4. CocosCreator 2.1.2 Shader组件

    本篇文章相关导读: 新版ShaderHelper,支持 Creator 2.1.2 ! 社区大佬揭开 Creator 2.1.2 材质系统的神秘面纱! 为什么要选择使用TypeScript,看了就知道 ...

  5. AWS云创建EC2与使用注意事项-踩坑记录

    目录 AWS 一 创建 EC2(云服务器) 二.AWS 注意事项 三.AWS 申请 SSL 证书 四. 创建VPC AWS 文章 GitHub 地址: 点我 AWS云服务器价格计算器 AWS WEB ...

  6. 聊聊Lambda架构

    定义 在数据分析场景中,我们可能会遇到这样的问题.例如,我们要做一个推荐系统,如果我们用批处理任务去做,一天或者一小时的推荐频次明显延迟太大.如果用流处理任务,虽然延迟的问题解决了,然而只用实时数据而 ...

  7. php服务端搜索,功能改进

    php中 ,一直以来,服务端搜索,我都是写一堆条件判断,搜索条件少时还好,条件一多,就显的代码有点丑陋了: 看着非常不舒服.今天在园子里看到一篇文章(http://www.cnblogs.com/xq ...

  8. template might not exist or might not be accessible by any of the configured Template Resolvers 完美解决

    初学者在maven spring boot web项目中使用thymeleaf 模板,经常会遇到  “template might not exist or might not be accessib ...

  9. 架构师小跟班:推荐46个非常经典的Linux面试题

    大家都知道,做后端开发,做着做着就变成全栈了.一般服务器维护应该是运维的事情,但很多很多公司都是后端工程师在做.所以,基本的Linux系统维护也是后端工程师的必修课.问题一: 绝对路径用什么符号表示? ...

  10. git的clone

    在使用git来进行版本控制时,为了得一个项目的拷贝(copy),我们需要知道这个项目仓库的地址(Git URL). Git能在许多协议下使用,所以Git URL可能以ssh://, http(s):/ ...