其实之前配过一个squid,只是由于太懒,网上随便搜了一个教程,用了默认端口并且没有添加用户认证。某天不幸的被爬虫扫到,被用来发了半个月的垃圾邮件。。直到有一天登录邮箱,看到了一大坨警告邮件,才意识到问题的严重。惊了个呆之后,赶紧重配一遍-.-
我这里是用squid配置了一个带用户认证的普通代理。
安装
安装过程十分简便,只需要安装一下squid,一条命令搞定。我这里装的是squid3.3。
yum install squid
rpm -qa | grep squid
squid-3.3.8-12.el7_0.x86_64
配置
修改squid的配置文件 /etc/squid/squid.conf
主要就是配置一下端口,缓存,日志和访问规则。
## 前边有的配置项选择删除或屏蔽
http_port 3712
cache_mem 64 MB
maximum_object_size 4 MB
cache_dir ufs /var/spool/squid 100 16 256
access_log /var/log/squid/access.log
http_access allow all
visible_hostname squid.chao
初始化
在第一次启动之前或者修改了cache路径之后,需要重新初始化cache目录。
squid -z
启动
systemctl start squid
使用
在浏览器中修改代理配置即可。
-
在windows中:
- Internet选项 -> 连接 -> 局域网连接 -> 代理服务器
-
在macOSX中:
- Safari -> 偏好设置 -> 代理 -> Web代理
然后输入你的代理地址和端口,就可以正常工作了。
测试
我从网上看到一个非常简单的方法,可以用来快速测试你的代理是否正常工作。首先打开百度,然后搜索ip。如果出来的是你代理的那台机器的ip,那么恭喜你,一大波垃圾邮件即将赶来。
添加用户认证
我们这里通过ncsa认证模块来为我们的squid添加认证。为什么我选择ncsa呢,因为我从网上搜到的大多用了这个方式。。
首先我们得配置我们的访问用户的账户信息。最后一个参数是用户名,可以替换成任何你喜欢的名字~
htpasswd -c /etc/squid/passwd chao
如果找不到htpasswd,就先装个Apache。yum install httpd。 然后就能使用htpasswd了。
有了帐户文件之后,我们重新配置我们的squid。在squid.conf里面,把
http_access allow all
改成
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm chao's squid server
auth_param basic credentialsttl 2 hours
acl myacl proxy_auth REQUIRED
http_access allow myacl
http_access deny all
最后重启squid就可以啦。
systemctl restart squid
现在当你使用代理访问页面的时候,会先弹出一个提示框,让你输入用户名密码。然后就可以继续访问了。
配置说明
有些人可能一开始对原理以及配置的详细介绍并不感冒,只是想让代理先跑起来再说。至少我本人就是这样子的。。所以,我把这块放在了最后。
现在,就开始介绍一下上面配置的具体内容。当然参考 官网(http://www.squid-cache.org/Doc/config/) 会更加详细准确。