2014-09-15 17:55:06 +08:00
|
|
|
|
10个实用的关于linux中Squid代理服务器的面试问答
|
2014-07-29 16:35:05 +08:00
|
|
|
|
================================================================================
|
2014-09-14 23:16:39 +08:00
|
|
|
|
不仅是系统管理员和网络管理员时不时会听到“代理服务器”这个词,我们也经常听到。代理服务器已经是一种企业的文化,而且那是需要时间来积累的。它现在也在一些小型的学校或者大型跨国公司的自助餐厅里得到了实现。Squid(也可做代理服务)就是这样一个应用程序,它既可以被作为代理服务器,同时也是在其同类工具中比较被广泛使用的一种。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
本文旨在提高你在遇到关于代理服务器面试点时的一些基本应对能力。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
![Squid Interview Questions](http://www.tecmint.com/wp-content/uploads/2014/07/Squid-Interview-Questions.png)
|
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
以下为面试问答的内容
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
### 1. 什么是代理服务器?代理服务器在计算机网络中有什么用途? ###
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
> **回答** : 代理服务器是指那些作为客户端和资源提供商或服务器之间的中间件的物理机或者应用程序。客户端从代理服务器中寻找文件、页面或者是数据而且代理服务器能处理客户端与服务器之间所有复杂事务从而满足客户端的生成的需求。
|
2014-09-16 17:53:48 +08:00
|
|
|
|
代理服务器是WWW(万维网)的支柱,它们其中大部分都是Web代理。一台代理服务器能处理客户端与服务器之间的复杂通信事务。此外,它在网络上提供的是匿名信息那就意味着你的身份和浏览痕迹都是安全的。代理可以去配置允许哪些网站的客户能看到,哪些网站被屏蔽了。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
### 2. Squid是什么? ###
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
> **回答** : Squid是一个在GNU/GPL协议下发布的即可作为代理服务器同时也可作为Web缓存守护进程的应用软件。Squid主要是支持像HTTP和FTP那样的协议但是对其它的协议比如HTTPS,SSL,TLS等同样也能支持。其特点是Web缓存守护进程通过从经常上访问的网站里缓存Web和DNS从而让上网速度更快。Squid支持所有的主流平台,包括Linux,UNIX,微软公司的Windows和苹果公司的Mac。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
### 3. Squid的默认端口是什么?怎么去修改它的操作端口? ###
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
> **回答** : Squid运行时的默认端口是3128。我们可以通过编辑它的配置文件来把它的默认端口修改成未被用户使用的端口,路径是 /etc/squid/squid.conf ,建议如下。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
用你的编辑器打开 ‘/etc/squid/squid.conf’ 文件。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
# nano /etc/squid/squid.conf
|
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
现在把它修改成未被使用的其它端口,并保存退出。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
http_port 3128
|
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
重新启动Squid代理服务,如下显示。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
# service squid restart
|
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
### 4. 你的公司管理层要求你通过Squid代理服务器屏蔽掉一些域名,你怎么做? ###
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
> **回答** : 屏蔽域名是一个在配置文件中实现的功能模块。我们只需要执行一个小的手动配置即可,建议如下。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
a. 在 ‘/etc/squid’ 目录下创建一个名为 ‘blacklist’ 的文件。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
# touch /etc/squid/blacklist
|
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
b. 用nano编辑器打开这个文件。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
# nano /etc/squid/blacklist
|
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
c. 以每行一个域名的方式将想要屏蔽的域名写进这个文件里。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
.facebook.com
|
|
|
|
|
.twitter.com
|
|
|
|
|
.gmail.com
|
|
|
|
|
.yahoo.com
|
|
|
|
|
...
|
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
d. 保存退出,然后从 ‘/etc/squid/squid.conf’ 打开Squid配置文件。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
# nano /etc/squid/squid.conf
|
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
e. 在配置文件中添加如下行。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
acl BLACKLIST dstdom_regex -i “/etc/squid/blacklist”
|
|
|
|
|
http_access deny blacklist
|
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
f. 保存配置文件并退出,重启Squid服务让其生效。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
# service squid restart
|
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
### 5. 在Squid中什么是媒体范围限制和部分下载? ###
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
> **回答** : 媒体范围限制是Squid的一种特殊的功能,它只从服务器中获取所需要的数据而不是整个文件。这个功能很好的实现了用户在各种视频流媒体网站如YouTube和Metacafe看视频时,可以点击视频中的进度条来选择进度,因此整个视频不用全部都加载,除了一些需要的部分。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
Squid部分下载功能的特点是很好地实现了在Windows更新时下载的文件能以一个个小数据包的形式暂停。正因为它的这个特点,正在下载文件的Windows机器能不用担心数据会丢失,从而进行恢复下载。Squid让媒体范围限制和部分下载功能只在存储一个完整文件的复件之后实现。此外,当用户指向另一个页面时,Squid要以某种方式进行特殊地配置,部分下载下来的文件才会不被删除且留有缓存。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
### 6. 什么是Squid的反向代理? ###
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
> **回答** : 反向代理是Squid的一个特点,这个功能被用来加快最终用户的上网速度。缩写为 ‘RS’ 的原服务器包含了所有资源,而代理服务器则叫 ‘PS’ 。客户端寻找RS所提供的数据,第一次指定的数据和它的复件会经过多次配置从RS上存储在PS上。这样的话每次从PS上请求的数据就等于就是从原服务器上获取的。这样就会减轻网络拥堵,减少CPU使用率,降低网络资源的利用率从而缓解原来实际服务器的负载压力。但是RS统计不了总流量的数据因为PS分担了部分原服务器的任务。‘X-Forwarded-For HTTP’ 就能记录下通过HTTP代理或负载均衡方式连接到RS的客户端最原始的IP地址。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
严格意义上来说,用单个Squid服务器同时作为正向代理服务器和反向代理服务器是可行的。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
### 7. 由于Squid能作为一个Web缓存守护进程,那缓存可以删除吗?怎么删除? ###
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
> **回答** : 当然!作为一个Web缓存守护进程,Squid能加快网页的访问速度,清除缓存也是非常简单的。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
a. 首先停止Squid代理服务,然后从这个 ‘/var/lib/squid/cache’ 目录中删除缓存。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
# service squid stop
|
|
|
|
|
# rm -rf /var/lib/squid/cache/*<
|
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
b. 创建交换分区目录。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
# squid -z
|
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
### 8. 你身边有一台客户机,而你正在工作,如果想要限制儿童的访问时间段,你会怎么去设置那个场景? ###
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
把允许访问的时间设置成晚上4点到7点三个小时,跨度为星期一到星期五。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
a. 想要限制Web访问时间在星期一到星期五的晚上4点到7点,要先打开Squid的配置文件。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
# nano /etc/squid/squid.conf
|
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
b. 在配置文件中添加如下行,保存文件并退出。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
acl ALLOW_TIME time M T W H F 16:00-19:00
|
|
|
|
|
shttp_access allow ALLOW_TIME
|
|
|
|
|
|
2014-09-16 17:53:48 +08:00
|
|
|
|
c. 重启Squid服务。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
# service squid restart
|
|
|
|
|
|
2014-09-17 10:57:00 +08:00
|
|
|
|
### 9. Squid存储的数据是什么文件格式? ###
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-17 10:57:00 +08:00
|
|
|
|
> **回答** : Squid存储的数据是UFS文件格式的。UFS是一种老的,使用比较广泛的Squid存储格式
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-17 10:57:00 +08:00
|
|
|
|
### 10. Squid的缓存会存储到哪里? ###
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-17 10:57:00 +08:00
|
|
|
|
> **回答** : Squid存储的缓存是位于 ‘/var/spool/squid’ 的特殊目录下。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
2014-09-15 17:55:06 +08:00
|
|
|
|
以上就是全部内容了,很快我还会带着其它有趣的内容回到这里,届时还请继续关注Tecmint。别忘了告诉我们你的反馈和评论。
|
2014-07-29 16:35:05 +08:00
|
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
via: http://www.tecmint.com/squid-interview-questions/
|
|
|
|
|
|
|
|
|
|
作者:[Avishek Kumar][a]
|
2014-09-15 17:55:06 +08:00
|
|
|
|
译者:[ZTinoZ](https://github.com/ZTinoZ)
|
2014-07-29 16:35:05 +08:00
|
|
|
|
校对:[校对者ID](https://github.com/校对者ID)
|
|
|
|
|
|
|
|
|
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
|
|
|
|
|
2014-09-12 14:14:46 +08:00
|
|
|
|
[a]:http://www.tecmint.com/author/avishek/
|