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
安裝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