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,有興趣的同學可以一起研究一下。


分享到:


相關文章: