面试题 六 squid 的理解

面试被问到squid是用来干啥的,你知道原理嘛?

参考里面介绍的很详细,就不copy了。

下面简单介绍下使用的方法

参考

0、环境准备
VM1(server):nat-192.168.12.128  bridge-192.168.124.128

VM2(client):bridge-192.168.124.129

在VMware WS软件中,bridge网络是无法访问公网的,也无法执行DNS查询。
1 、安装
yum install squid -y
2、配置 Squid
echo "1" >/proc/sys/net/ipv4/ip_forward #打开内核转发,在CentOS7中已经打开,无需设置。
vi /etc/squid/squid.conf

找到下图位置,将 deny 修改为 allow:
image.png
配置完成以后,使用requests进行测试。

In [9]: import requests

In [10]: ss = requests.session()

In [11]: ss.proxies = {'http': 'http://192.168.124.128:3128', 'https':'http://192.168.124.128:3128'}

In [12]: ss.get('http://www.qq.com')
Out[12]: <Response [200]>

In [13]: ss.get('https://www.github.com')
Out[13]: <Response [200]>

或者

wget -e "http_proxy=http://192.168.124.128:3128" http://www.qq.com

wget -e "https_proxy=http://192.168.124.128:3128" https://github.com
3、总结
1. 为什么不使用nginx?
nginx不支持http/https正向代理

2. squid client的DNS查询是由谁完成的?
根据实验结果,DNS查询也是由squid server完成的,因此server需要配置DNS解析服务器;或者在squid.conf中配置dns_nameservers指定dns地址。

3. squid服务的安全建议
本例中的情况,建议squid服务器部署在防火墙后。
原文地址:https://www.cnblogs.com/wzbk/p/14119315.html