透明代理提供的服务功能与传统代理是一致的,但是其“透明”的实现依赖于默认路由和防火墙的重定向策略,因此更适用于局域网主机服务,而不适合为Internet中的客户机提供服务。下面也通过一个简单的应用案例来学习透明代理的配置和使用。
环境介绍
- linux服务器需要安装了squid服务,可通过这篇博客来进行安装:Linux安装squid 服务
- 项目环境:一台windows为W1,两台虚拟机分别为SquidServer(双网卡)和WebServer(单网卡)。W1与SquidServer组建内网,访问外网WebServer的服务器。
W1的IP设置:VMware1网卡设置IP为192.168.10.2,子网掩码:255.255.255.0
SquidServer的IP设置:eth0的IP为192.168.10.1,子网掩码:255.255.255.0,eth1的IP为200.168.10.1,子网掩码:255.255.255.0
WebServer的IP设置:eth0的IP为200.168.10.2,子网掩码:255.255.255.0
W1、SquidServer之间可以ping通。SquidServer、WebServer之间可以ping通。
SquidServer与W1为内网,WebServer为外网。
如图:
搭建步奏
-
修改squid配置文件 squid.conf
找到squid 配置文件,一般在安装目录的etc下vi suqid.conf # 内容如下 # 设置squid服务地址,以及端口号 http_post 192.168.10.1:3128 transparent # 设置squid的主机名称。必填!!! visible_hostname 192.168.10.1 # 设置acl 列表 # 定义192.168.10.0网段的所有用户为innet # 定义 所有网段的用户为 all acl innet src 192.168.10.0/24 acl all src 0.0.0.0/0.0.0.0 # 允许 192.168.10.0网段的人上网,禁止所有人上网 http_access allow innet http_access deny all
保存退出,squid重新加载配置文件
squid -k reconfig
-
添加iptables规则,把内部的http请求重定向到3128端口
SquidServer服务器上设置:
iptables -t nat -A PREROURING -i eth0 -s 192.168.10.0/24 -p tcp --deport -j REDIRECT--to 3128
-
设置内网主机网关
将W1的网关设置为squid的内网IP。
-
实验结果
在W1的浏览器上输入200.168.10.2,可以访问到WebServer的WEB服务。
只有192.168.10.0这个网段的可以上网,其他的网段的人不能访问外网。
结论
可以自己在本地搭建相应的环境, 进行实验演示,试验中有什么问题,评论告诉我,一起探讨解决。
如果您对这个文章有任何异议,那么请在文章评论处写上你的评论。
愿大家都能在编程这条路,越走越远。
一个人的成就,不是以金钱衡量,而是一生中,你善待过多少人,有多少人怀念你。 生意人的账簿,记录收入与支出,两数相减,便是盈利。 人生的账簿,记录爱与被爱,两数相加,就是成就。