Iptables+NAT
来源:互联网 发布:sai2 mac中文版下载 编辑:程序博客网 时间:2024/05/02 00:02
一。iptables 做NAT
WAN = eth0 有一个外网ip地址 xx.xx.xx.xx
LAN = eth1 有一个内网ip地址 yy.yy.yy.yy/ 255.255.0.0
WAN = eth0 有一个外网ip地址 xx.xx.xx.xx
LAN = eth1 有一个内网ip地址 yy.yy.yy.yy/ 255.255.0.0
步骤#8. 使用IP Tables配置NAT
# 删除刷新缺省表如”filter”, 其它表如”nat”需清楚标明:
iptables –flush # 刷新所有过滤规则和NAT表.
iptables –table nat –flush
iptables –delete-chain
#删除所有非缺省的规则链和nat表
iptables –table nat –delete-chain
iptables –table nat –delete-chain
#建立IP转发和伪装
iptables –table nat –append POSTROUTING –out-interface eth0 -j MASQUERADE
iptables –append FORWARD –in-interface eth1 -j ACCEPT
iptables –table nat –append POSTROUTING –out-interface eth0 -j MASQUERADE
iptables –append FORWARD –in-interface eth1 -j ACCEPT
二。iptables+squid透明代理
modprobe ip_tables
modprobe iptable_nat
modprobe iptable_filter
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
加挂一些iptables的必要的模块,以便调用。
modprobe iptable_nat
modprobe iptable_filter
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
加挂一些iptables的必要的模块,以便调用。
echo 1 > /proc/sys/net/ipv4/ip_forward
打开“转发”功能。让数据包可以在不同的网卡间“流动”。
打开“转发”功能。让数据包可以在不同的网卡间“流动”。
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth2 -j SNAT --to A.B.C.D
iptables -t nat -A POSTROUTING -s 192.168.168.0/24 -o eth2 -j SNAT --to A.B.C.D
iptables -t nat -A PREROUTING -s 192.168.100.0/24 -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.168.0/24 -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
上面这四句比较重要,是进行透明代理的关键。前两句的作用是进行“源地址转换”,也就是说要进行内网地址到外网地址的转换。执行了这两句,即使没有squid,内网机器也可以上网了。
后面两句是对从两个内网网卡进入的、tcp协议的、目的端口号是80的,做“端口重定向”。重定向到3128端口。这样,squid就可以接到这个数据包了。
OK!如果你的squid没有问题,而且你也执行了上面的语句,并且没有报错。那就恭喜你,一个iptables+squid的透明代理做成了。如果你不相信,有两个方法可以测试:一是登录:http://ipid.shat.net ,这是一个国外网站,可以显示你的外网ip地址,还有是否被代理过。二是在一台内网机器上下载一个文件,或者看一页图片很多而且较慢的网页,然后转到另一台内网机器上下载同样的文件或看刚才的图片网页。比
较一下速度,就能感觉出来了。
iptables -t nat -A POSTROUTING -s 192.168.168.0/24 -o eth2 -j SNAT --to A.B.C.D
iptables -t nat -A PREROUTING -s 192.168.100.0/24 -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.168.0/24 -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
上面这四句比较重要,是进行透明代理的关键。前两句的作用是进行“源地址转换”,也就是说要进行内网地址到外网地址的转换。执行了这两句,即使没有squid,内网机器也可以上网了。
后面两句是对从两个内网网卡进入的、tcp协议的、目的端口号是80的,做“端口重定向”。重定向到3128端口。这样,squid就可以接到这个数据包了。
OK!如果你的squid没有问题,而且你也执行了上面的语句,并且没有报错。那就恭喜你,一个iptables+squid的透明代理做成了。如果你不相信,有两个方法可以测试:一是登录:http://ipid.shat.net ,这是一个国外网站,可以显示你的外网ip地址,还有是否被代理过。二是在一台内网机器上下载一个文件,或者看一页图片很多而且较慢的网页,然后转到另一台内网机器上下载同样的文件或看刚才的图片网页。比
较一下速度,就能感觉出来了。
- iptables NAT
- Iptables+NAT
- iptables---NAT
- iptables NAT
- IPTABLES NAT
- iptables nat
- NAT、用iptables配置NAT
- iptables NAT脚本
- 用iptables实现NAT
- iptables+NAT+端口映射
- iptables之类NAT篇
- 用iptables实现NAT
- 创建iptables NAT规则
- iptables nat及端口映射
- 【转】iptables+NAT+端口映射
- Implement NAT via iptables
- iptables nat跳转
- linux-iptables设置NAT
- 常用oracle 时间加减问题
- Web.py对模板传值的一个技巧
- c++的几个核心函数说明
- Scripting the Terminal Services Advanced Client
- SVN基本工作流程
- Iptables+NAT
- Asp.net"页面加载中"效果实现
- SERIAL PORT ABCs
- 在Glassfish中进行EJB调用的几种场景
- LINUX的目录树
- Java中的事务处理(1)
- 設計模式學習第一篇
- 除了现实还是现实······
- asp.net ajax 1.0中detailview与updatepanel混合使用的例子