• 1
  • 2
  • 3
  • 4
  • 5
阿里云主机ECS 首 页  »  帮助中心  »  云服务器  »  阿里云主机ECS
ECS Linux安装Squid配置透明代理模式实现代理上网的具体操作
发布日期:2015-12-27 16:12:14

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

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

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

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

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

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

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

  代理原理:


  本实验环境:

  操作系统: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


  3. 设置开机自启动

  # chkconfig --level 35 squid on


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


  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


  6.启动Squid

  # /etc/init.d/squid start


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

  1) 启动iptables 服务

  # /etc/init.d/iptables start


  2) 清除现有iptables filter 表规则

  # iptables -F


  3) 保存iptables 设置

  # /etc/init.d/iptables save

  4) 查看nat 表设置

  # iptables -t nat -L -n


  5 )在nat表中新增一条规则

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


  6)保存


  7)设置iptables 开机启动

  # chkconfig iptables on


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


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