zoukankan      html  css  js  c++  java
  • Squid配置之使用帐号密码验证

     
    转自:  https://blog.csdn.net/atco/article/details/43448885
     
    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端口的代理功能,把数据缓存关掉,通过密码认证方式进行使用代理,其它均不需要,设置如下:

    # 使用帐号密码认证方式使用代理
    auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/squid_user.txt
    auth_param basic children 5
    auth_param basic realm Welcome to pycredit's proxy-only web server
    
    # 定义授权组
    acl squid_user proxy_auth REQUIRED
    
    # 定义端口
    acl Safe_ports port 80		# http
    
    # 拒绝所有非定义的端口
    http_access deny !Safe_ports
    
    # 允许授权组
    http_access allow squid_user
    
    # 拒绝其它所有未定义的
    http_access deny all
    
    # Squid 端口
    http_port 3128
    
    # 缓存设置
    cache_dir ufs /var/spool/squid 100 16 256 read-only
    cache_mem 0 MB
    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位加密,示例如下:
    try {
        URL url = new URL("http://www.baidu.com");
        // 创建代理服务器
        InetSocketAddress addr = new InetSocketAddress("172.21.63.136",3128);
        Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); // http 代理
        URLConnection conn = url.openConnection(proxy);
        
        String headerkey = "Proxy-Authorization";
        String headerValue = "Basic "+Base64.encodeToString("user:pwd".getBytes(), false);                
        conn.setRequestProperty(headerkey, headerValue);
        
        InputStream in = conn.getInputStream();
        // InputStream in = url.openStream();
        String s = IOUtils.toString(in, "utf-8");
        System.out.println(s);
    } catch (Exception e) {
        e.printStackTrace();
  • 相关阅读:
    蝴蝶自在——《萍踪侠影》
    学习OpenCV——关于三通道的CvMat的求和问题
    MFC中的OnTimer和SetTimer
    慎重选择博士后(或博士生)导师
    MFC界面的完善
    MFC CSplitterWnd的用法
    断言(ASSERT)的用法
    OpenCV中lib的添加
    【转】数据结构之位图
    【转】关于windows server 2003不能共享问题
  • 原文地址:https://www.cnblogs.com/hjbf/p/10136863.html
Copyright © 2011-2022 走看看