1. 程式人生 > >ubuntu使用squid搭建代理

ubuntu使用squid搭建代理

安裝squid

//檢查是否安裝squid
which squid
//
apt update
sudo apt install squid

 

配置squid的配置檔案squid.conf

//備份squid預設配置檔案
cp /etc/squid/squid.conf squid.conf.bak
//修改squid.conf
vi squid.conf

 

因為我第一次安裝後,又把squid給解除安裝了,不知道改動了什麼地方,再次安裝squid的時候,/etc下沒有自動生成squid.conf,所以又去根據squid的版本,又去squid官網找的預設配置,改為如下:

http_port 8128  #埠號
cache_mgr  [email protected]  #Squid 崩潰時郵件傳送地址
# http_access deny all
cache_dir null /tmp
#配置使用者名稱密碼,避免被盜用,後面會生成passwords檔案
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

  

:wq儲存,然後檢查配置檔案語法是否正確

//檢查語法:
squid -k parse
//若不報錯,剛說明配置無誤

//第一次啟動前初始化快取:
squid -z
//此命令建立了16個一級子目錄

 

我這裡遇到兩個錯誤:
1.WARNING: Could not determine this machines public hostname. Please configure one or set ""visible_hostname"".
在squid.conf配置檔案中新增:

visible_hostname squid.packet-pushers.net

 

2.Squid cache directory not been initialized
好像是squid的快取目錄還沒有沒有初始化

//重啟squid,自動建立快取目錄
sudo service squid restart

 

建立剛才配置檔案中配置的密碼,使用htpasswd來建立passwords檔案,htpasswd命令在軟體包apache2-utils中。

sudo apt install apache2-utils

//生成password檔案 這裡的路徑和squid.conf中配置的路徑一致
sudo htpasswd -c -d /etc/squid/passwords 自定義使用者名稱  

//然後輸入兩次至少8位的密碼,還要保證生成的passwords檔案是可讀的
sudo chmod o+r /etc/squid/passwords

 

啟動服務

// 開機啟動
systemctl enable squid.service

sudo service squid start
//重啟服務
squid restart

//關閉服務
squid stop

 

查詢埠狀態

netstat -tnl

//檢視3128埠是否開啟
netstat -tnl | grep 3128

 

檢視squid訪問日誌

tail -f /var/log/squid/access.log

 

注意:如果配置檔案配置錯誤,修改後squid需要重新讀取配置檔案,然後重啟squid

squid -k parse
squid -k reconfig

squid restart

 

參考部落格
官方配置檔案api
squid中文指南

 

安裝squid

//檢查是否安裝squid
which squid
//
apt update
sudo apt install squid

 

配置squid的配置檔案squid.conf

//備份squid預設配置檔案
cp /etc/squid/squid.conf squid.conf.bak
//修改squid.conf
vi squid.conf

 

因為我第一次安裝後,又把squid給解除安裝了,不知道改動了什麼地方,再次安裝squid的時候,/etc下沒有自動生成squid.conf,所以又去根據squid的版本,又去squid官網找的預設配置,改為如下:

http_port 8128  #埠號
cache_mgr  [email protected]  #Squid 崩潰時郵件傳送地址
# http_access deny all
cache_dir null /tmp
#配置使用者名稱密碼,避免被盜用,後面會生成passwords檔案
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

  

:wq儲存,然後檢查配置檔案語法是否正確

//檢查語法:
squid -k parse
//若不報錯,剛說明配置無誤

//第一次啟動前初始化快取:
squid -z
//此命令建立了16個一級子目錄

 

我這裡遇到兩個錯誤:
1.WARNING: Could not determine this machines public hostname. Please configure one or set ""visible_hostname"".
在squid.conf配置檔案中新增:

visible_hostname squid.packet-pushers.net

 

2.Squid cache directory not been initialized
好像是squid的快取目錄還沒有沒有初始化

//重啟squid,自動建立快取目錄
sudo service squid restart

 

建立剛才配置檔案中配置的密碼,使用htpasswd來建立passwords檔案,htpasswd命令在軟體包apache2-utils中。

sudo apt install apache2-utils

//生成password檔案 這裡的路徑和squid.conf中配置的路徑一致
sudo htpasswd -c -d /etc/squid/passwords 自定義使用者名稱  

//然後輸入兩次至少8位的密碼,還要保證生成的passwords檔案是可讀的
sudo chmod o+r /etc/squid/passwords

 

啟動服務

// 開機啟動
systemctl enable squid.service

sudo service squid start
//重啟服務
squid restart

//關閉服務
squid stop

 

查詢埠狀態

netstat -tnl

//檢視3128埠是否開啟
netstat -tnl | grep 3128

 

檢視squid訪問日誌

tail -f /var/log/squid/access.log

 

注意:如果配置檔案配置錯誤,修改後squid需要重新讀取配置檔案,然後重啟squid

squid -k parse
squid -k reconfig

squid restart

 

參考部落格
官方配置檔案api
squid中文指南