一个月的心血!iptables+NAT+squid透明代理上网实现方案

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

一个月的心血!iptables+NAT+squid 透明代理上网实现方案

:

历尽千辛万苦,翻变了所有技术论坛,整整研究了一个多月终于搞定啦!

关于此话题网上很多,但没有一篇是能让你实现目标的,惟有这篇!

本人也是Linux菜鸟,刚开始玩Linux,自学的何其经历艰苦!

今天刊登这份文章,希望给象我一样的新手提供帮助。

更希望高手能够指出不足之处,谢谢。

平台:RedHat8.0 各组件均为Linux 自带,双网卡eth0为出口地址,eth1为连接内网地址,网络连接正常。

实现步骤:

一。做IP地址翻译,让局域网内机器能够连入互联网。

#加载模块

modprobe ip_tables

modprobe iptable_nat

modprobe iptable_filter

modprobe ip_conntrack_ftp

modprobe ip_nat_ftp

#启用IP转发

echo 1 > /proc/sys/net/ipv4/ip_forward

#ip翻译(伪装)

iptables -t nat -A POSTROUTING -s 172.28.0.0/16 -o eth0 -j SNAT --to x.x.x.x

注:172.28.0.0/16为内网地址,x.x.x.x为这台机器的外部接口地址。

客户端只需将自己的网关设置为这些命令就实现了让内网机器上网的目的!如果想用代理服务器提供HTTP的缓存功能接 着做:

二。代理服务器

#修改配置文件----squid.conf

cd /etc/squid

cp squid.conf.defauld squid.conf

#切记!这点重要,因为二者文件有所不同!!!

行数 修改

48 http_port 80

405 cache_mem 80 MB #大小自己改

1466 http_access allow all

1650 httpd_accel_host virtual

httpd_accel_port 80

httpd_accel_with_proxy on

httpd_accel_uses_host_header on

最后一步运行squid:

cd /etc/init.d

./squid start

#以上是最简单的设置,至于怎么优化squid请参考其他资料。

这样,客户端实际上是通过代理方式浏览网页(其他服务则不通过代理服务!)。

这样做的最大神奇之处在于:

1.客户断完全感觉不到代理服务器的存在,IE不用做任何设置!

2.你可以随时启动/关闭squid,客户端完全不受影响!(够神奇吧?!)

三.补充

以下两句最好写进 /etc/rc.d/rc.local,因为这两条记录重起机器后就失效了。

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s 172.28.0.0/16 -o eth0 -j SNAT --to x.x.x.x

祝大家愉快!

这家伙很懒,写的不够详细,如有不明之处,请跟贴。

注: [color=red:eef1554163][size=18:eef1554163]这部分内容目前实现的功能主要就是一个nat的转换的功能,对于squid方便的功能还没有加上来,如果想实现iptables + squid的结合的话,必须在规则里加上如下一条:

iptables -t nat -A PREROUTING -i eth1 -p tcp -s 172.28.0.0/16 --dport 80 -j REDIRECT --to-port 3128

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航