# 1.基本概念
```
squid Cache (简称为squid) 是http代理服务器软件。squid用途广泛,可以作为缓存服务器,可以过滤流量帮助网络安全,也可以作为代理服务器链中的一环,向上级代理转发数据或直接连接互联网。
```
# 2.操作实例
### 2.1 squid安装与启动
```
第一步:apt install squid #安装服务
第二步:systemctl status squid #查看服务运行状态信息
第三步:apt install net-tools #安装查看端口软件
第四步:netstat -nputl | grep squid #查看squid端口
```
### 2.2 配置正向代理
#### Server
```
第一步:apt install squid #安装服务
第二步:cd /etc/squid #进入路径
第三步:cp squid.conf squid.conf.back #复制配置文件
第四步:grep -Ev '^(#|$)' squid.conf.1 > squid.conf #过滤配置文件
第五步:vim squid.conf #打开配置文件
```
![1][1]
第六步:systemctl restart squid #重新服务
第七步:systemctl status squid #查看服务状态信息
第八步:本主机需要能够访问外网
####Client
![客户端][2]
### 2.3 透明代理
##### Server
```
第一步:apt install squid #安装服务
第二步:cd /etc/squid #进入路径
第三步:cp squid.conf squid.conf.back #复制配置文件
第四步:grep -Ev '^(#|$)' squid.conf.1 > squid.conf #过滤配置文件
第五步:vim squid.conf #打开配置文件
acl IP src 192.168.10.0/24 #自定义一条acl允许此网段
http_access allow IP #允许acl
http_port 3129 intercept #监听3129端口
```
![透明代理][3]
```
第六步:systemctl restart squid #重启服务
第七步:iptables -t nat -I PREROUTING -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3129 #将此网段访问80端口的数据都转向3129端口
第八步:vim /etc/sysctl.conf #打开配置文件
```
![配置文件][4]
第九步:sysctl -p #使配置文件重新生效
##### Client
```
第一步:将客户端的网关地址 修改成 Server端的IP地址
```
![配置代理][5]
### 2.4 反向代理
![拓扑图][6]
##### Server
```
第一步:apt install squid #安装服务
第二步:cd /etc/squid #进入路径
第三步:cp squid.conf squid.conf.back #复制配置文件
第四步:grep -Ev '^(#|$)' squid.conf.1 > squid.conf #过滤配置文件
第五步:vim squid.conf #打开配置文件
http_port 80 accel defaultsite=192.168.10.102 #IP处写wb网站IP 有域名最好写域名
cache_peer 192.168.10.102 parent 80 0 no-query originserver #IP处写web网站IP
```
![配置文件][7]
#### Client
![默认页][8]
# 3.技能实践
```
网站域名:www.520linux.com
用途 主机名IP
客户端:Client:192.168.10.100
域名解析:dns:192.168.10.101
正向代理:proxy:192.168.10.102
反向代理:squid:192.168.20.103
web服务器:web:192.168.20.104
```
![拓扑图][9]
[1]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007145731.jpeg
[2]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007145840.jpeg
[3]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007145908.jpeg
[4]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007145956.jpeg
[5]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007150036.jpeg
[6]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007150129.jpeg
[7]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007150204.jpeg
[8]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007150327.jpeg
[9]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007150415.jpeg
# 4.扩展指引
```
1.如何在命令行中使用正向代理
2.如何在squid正向代理中对https进行acl
3.在透明代理中能不能(如何)做https的透明代理
4.实现https的方向代理,提示:squid 需要重新编译,客户端到squid一定需要ssl证书,squid到web服务器可以使用80端口,也可以使用443,使用443就需要证书。
```
最后修改:2021 年 10 月 08 日
© 允许规范转载