概要

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. ForkJoin和流式操作

    Fork/Join框架:在必要的情况下,将一个大任务,进行拆分(fork) 成若干个子任务(拆到不能再拆,这里就是指我们制定的拆分的临界值),再将一个个小任务的结果进行join汇总. 采用juc包的f ...

  2. 只安装自己需要的 Office 2016 组件的方法

    以往Office的安装包都采用的是MSI安装器,允许用户在安装时选择安装的组件,但是微软发布的Office 2016安装包只提供了C2R(ClickToRun)方式,因此默认情况下用户无法选择安装组件 ...

  3. 【CTS2019】氪金手游(动态规划)

    [CTS2019]氪金手游(动态规划) 题面 LOJ 洛谷 题解 首先不难发现整个图构成的结构是一棵树,如果这个东西是一个外向树的话,那么我们在意的只有这棵子树内的顺序关系,子树外的关系与这棵子树之间 ...

  4. Linux(01):linux的起源、应用场景和学习目标

  5. 【java】javac编译多个有依赖关系的java文件为class文件

    历史文章: [jar]JDK将单个的java文件打包为jar包,并引用到项目中使用[MD5加密] [java]javac命令在win10不可用,提示javac不是内部或外部命令,也不是可运行的程序[解 ...

  6. PIE 插件式开发小笔记__PIESDK学习体会

    基于PIE.NET-SDK插件式二次开发文档笔记:  PIE 插件式开发配置文件: 它里面一行如下:      理解上一行'Item'关系->    library:为插件类名(程序集名称+后缀 ...

  7. LearnOpenGL笔记(1)搭建环境

    之前有写过Unity Shader,但不过是东拼西凑,对其中的原理可以说完全不清楚,现在准备好好从opengl开始,学习这基础又重要的内容. LearnOpenGL CN是一个超超超炒鸡好的openG ...

  8. python 动态创建变量 获取变量名

    参考链接:https://www.cnblogs.com/technologylife/p/9211324.html 参考链接(未)(使用inspect 获取变量名):https://blog.csd ...

  9. 如何提升Web前端性能?

    什么是WEB前端呢?就是用户电脑的浏览器所做的一切事情.我们来看看用户访问网站,浏览器都做了哪些事情:输入网址 –> 解析域名 -> 请求页面 -> 解析页面并发送页面中的资源请求 ...

  10. zsh禁用自动更新

    编辑.oh-my-zsh/oh-my-zsh.sh文件 set DISABLE_AUTO_UPDATE = false # Check for updates on initial load... i ...