Docker下部署Squid代理服务器


前言:

这段时间新冠肺炎肆虐,虽然已经复工了,但是我们项目绝大多数同事还是在家办公,期间有同事反映在家slack的连接很不稳定,思来想去,我准备干票大的,在公司的网络中搭了一台代理服务器,用于解决在家办公的同事访问公司资源网络不稳定的问题;当然了,最后搭建完,测试好用了,就给撤了,因为对于我们项目来说,这玩意不合规,所以....

虽然成果没保留下来,但是经验必须与大家分享一下!!!


Squid是什么

Squid,一个高性能的代理缓存服务器,支持FTP、gopher、HTTP协议;

Squid,一个缓存Internet 数据的软件,其接收用户的下载申请(作为代理服务器),并自动处理所下载的数据,并返回给客户;

Squid 是一个跨平台服务,可运行在大多数Unix和OS/2版本的系统之上,已知的可工作的有:

Windows、AIX、Digital Unix、FreeBSD、HP-UX、Irix、Linux、NetBSD、Nextstep、SCO、Solaris

Squid 官网:http://www.squid-cache.org


Docker下部署Squid代理服务器

安装步骤:

1.创建基础容器

<code>docker run --name squid -d --restart=always -it --privileged=true -p 3128:3128 --network mynetwork --ip 172.18.0.100 centos:7.7.1908 /usr/sbin/init/<code>

--privileged=true //给容器root完全授权,否则在安装最后执行systemctl start squid.service会报错

/usr/sbin/init //与--privileged=true 配合使用

-p 3128:3128 //因为squid.service默认使用3128端口

--network mynetwork //mynetwork是提前创建的bridge ,网段:172.18.0.0/16

2.进入容器

<code>docker exec -it squid /bin/bash/<code>

3.安装squid

<code>yum update -y //升级yum源/<code>
<code>yum list | grep squid //查看yum源中是否含有squid以及版本/<code>
<code>yum install -y squid //安装squid/<code>
<code>squid -v //查看squid的版本/<code>

4.配置squid

<code>vi /etc/squid/squid.conf/<code>

找到

<strong>http_access deny all

在其之前添加下面数行内容:<strong>注意路径

<strong>auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd

<strong>auth_param basic children 5

<strong>auth_param basic realm hehe

<strong>auth_param basic credentialsttl 2 hours

<strong>acl myproxy proxy_auth REQUIRED

<strong>http_access allow myproxy

找到

<strong>#cache_dir ufs /var/spool/squid 100 16 256

去掉这一行的注释<strong>#,使缓存配置生效,否则无法初始化缓存。

5.配置squid 用户名密码认证

利用 apache 携带的工具 htpasswd 生成密码文件并添加相应的用户信息,由于centos7的官方镜像没有apache,所以需要安装apache服务,

<code>yum install -y httpd/<code>
<code>htpasswd -bc /etc/squid/passwd proxy 123456/<code>

执行成功后会在/etc/squid/目录下生成passwd

<code>cat /etc/squid/passwd/<code>
<code>proxy:$apr1$O5WAZ043$S99TYBvocyNVVKVDvRzyD/ //前半部分是用户名,后半部分是密码/<code>

6.squid 参数检查

<code>squid -k parse //如果配置有错误,这个命令会告诉你/<code>

7.初始化缓存

<code>squid -z/<code>

8启动服务/设置开机自启动

<code>systemctl start squid.service/<code>
<code>systemctl enable squid.service/<code>
<code>systemctl status squid.service/<code>

9.查看3128已经在运行服务了

<code>yum install -y net-tools/<code>
<code>netstat -ntpl | grep 3128/<code>

10.Windows10设置代理

依次鼠标右键 Internet----打开"网络和Internet"设置----代理,在"手动设置代理"下,打开"使用代理服务器"并配置"地址"和"端口",保存退出即可。

地址:物理服务器的IP地址;端口:3128


Docker下部署Squid代理服务器


11.开始使用代理上网

当第一次打开Firefox,Firefox会弹出认证窗口,填入用户名和密码,点击"确定"就可以上网了。

Docker下部署Squid代理服务器

同理,slack也会弹出类似的认证窗口


12.创建image

<code>docker commit -a "vic" -m "squid" e37f4a96b42b squid:3.5.20/<code>


写在最后

本文部署的是一个比较简单的代理服务器,可以满足基本的使用需求,真实生产环境中的代理服务器需要设置很多策略,这就需要编辑squid的配置文件/etc/squid/squid.conf,有兴趣的同学可以一起研究一下。


分享到:


相關文章: