将80转向8080

 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

 通过使用iptables命令建立过滤规则,并将这些规则添加到内核空间过滤表内的链中。 

  添加、删除和修改规则的命令语法如下:

  格式:#iptables [-t table] command [match][target]

  说明:

  1、table

  [ -t table)有三种可用的表选项:filter、nat和mansle。该选项不是必需的,如未指定,则filter作为默认表。

  filter表用于一般的数据包过滤,包含INPUT、OUTPUT和 FORWARD链。

  nat表用于要转发的数据包,包含PREROUTING、OUTPUT和 POSTROUTING链。

  manglc表用于数据包及其头部的更改,包含PREROUTING和 OUTPUT链。

  2.command

  command是iptables命令中最重要的部分,它告诉itables命令要进行的操作,如插入规则、删除规则、将规则添加到链尾等。中tables常用的一些操作命令见下表。

表 iptables常用的操作命令

操作命令功 能-A或-append该命令将一条规则附加到链的末尾-D或-delete通过用-D指定要匹配的规则或者指定规则在链中的位置编号,该命令从链中删除该规则-P或-policy该命令设置链的默认目标,即策略。所有与链中任何规则都不匹配的数据包都将被强制使用此链的策略-N或-new-chain用命令中所指定的名称创建一个新链-F或-flush如果指定链名,该命令删除链中的所有规则,如果未指定链名,该命令删除所有链中的所有规则。此参数用于快速清除-L或-list列出指定链中的所有规则

  示例:

  #iptables -A INPUT -s 192.168.0.10 -j ACCEPT

  该命令将一条规则附加到INPUT链的末尾,确定来自源地址192.168.0.10的数据包可以ACCEPT。

  #iptables -D INPUT -dport 80 -j DROP

  该命令从INPUT链删除规则。

  #iptables -P INPUT DROP

  该命令将INPUT链的默认目标指定为DROP。这将丢弃所有与INPUT链中任何规则都不匹配的数据包。

  3.match

  mateh部分指定数据包与规则匹配所应具有的特征,比如源IP地址、目的IP 地址、协议等。lptables常用的规则匹配器见下表。

表 iptables常用的规则匹配器

参 数功 能-p或--protocol该通用协议匹配用于检查某些特定协议。协议示例有TCP、UDP、ICMP及用逗号分隔的任何这三种协议的组合列表以及ALL(用于所有协议)。AILL是默认匹配,可以使用!符号,表示不与该项匹配-s或--souece该源匹配用于根据数据包的源IP地址来与它们匹配。该匹配还允许对某一范围内的IP地址进行匹配,可以使用!符号,表示不与该项匹配。默认源匹配与所有IP地址匹配-d或--destination该目的地匹配用于根据数据包的目的地IP地址来与它们匹配。该匹配还允许对某一范围内IP地址进行匹配,可以使用!符号,表示不与该项匹配

   示例:

  #iptables-A INPUT -p TCP,UDP

  #iptables-A INPUT-p!ICMP

  #iptables-A OUTPUT-s 192.168.0.10

  #iptables-A OUTPUT-s 1 210.43.1.100

  #iptables-A INPUT-d 192.168.1.1

  #iptables-A OUTPUT-d 1 210.43.1.100

  4.target

  目标是由规则指定的操作,lptaLles 常用的一些目标和功能说

明见下表。

表 iptables常用的目标和功能

目标功能ACCEPT当数据包与具有ACCEPT目标的规则完全匹配时,会被接受(允许它前往目的地),并且它将停止遍历链 (虽然该数据包可能遍历另一个表中的其他链,并且有可能在那里被丢弃)。该目标被指定为-j ACCEPTDROP当数据包与具有DROP目标的规则完全匹配时,会阻塞该数据包,并且不对它做进一步处理。该目标被指定为-j DROPREJECT该目标的工作方式与DROP目标相同,但它比DROP好。和DROP不同,REJECT不会在服务器和客户机上留下死套接字。另外,RKJECT将错误消息发回给数据包的发送方。该目标被指 定为-j REJECTRETURN在规则中设置的RETURN目标让与该规则匹配的数据包停止遍历包含该规则的链。如果链是如INPUT 之类的主链,则使用该链的默认策略处理数据包。该目标被指定为-j RETURN

 5.保存规则

  用上述方法建立的规则被保存到内核中,这些规则在系统重启时将丢失。如果希望在系统重启后还能使用这些规则,则必须使用iptables -save命令将规则保存到某个文件 (iptables -script)中。

  #iptables -save>iptables-script

  执行如上命令后,数据包过滤表中的所有规则都被保存到lptables-script文件中。当系统重启时,可以执行lptaLles-restoreiptables-script命令,将规则从文件iptables -scrtpt中恢复到内核空间的数据包过滤表中。