前言:
這段時間新冠肺炎肆虐,雖然已經復工了,但是我們項目絕大多數同事還是在家辦公,期間有同事反映在家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 的文章