其实之前配过一个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,那么恭喜你,一大波垃圾邮件即将赶来。

添加用户认证

为了防止我们的代理被爬虫扫到并且被用于不法用途,我们非常有必要为我们的squid添加用户认证。事实上我刚配的代理,没过多久就已然被扫到。

我从我的access.log里面看到。然而此时我还没有添加任何认证机制,幸好我没使用认端口,不然我的邮箱又会收到一大坨告警邮件了。。

1439106533.703      0 89.102.9.196 TCP_DENIED/403 3739 GET http://www2.praguerentacar.com/proxy/detectproxy.php - HIER_NONE/- text/html
1439106539.302 0 89.102.9.196 TCP_DENIED/403 3724 GET http://www2.intimnosti.cz/proxy/detectproxy.php - HIER_NONE/- text/html
1439106544.881 0 89.102.9.196 TCP_DENIED/403 3706 GET http://93.185.96.50/proxy/detectproxy.php - HIER_NONE/- text/html
1439106550.453 0 89.102.9.196 TCP_DENIED/403 3712 GET http://www2.nuabi.com/proxy/detectproxy.php - HIER_NONE/- text/html

我们这里通过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_port 3712 这个指定了我们代理的端口。

cache_mem 64 MB 内存中的缓存大小

cache_dir ufs /var/spool/squid 100 16 256 缓存文件夹,默认是只在内存中进行缓存的。这里指定缓存大小为100M,第一层子目录为16个,第二层为256。

maximum_object_size 4 MB 最大被缓存文件大小,这个配合上面的cache_dir使用,只作用于缓存到磁盘的文件。

access_log /var/log/squid/access.log 访问日志

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 对myacl使用外部程序进行认证

http_access allow myacl 允许myacl中的成员访问

http_access deny all 拒绝所有其它访问

visible_hostname squid.chao 代理机名字

参考文章:http://www.cnblogs.com/riversouther/p/4717720.html

使用CentOS7配置Squid代理的更多相关文章

  1. 使用squid配置透明代理并对上网行为进行控制

    使用Squid配置透明代理 环境:CentOS 6.4 + squid-3.1.10-20.el6_5.3.x86_64 1.检查squid是否默认安装,没有安装先安装 rpm -qa squid 假 ...

  2. squid 代理服务器安装配置

    ubuntu16.04 安装squid代理服务器配置 本文参考 http://www.cnblogs.com/newflypig/archive/2012/09/28/2862000.html 1,删 ...

  3. CentOS 6.4下Squid代理服务器的安装与配置,反向代理

    CentOS 6.4下Squid代理服务器的安装与配置 一.简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件 ...

  4. CentOS7 Nginx安装及配置反向代理

    背景: Mono (Mono JIT compiler version 5.4.0.201 ) jexus-5.8.2-x64(<CentOS7 安装 jexus-5.8.2-x64>) ...

  5. Squid代理配置

    更改squid错误页面时间不对的问题解压源码包,进入此路径/usr/local/squid/share/errors/zh-cn(需要更改该目录下的所有文件find -type f |xargs se ...

  6. 【树莓派】Squid代理以及白名单配置

    Squid安装: sudo apt-get install squid3 -y 首先,建议备份一下这个配置文件,以免配错之后,无法恢复,又得重新安装: sudo cp /etc/squid3/squi ...

  7. ubuntu squid 代理服务器安装配置

    安装: 下载安装包 http://pan.baidu.com/s/1mitvwpE 解压 tar -xzvf file.tar.gz 编译: 进入sbin目录  执行 ./configure --pr ...

  8. Centos7使用squid实现正向代理

    正向代理:代理服务器帮助客户端(浏览器)实现互联网的访问 (1)代理服务器配置 1.安装squid yum install squid -y 2.编辑squid配置文件 #vim /etc/squid ...

  9. Linux 系统通过 Squid 配置实现代理上网

    本文转载自:https://help.aliyun.com/knowledge_detail/41342.html Squid 介绍 Squid 是一个缓存 Internet 数据的软件,其接收用户的 ...

随机推荐

  1. 我的flashfxp左右界面怎么变成这样了?

    如下图,flashfxp不是说左边是本地的文件夹,右边是服务器上的文件夹的吗?我不懂刚刚怎么搞了一下,变成两边都是服务器上的文件夹了,哪位大神,指点下,谢谢!!! 921050734 | 浏览 168 ...

  2. 如何把本地项目上传到Github

    作为一个有追求的程序员,需要撸点自己的开源项目,虽然我现在只是在学着造轮子,但这并不影响我成为大神的心. Github是基于git实现的代码托管,很多程序员在上面托管自己的开源项目,我使用Github ...

  3. 解决Sublime Text 3在GBK编码下的中文乱码问题听语音

    Sublime Text 3是我最喜欢的代码编辑器,没有之一,因为她的性感高亮代码配色,更因为它的小巧,但是它默认不支持GBK的编码格式,因此打开GBK的代码文件,如果里面有中文的话,就会乱码 工具/ ...

  4. destoon各栏目调用汇总

    ================================================================== destoon各栏目调用汇总 ================== ...

  5. Angular CLI: 发布到 GitHub Pages

    发布 Angular 应用的简单方式是使用 GitHub Pages. 首先需要创建一个 GitHub 账号,随后,为您的项目创建一个仓库.记下 GitHub 中的用户名和项目名称. 例如,我的 Gi ...

  6. vue中组件之间的相互调用,及通用后台管理系统左侧菜单树的迭代生成

    由于本人近期开始学习使用vue搭建一个后端管理系统的前端项目,在左侧生成菜单树的时候遇到了一些问题.在这里记录下 分析:由于本人设定的菜单可以使多级结构,直接使用vue的v-for 遍历并不是很方便. ...

  7. 2017-06-29(cat tac more less head tail)

    cat 查看文件内容 cat  -A 相当于-vET的整合参数,可列出一些特殊的字符,而不是空白而已   -b 列出行号,空白行不标号   -E 将结尾的断行字符 $ 显示出来   -n 列出行号,空 ...

  8. python3的一些改动常用到的

    更多的内容会接下来说明,只举几个例子. https://docs.python.org/2/library/2to3.html 1. map的输出,要在前面加list转化 2. map(lambda ...

  9. Java进阶篇(六)——Swing程序设计(下)

    三.布局管理器 Swing中,每个组件在容器中都有一个具体的位置和大小,在容器中摆放各自组件时很难判断其具体位置和大小,这里我们就要引入布局管理器了,它提供了基本的布局功能,可以有效的处理整个窗体的布 ...

  10. 使用jQuery的ajax调用action的例子

    直接使用ajax请求会比较繁琐,但是jQuery为我们提供了简单使用ajax的方法. 下面是一个在jQuery easyUI中,利用ajax请求,使下拉菜单关联文本框的例子.其中ajax请求就是8-1 ...