Iptables+NAT

一。iptables 做NAT
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
#建立IP转发和伪装
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的必要的模块,以便调用。
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地址,还有是否被代理过。二是在一台内网机器上下载一个文件,或者看一页图片很多而且较慢的网页,然后转到另一台内网机器上下载同样的文件或看刚才的图片网页。比
较一下速度,就能感觉出来了。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值