云服务器 ECS Linux 系统通过 Squid 配置实现代理上网

  • A+
所属分类:Linux
高性能企业级服务器首台5折

使用云服务器 ECS 时,经常有这样的需求: 购买了多台 ECS 主机,但其中只有一台服务器购买了公网带宽, 而其余 ECS 因为只有偶尔的公网访问需求,所以没有购买公网带宽。可以通过配置 squid 代理,来使没有购买公网的服务器通过已购买公网的服务器访问外网。本文对此进行概要说明。

说明:本文相关配置和说明仅用于示例和操作指引,阿里云不对相关操作结果及由此产生的问题负责。

 

Squid 介绍


Squid 是一个缓存 Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向 Squid 发出一个申请,要 Squid 代替其进行下载,然后 Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户。

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

  • 普通代理:需要客户机在浏览器中指定代理服务器的地址、端口。
  • 透明代理:适用于企业的网关主机(共享接入 Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的 Web 访问数据转交给代理服务程序处理。
  • 反向代理:是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

 

Squid  配置说明


实验环境信息

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

 

本文仅介绍普通代理的搭建方式。相关操作步骤如下:

  1. 检 查squid 软件包安装其情况
  1. 1
    <span class="pln">rpm </span><span class="pun">-</span><span class="pln">qa</span><span class="pun">|</span><span class="pln">grep squid</span>
  1. 如果未安装,则使用 yum 方式安装
  1. 1
    <span class="pln">yum </span><span class="pun">-</span><span class="pln">y install squid</span>

1.JPG

 

  1. 设置服务开机自启动
  1. 1
    <span class="pln">chkconfig </span><span class="pun">--</span><span class="pln">level </span><span class="lit">35</span><span class="pln"> squid on   </span>

2.JPG

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

3.JPG

  1. 1
    <span class="pln">http_port </span><span class="lit">3128</span>
  2. 1
    <span class="pln">cache_mem </span><span class="lit">64</span><span class="pln"> MB</span>
  3. 1
    <span class="pln">maximum_object_size </span><span class="lit">4</span><span class="pln"> MB</span>
  4. 1
    <span class="pln">cache_dir ufs </span><span class="pun">/</span><span class="pln">var</span><span class="pun">/</span><span class="pln">spool</span><span class="pun">/</span><span class="pln">squid </span><span class="lit">100</span> <span class="lit">16</span> <span class="lit">256</span>
  5. 1
    <span class="pln">access_log </span><span class="pun">/</span><span class="pln">var</span><span class="pun">/</span><span class="pln"><span class="hljs-built_in">log</span></span><span class="pun">/</span><span class="pln">squid</span><span class="pun">/</span><span class="pln">access</span><span class="pun">.</span><span class="pln">log</span>
  6. 1
    <span class="pln">acl localnet src </span><span class="lit">10.0</span><span class="pun">.</span><span class="lit">0.0</span><span class="pun">/</span><span class="lit">8</span>
  7. 1
    <span class="pln">http_access allow localnet</span>
  8. 1
    <span class="pln">http_access deny all</span>
  9. 1
    <span class="pln">visible_hostname squid</span><span class="pun">.</span><span class="pln">taotie</span><span class="pun">.</span><span class="pln">dev</span>
  10. 1
    <span class="pln">cache_mgr admin@test</span><span class="pun">.</span><span class="pln">com</span>
  11. 1
     
  12. 1
    <span class="com"><span class="hljs-comment">#注意:</span></span>
  13. 1
    <span class="com"><span class="hljs-comment"># acl localnet src 10.0.0.0/8 中 10.0.0.0/8 是ECS内网的网段,要求 ECS 之间内网可以互通。可根据实际情况替换成所需内网 IP 段</span></span>
  1. 初始化 squid
  1. 1
    <span class="pln">squid </span><span class="pun">–</span><span class="pln">z</span>

4.JPG

  1. 启动 Squid
  1. 1
    <span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">init</span><span class="pun">.</span><span class="pln">d</span><span class="pun">/</span><span class="pln">squid start</span>

5.JPG

 

至此,squid 配置完毕。

客户端配置和使用


使用另一台没有公网 IP 的服务器连接 squid 代理,测试是否可以上网。

  1. 打开浏览器(以 IE 为例,其他类似),菜单栏 > 工具 > Internet 选项  连接  >  局域网设置 > 代理服务器,按照以下格式设置:

6.JPG

其中的 10.51.65.207 是代理服务器的私网地址, 3128 是前面 squid 配置文件中配置的端口。

  1. 打开任意网站,测试是否可以正常显示。

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: