啦啦啦~~~
分类: LINUX
2010-11-24 23:23:13
这个选项指明了该条命令应该作用于哪一个包匹配表。如果内核被配置为自动加载模块,那么内核就会自动尝试加载恰当的未加载模块。下面列出了所有的表: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
-I,--insert chain [rulenum] rule-specification从所选的链中删除一条或者多条规则。这里一共有两个版本的命令格式:可以通过一个在链中的序号来指定这个规则(第1条规则序号为1)或者匹配的规则。
以指定序号,插入一条或者多条规则到选择的链中。因此,如果序号为1,那么这些规则会被插入到这个链的头部。这也是没有指定规则序号的默认行为.
-R,--replace chain rulenum rule-specificaiton
-L,--list [chain]取代选中链中的一条规则。如果源名字和目的名字可以被解析为多个地址,则命令失败。规则从1开始计数。
列出选中链中的所有规则。如果没有链选中,那么所有就会列出所有链的规则。跟其他的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,
帮助
需要检查的规则或者包的协议。可以指定tcp,udp,icmp,或者all。它也可以是一个数字,用于表示这些协议中的一个。允许的协议名字来自于/etc/protocols。协议签的参数“!”用于对测试取反。数字0等于all。协议all可以匹配任何协议,并且是没有指明这个参数时的默认行为。
-d, --destination [!] address[/mask]指定源地址。地址可以是一个网络名字,一个主机名(请注意指定任何名字,会导致进行一个远程的DNS解析,这不是一个好主意。),一个网络IP地址(带有/mask),或者一个直接的IP地址。这个掩码可以是一个网络掩码,也可以是一个数字来指明掩码左边的“1”的个数。因此一个24的掩码就是255.255.255.0。在地址前面的“!”用于对地址取反。标志--src是这个选项的一个别名。
-j,--jump target指定目的地址。细节与-s类似。
指明了规则的目标。例如,当包匹配规则时,要采取什么动作。这个目标可以是一个用户自定义的链(一个这个规则不在其中的链),一个特殊的内奸目标来立即决定包的命运,或者一个扩展。如果这个选项在规则中被省略(并且没有使用-g),那么匹配了的这个规则对这个包没有任何的影响,但是会增加这个规则的计数器。
-i,--in-interface [!]name用于指明包需要进行一个用户自定义链的处理。当时使用--jump转到某个链中时,return不会继续后面的链中处理,而是返回至调用--jump的链中。而--goto与之不同。
-o,--out-interface [!]name指定收到包的网卡(只能应用于进入到INPUT,FORWARD和PREROUTING链的包)。当在网卡名字前使用“!”时,取相反的意思。如果网卡名字以“+”结尾,那么任何一个以这个名字开头的网卡都会被匹配。如果这个选项被省略,那么任何网卡名字都可以匹配。
[!] -f, --fragment指明发包的网卡名字(用于进入FORWARD,OUTPUT,和POSTROUTING链的包)。“!”的意思与前文相同。
-c, --set-counters PKTS BYTES这意味这个规则只应用于第二个和后面的分片包。因为分片时是没有方法来的得到一个包的源或者目的端口(或者ICMP类型),这样的包就不会匹配以端口指定的规则。"!"的意思与前文相同。
这个选项使管理员可以初始化一个规则的包和字节的计数器(在INSERT,APPEND,REPLACE操作)
-n, --numeric详细输出。这个选项使list命令显示网卡的名字,规则的选项,和TOS masks。包和字节计数器也会以后缀“K”,“M”,或者“G”的形式显示出来。对于追加,插入,删除和取代,详细选项使这些被操作的规则打印出来。
-x, --exact数字格式输出。IP地址和端口号以数字形式打印。默认情况下,程序会显示主机名,网络名字,或者服务的名字。
--line-numbers扩展数字。显示准确的包和字节计数器的准确的值,来代替“K”,“M”,或者“G”。这个选项与“-L”命令相关。
--modprobe=command当列出规则时,在每个规则前加上行号,对应于规则在链中的位置。
当加入或者插入规则到一个链接中,使用command来加载必要的模块(目标,匹配扩展等)