Linux下使用Squid搭建代理服务器

上一篇 / 下一篇  2015-04-27 20:47:41 / 个人分类:服务器

背景介绍

一般情况下大家会使用CCProxy搭建代理服务器,这种方法简单易用,但是也存在较多问题: 
1.软件受注册限制只能允许3人使用; 
2.CCProxy的代理请求仅支持常见的GET和POST等,对于SVN通过代理去update等请求就不支持了; 
3.代理的认证方式仅有基本的Basic方式,其他的ntlm等认证方式不支持等。

为了能够解决以上问题,尝试使用Squid在Linux上搭建了代理服务器,分享其中的搭建方法:

一、安装Squid:

如果系统中还没有装squid,按以下顺序输入命令后即可完成安装

1. 下载Squid安装包

# wget http://www.squid-cache.org/Versi ... 3.0.STABLE18.tar.gz
  • 1

2. 解压Squid安装包

# tar -zxvf squid-3.0.STABLE18.tar.gz
  • 1

3. 配置Squid

#cdsquid-3.0.STABLE18//配置Squid代理安装路径之类的#./configure--prefix=/usr/local/squid--sysconfdir=/usr/local/squid/etc--bindir=/usr/local/squid/bin--sbindir=/usr/local/squid/sbin--mandir=/usr/local/squid/share/man--enable-gnuregex--enable-carp--enable-async-io=80--enable-removal-policies=heap,lru--enable-icmp--enable-delay-pools--enable-useragent-log--enable-referer-log--enable-kill-parent-hack--enable-snmp--enable-arp-acl--enable-htcp--enable-cache-digests--enable-default-err-language=Simplify_Chinese--enable-err-languages="Simplify_Chinese"--enable-poll--enable-linux-netfilter--disable-ident-lookups--enable-underscores--enable-auth="basic"--enable-basic-auth-helpers="NCSA"--enable-external-acl-helpers="ip_user"--enable-x-accelerator-vary
  • 1
  • 2
  • 3

4. 编译

# make
  • 1

5. 安装

# make install//安装Squid代理软件
  • 1

二、配置Squid


1. Squid的配置文件保存在/usr/local/squid/etc的squid.conf文件中

2. 配置Squid项:

a. 启动squid时如果不在squid.conf中设置主机名将无法启动,必须要设置visible_hostname这个参数值,本文中,设置的主机名是服务器的真实机器名powersite,在squid.conf中找到该项并修改:

#visible_hostname linuxserver
  • 1

b. 开启http_access的访问权限

#http_access allow all
  • 1

三、配置Squid的密码验证功能

1. 创建密码文件。

密码和用户名存放在/etc/squid/squid_passwd文件中,并需要将这个文件的权限设置为其它用户只读。

# touch /etc/squid/squid_passwd# chmod o+r /etc/squid/squid_passwd
  • 1
  • 2

2. 使用htpasswd添加用户,并设置密码。

添加用户不需要对squid进行重启操作,我创建的用户名是setest

# htpasswd /etc/squid/squid_passwd setestNewpassword:
Re-type passwordforuser setest
  • 1
  • 2
  • 3

3. 找到ncsa_auth命令的具体位置,后面的配置需要用到绝对路径

# which ncsa_auth/usr/sbin/ncsa_auth
  • 1
  • 2

如果找不到ncs_auth的话,可以直接去squid的压缩包解压目录中拷贝一份到/usr/sbin/ncsa_auth,例如:

cp helpers/basic_auth/NCSA/ncsa_auth/usr/sbin/ncsa_auth
  • 1

4. 在squid.conf文件中定义验证程序了,创建名为ncsa_users的ACL并加入关键字REQUIRED来强制让Squid使用NCSA验证方法。

## 在squid.conf的auth_param部分添加下列内容#auth_param basic program /usr/sbin/ncsa_auth /etc/squid/squid_passwd## 将以下ACL添加到squid.conf的ACL配置部分#acl ncsa_users proxy_auth REQUIRED## 将这些内容添加到squid.conf的http_access配置部分#http_access allow ncsa_users
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

四、启动Squid

1. /usr/local/squid/sbin目录下的squid为运行文件。 
    2. 第一次运行时,先运行squid -z创建缓存文件夹。缓存文件夹在/usr/local/squid/var下创建,因此创建缓存前还需运行chmod 777 /usr/local/squid/var给该文件夹权限。 
    再运行squid -d 1开启squid即可。 
    3. 如果要关闭squid,运行squid -k shutdown则是安全关闭。

TAG: Linux 代理服务器

 

评分:0

我来说两句

诸葛东明

诸葛东明

搜狗公司搜狗浏览器测试经理。2008年加入搜狗公司,负责搜狗浏览器的相关测试工作,见证了搜狗浏览器从无到有的过程。

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 31453
  • 日志数: 19
  • 建立时间: 2008-06-03
  • 更新时间: 2015-06-23

RSS订阅

Open Toolbar