首页 > vps > Squid配置之使用帐号密码验证

Squid配置之使用帐号密码验证

2017年7月24日

1. 安装squid
使用root用户进行操作。
先使用rpm检测是否已经安装了sqlid,如>> rpm –q squid
如未安装,可使用>> yum –install squid进行安装

2. 配置squid
Squid安装后提供几个设置的地方:
/etc/squid/squid.conf:这个是主要的设置文件,所有squid所需要的设置都放在这里
/etc/squid/mime.conf:这是squid所支持的internet上的mime格式列表,一般来说不需修改
/usr/sbin/squid:squid 的主程序
/var/spool/squid:预设的squid放置缓存的地方
/usr/lib64/squid/:squid 提共的控制组件,如密码认证等

对/etc/squid/squid.conf进行配置:

只开通80端口的代理功能,把数据缓存关掉,通过密码认证方式进行使用代理,其它均不需要,设置如下:

  1. # 使用帐号密码认证方式使用代理
  2. auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/squid_user.txt
  3. auth_param basic children 5   #认证程序进程数
  4. auth_param basic credentialsttl 2 hours   #认证有效时间
  5. auth_param basic realm Welcome to pycredit’s proxy-only web server
  6. # 定义授权组
  7. acl squid_user proxy_auth REQUIRED
  8. # 定义端口
  9. acl Safe_ports port 80      # http
  10. # 拒绝所有非定义的端口
  11. http_access deny !Safe_ports
  12. # 允许授权组
  13. http_access allow squid_user
  14. # 拒绝其它所有未定义的
  15. http_access deny all
  16. # Squid 端口
  17. http_port 3128
  18. # 缓存设置
  19. cache_dir ufs /var/spool/squid 100 16 256 read-only
  20. cache_mem 0 MB
  21. coredump_dir /var/spool/squid

设置授权用户:
做好配置后,我们需要设置授权用户(即上面设置的密码文件):
>> htpasswd -c /etc/squid/squid_user.txt atco
此命令使用htpasswd进行密码设置生成用户atco,首次生成文件需要使用-c参数,如果无此命令则需使用指令>> yum install httpd,安装httpd。

3. 启动squid
>> /etc/init.d/squid start

4. 使用代理
Squid代理的使用方式与普通的代理使用方式一致,其端口为3128(可改),密码加密方式为base64位加密,示例如下:

  1. try {
  2.     URL url = new URL(“http://www.baidu.com”);
  3.     // 创建代理服务器
  4.     InetSocketAddress addr = new InetSocketAddress(“172.21.63.136”,3128);
  5.     Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); // http 代理
  6.     URLConnection conn = url.openConnection(proxy);
  7.     String headerkey = “Proxy-Authorization”;
  8.     String headerValue = “Basic “+Base64.encodeToString(“user:pwd”.getBytes(), false);
  9.     conn.setRequestProperty(headerkey, headerValue);
  10.     InputStream in = conn.getInputStream();
  11.     // InputStream in = url.openStream();
  12.     String s = IOUtils.toString(in, “utf-8”);
  13.     System.out.println(s);
  14. catch (Exception e) {
  15.     e.printStackTrace();
  16. }

在opennpv中http-proxy验证squid时用如下方法:
http-proxy s p up auth : 通过在地址s和端口p的HTTP代理连接远端主机。

如果代理要求认证,up是包含用户名/密码的文件,用户名和密码要在

分类: vps 标签:
本文的评论功能被关闭了.