squid安裝及運行指南
0. What is squid
Squid是一個高性能的代理緩存服務器,Squid支持FTP、gopher、HTTPS和HTTP協議。和一般的代理緩存軟件不同,Squid用一個單獨的、非模塊化的、I/O驅動的進程來處理所有的客戶端請求。
1. Download
下載源碼: http://www.squid-cache.org/Versions/v3/3.5/
2. Compile & Install
# tar zxvf squid-3.5.27.tar.gz
# cd squid-3.5.27/
# ./configure
# make
# make install
3. Configure
當編譯安裝完成后,squid二進制被安裝在/usr/local/squid目錄下,具體目錄為/usr/local/squid/sbin/squid,目錄結構如下:
root@xxx:/usr/local/squid# tree -L 1 .
.
├── bin
├── etc
├── libexec
├── sbin
├── share
└── var
需要修改一下etc下的默認配置squid.conf,加入一行:
http_port 3129 intercept
更多的配置信息請看參考網址中的第二項,包括對代理網站的訪問控制等信息配置。
4. Run
創建緩存目錄
# /usr/local/squid/sbin/squid -z
使配置文件生效(修改配置文件后需要執行)
# /usr/local/squid/sbin/squid -k parse
以后台進程的形式啟動squid
# /usr/local/squid/sbin/squid -s
默認配置下日志在/usr/local/squid/var/logs/目錄下,日志包括access.log和cache.log,其中運行日志在cache.log,如果進程退出可以查看該日志以發現原因。
5. How to use
當squid進程正常運行后,默認監聽3128端口,即開啟了3128端口作為代理端口,我們可以設置代理端口為127.0.0.1:3128,接下來用該端口作為代理服務器就可以去嘗試訪問internet了,正常訪問即說明運行正確。
遇到的問題
-
ERROR: No forward-proxy ports configured.
解決方案: https://www.cnblogs.com/AloneSword/p/4090827.html -
WARNING: Cannot write log file: /usr/local/squid/var/logs/cache.log
/usr/local/squid/var/logs/cache.log: Permission denied
messages will be sent to 'stderr'.
解決方案:chmod -R 777 /usr/local/squid/var/logs
參考:
- squid3.0做編譯安裝配置透明代理: http://blog.sina.com.cn/s/blog_517e2e1b0100ap1v.html
- squid配置指南: http://www.phpfans.net/manu/Squid/ 第四章
- squid運行指南: http://www.phpfans.net/manu/Squid/ 第五章
- squid介紹及其簡單配置: http://blog.51cto.com/linuxme/372960
