CentOS 7安装squid代理服务器教程

2019年12月11日16:06:17 评论 1,646
  • Squid,一个高性能的代理缓存服务器,支持FTP、gopher、HTTP协议。
    Squid,一个缓存Internet 数据的软件,其接收用户的下载申请(作为代理服务器),并自动处理所下载的数据,并返回给客户。
CentOS 7安装squid代理服务器教程
  • 当一个用户想要下载一个主页(如QQ:https://qq.com)时,可以向Squid 发出一个申请,让Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且Squid 可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。
CentOS 7安装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:$apr1$MsJeP9bZ$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
  • 其次,配置代理,如下图:
    CentOS 7安装squid代理服务器教程
  • 这个时候在去访问网站就会弹出一个输入用户密码的访问了
    CentOS 7安装squid代理服务器教程
  • 输入用户名和密码,就是刚才上面设置的,这个时候通过百度搜索ip得到如下图:
CentOS 7安装squid代理服务器教程

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

 

weinxin
博主微信
这是我的微信扫一扫

发表评论

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