前言:
这段时间新冠肺炎肆虐,虽然已经复工了,但是我们项目绝大多数同事还是在家办公,期间有同事反映在家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
安装步骤:
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
11.开始使用代理上网
当第一次打开Firefox,Firefox会弹出认证窗口,填入用户名和密码,点击"确定"就可以上网了。
同理,slack也会弹出类似的认证窗口
12.创建image
<code>docker commit -a "vic" -m "squid" e37f4a96b42b squid:3.5.20/<code>
写在最后
本文部署的是一个比较简单的代理服务器,可以满足基本的使用需求,真实生产环境中的代理服务器需要设置很多策略,这就需要编辑squid的配置文件/etc/squid/squid.conf,有兴趣的同学可以一起研究一下。
閱讀更多 龍宗Victor 的文章