CentOS 7安装squid代理服务器

  • Squid,一个高性能的代理缓存服务器,支持FTP、gopher、HTTP协议。
    Squid,一个缓存Internet 数据的软件,其接收用户的下载申请(作为代理服务器),并自动处理所下载的数据,并返回给客户。
  • 当一个用户想要下载一个主页(如QQ:https://qq.com)时,可以向Squid 发出一个申请,让Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且Squid 可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。
  • Squid 是一个跨平台服务,可运行在大多数Unix和OS/2版本的系统之上,已知的可工作的有:
    Windows,AIX,Digital Unix,FreeBSD,HP-UX,Irix,Linux,NetBSD,Nextstep,SCO,Solaris
    Squid 官网http://www.squid-cache.org

1. 安装 squid

rpm -qa | grep squid
squid-3.5.20-12.el7.x86_64 // 表示安装过
yum -y install squid // 安装

2. 设置开机自启动 squid

systemctl enable squid.service

3. 配置文件 squid.conf

vim /etc/squid/squid.conf
找到
http_access deny all
在之前添加下面数行内容:注意路径

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm hello-mimvp
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl myproxy proxy_auth REQUIRED
http_access deny !myproxy
http_access allow myproxy

增加2句,隐藏真实ip变成匿名代理,这是squid 3.1的写法

via off
forwarded_for delete
添加后配置如下:

############# start ############
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm hello
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl myproxy proxy_auth REQUIRED
http_access deny !myproxy
http_access allow myproxy
via off
forwarded_for delete
############# end ##############

4. 用户名密码认证 squid

利用 apache 携带的工具 htpasswd 生成密码文件
htpasswd 是apache httpd自带工具,需要先安装 httpd,安装expect便于自动化交互设置密码

yum -y install httpd httpd-devel expect

并添加相应的用户信息

/usr/bin/htpasswd -c /etc/squid/passwd y-guest

根据提示输入密码:qaz123

成功后将会在 /etc/squid/passwd 中写入:

cat /etc/squid/passwd 命令查看,显示如下:

y-guest:apr1MsJeP9bZ$BLCJYnpQyFR.dV5SBDxMg0

第一列是用户名,第二列是密码

5. 参数检查和设置缓存

5.1 参数检查

squid -k parse

5.2 设置缓存

vim /etc/squid/squid.conf

去掉下面一行的注释#,否则squid -z无法执行

cache_dir ufs /var/spool/squid 100 16 256

去掉后,初始化缓存

squid -z

[root@MyCloudServer ~]# squid -z
2018/06/22 09:19:08| Squid is already running! Process ID 1065

6. 启动服务 squid

systemctl start squid.service

查看3128已经在运行服务了

netstat -ntpl | grep 3128

显示如下:

[root@MyCloudServer ~]# netstat -ntpl | grep 3128
tcp6 0 0 :::3128 :::* LISTEN 1065/(squid-1)

如果开启了防火墙iptables规则,则还需要在/etc/sysconfig/iptables里添加下面一行,允许3128端口访问:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3128 -j ACCEPT

或者直接使用下面的命令关闭防火墙

systemctl stop firewalld.service

如果使用阿里云、腾讯云、AWS等云服务器搭建Squid,则需要在安全策略里,允许3128端口访问

7. 查看日志 squid

tail -f /var/log/squid/access.log
tail -f /var/log/squid/cache.log

这个时候我们的代理服务器就基本上已经搭建好了,接下来是设置代理测试验证

8.验证生效

8.1 Firefox 插件测试

  • 首先,安装 Proxy Switcher

  • 其次,配置代理,如下图:


  • 这个时候在去访问网站就会弹出一个输入用户密码的访问了


  • 输入用户名和密码,就是刚才上面设置的,这个时候通过百度搜索ip得到如下图:

大功告成,以上就是基于squid如何搭建http代理服务器的详细过程了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 就是这样的: crawl_config = { "proxy":"用户名:密码@你的代理池ip:6666"}...
    UU小宝阅读 8,326评论 0 50
  • 安装squid yum -y install squid 配置 squid 配置文件位置 /etc/squid/s...
    ABasicVersion阅读 4,125评论 0 1
  • 今天吧,总结一下,在LINUX如果用源码包安装软件包后怎么删除,, 第一,看大家安装软件的时候有没有使用--pre...
    格栋天阅读 6,362评论 0 0
  • 在匠人精神中,秋山利辉通过列举“秋山木工”的“匠人须知三十条”,阐释了其心目中一流人才培养的核心:即对一个人品格的...
    六爸啦啦啦阅读 1,324评论 0 0

友情链接更多精彩内容