cms
当前位置:首页->常见问题
ECS Linux安装Squid配置透明代理模式实现代理上网
  • 作者:本站
  • 日期:2016-01-09
  • 出处:totcms
  • 点击:1295

 

用户使用ECS时,经常有这样的需求,即购买了一台有外网的ECS, 其余ECS没有购买公网带宽,并且希望没有公网的ECS也能通过有公网IP的ECS上网。

这个需求可以通过在有公网ECS主机上配置代理来实现,本文介绍如何配置squid代理。Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。


按照代理类型的不同,可以将Squid 代理分为正向代理和反向代理,正向代理中,根据实现方式的不同,又可以分为普通代理和透明代理。

普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;

透明代理:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;

反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

 

本文为大家介绍透明代理的搭建方式。

代理原理:

 tu.JPG


本实验环境:
操作系统:CentOS release 6.5(Final)
Squid版本:squid-3.1.23-9.el6.x86_64
 

1. 检查squid软件是否安装

# rpm -qa|grep squid

2. 如果未安装,则使用yum 方式安装

# yum -y install squid
 1.JPG

3. 设置开机自启动

# chkconfig --level 35 squid on   

2.JPG

4. 编辑squid 的主配置文件 /etc/squid/squid.conf

3.JPG

http_port 3128 transparent
cache_mem 64 MB
maximum_object_size 4 MB
cache_dir ufs /var/spool/squid 100 16 256
access_log /var/log/squid/access.log
acl localnet src 10.0.0.0/8
http_access allow localnet
http_access deny all
visible_hostname squid.taotie.dev
cache_mgr 
admin@test.com

注意:acl localnet src 10.0.0.0/8   中10.0.0.0/8是ECS内网的网段,要求ECS内网直接可以互通,请根据实际情况替换成相应的网段;
http_port 3128 为转发端口,请根据需求修改


5.初始化squid

# squid –z

4.JPG

6.启动Squid

# /etc/init.d/squid start

5.JPG

7. 添加iptables规则,把内部的http请求重定向到3128端口

7.1 启动iptables 服务
# /etc/init.d/iptables start

9.JPG

7.2 清除现有iptables filter 表规则
# iptables -F

9-1.JPG

7.3 保存iptables 设置

# /etc/init.d/iptables save

 

7.4 查看nat 表设置

# iptables -t nat -L -n

9-2.JPG

7.5 在nat表中新增一条规则

# iptables -t nat -I PREROUTING -i eth0 -s 10.0.0.0/8 -p tcp --dport 80 -j REDIRECT --to-port 3128

9-10.JPG

7.6保存
 9-3.JPG

7.7设置iptables 开机启动

# chkconfig iptables on

9-7.JPG

 

到这里squid就配置好了,我们使用另一台没有公网IP的服务器连接squid代理,测试是否可以上网。

 9-9.JPG

这样我们就配置好了透明代理,没有外网的ECS就可以通过有外网的ECS上网了。