iptables

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptables相关的知识,希望对你有一定的参考价值。

当收到一个数据包时先进入PREROUTING链,这时数据包还未经过路由判断;通过PREROUTING链之后就要做路由判断,这时若数据包目的ip是本机ip,那么主机就接收这个数据包,接下来数据包经过INPUT链进入主机;若这时数据包目的地址不是本机ip,则将该数据包转向FORWARD链,这时主机上层是不知道有这个包经过的;

发送数据包时先通过OUTPUT链,完成路由判断之后到达POSTROUTING链。

 

-A 向规则链中添加一条规则,默认被添加到末尾

 
-T 指定要操作的表,默认是filter
 
-D 从规则链中删除规则,可以指定序号或者匹配的规则来删除
 
-R 进行规则替换
 
-I 插入一条规则,默认被插入到首部
 
-F 清空所选的链,重启后恢复
 
-N 新建用户自定义的规则链
 
-X 删除用户自定义的规则链
 
-p 用来指定协议可以是tcp,udp,icmp等也可以是数字的协议号,
 
-s 指定源地址
 
-d 指定目的地址
 
-i 进入接口
 
-o 流出接口
 
-j 采取的动作,ACCPT,DROP,SNAT,DNAT,MASQUERADE
 
--sport 源端口
 
--dport 目的端口,端口必须和协议一起来配合使用
 
 
使用规则实现对一台内网主机的网页代理。例,通过访问A电脑的未开放的4567端口,实际可以访问到B电脑的80端口上的网页
 

#!/bin/sh
src_ip="192.168.10.220"
proxy_ip="192.168.10.146"
dest_ip="166.111.4.100"
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -t nat -A PREROUTING -d $proxy_ip -p tcp -m tcp --dport 4567 -j DNAT --to-destination $dest_ip:80
iptables -t nat -A POSTROUTING -d $dest_ip -p tcp -m tcp --dport 80 -j SNAT --to-source $proxy_ip:4567
iptables -t nat -A PREROUTING -d $proxy_ip -p tcp -m tcp --sport 80 -j DNAT --to-destination $src_ip
iptables -t nat -A POSTROUTING -d $src_ip -p tcp -m tcp --sport 80 -j SNAT --to-source $proxy_ip:4567

 

以上是关于iptables的主要内容,如果未能解决你的问题,请参考以下文章

iptables

iptables

防火墙

iptables

iptables简单设置

日常运维