Squid Proxy on Windows 2008
大綱:
注意該程式不支援 transparent proxy 功能。
下載 squid proxy for windows http://squid.acmeconsulting.it/ 並安裝。
設定 squid.conf
開設 cache 檔案匣。
設定為開機常駐服務。
設定 local 端的 ie 瀏覽器看是否正常。
設定同網域端的 ie 瀏覽器看是否正常。
若有更動 squid.conf 檔,則至系統「服務」中關閉 squid 服務再重新開啟。
cache 放在 c:\squid\var\cache\
log 放在 c:\squid\var\log\ 看 log 檔可以知道客戶端有沒有正常在使用 proxy ,因為會有存取網頁紀錄。
將 NAT 分享器的流量導至此台的 proxy ip 的 3128 port 上,應該可以成為 transparent proxy (測過不成功)。
安裝步驟引用以下網頁:
下載 Windows 版,以時間來說,在此選擇 2.7.STABLE5 Standard 大小僅1.9MB
解壓縮它!擺在 c:\squid ,看設定檔,發現預設是擺在 c:\squid 的,若擺在其他地方要更改非常多的路徑設定
接著則是設定,請至 C:\squid\etc 逛逛,基本上要把存在的檔案 cp 一份出來
cachemgr.conf.default 複製成 cachemgr.conf
mime.conf.default 複製成 mime.conf
squid.conf.default 複製成 squid.conf
squid_radius_auth.conf.default 複製成 squid_radius_auth.conf
假設一切都用預設的,在啟動之前需要建立 cache 的目錄
c:\squid\sbin\squid.exe -z
最後,亦可以直接執行 C:\squid\sbin\squid.exe 就能啟動了
若希望開機自動執行,那試試這行 c:\squid\sbin\squid.exe -i (建議等設定檔都搞好後再這樣設定),設定後就可以透過[控制台]->[系統管理工具]->[服務] 來自行服務的啟動與關閉
設定檔調整:
參考 http://phorum.study-area.org/index.php?topic=43387.0 新增兩行,以下節錄:
5. 修改 c:\squid\etc\squid.conf
第 2861 行增加
代碼: [選擇]
visible_hostname localhost
第 2553 行增加
代碼: [選擇]
http_access allow localhost
6. 執行 c:\squid\sbin\squid.exe -z (建立快取檔的目錄)
7. 執行 c:\squid\sbin\squid.exe -i (將 Squid 安裝為 Windows 的"服務"之一, 以後開機就會自動執行)
8. 修改瀏覽器設定, 將 http , https , gopher , ftp 的 proxy 改為 localhost , port 3128
常見問題:
1. (步驟4): 沒有建立 c:\squid\etc\squid.conf : 需要自行產生, 可以參考 c:\squid\etc\squid.conf.default .
2. (步驟3): 沒有建立 c:\squid\etc\mime.conf : 需要自行產生, 可以參考
c:\squid\etc\mime.conf.default .
3. (步驟5: 2861 行): 由於 Squid 啟動時會檢查本機的 Domain Name , 但許多用戶使用私用 IP (private IP) 而無法反解, 所以修改這個設定指定為 localhost .
4. (步驟6): 由於 Squid 使用的目錄有特殊結構, 所以自行建立並不符合 Squid 要求, 需要用 squid -z 建立.
5. (步驟5: 2553 行): 由於 Squid for Windows 預設是不允許所有連線, 所以至少要允許本機連線, 這行必須放在 http_access deny all 之前.
修改限制連線範圍,例如改 localnet 的網段為 192.168.1.0/24,真實網段另起一行。
cache_dir ufs /cache 100 16 256 修改成 cache_dir ufs /cache 1000 16 256
設定最大下載檔案大小:50 mb,修改此行: maximum_object_size 51200 KB
config 中的 acl 是有順序的。
以下引文段路參考引用自 http://www.weithenn.org/cgi-bin/wiki.pl?Squid-Web_Proxy_Server:
#vi /usr/local/etc/squid/squid.conf //修改 squid 設定檔,內容如下
http_port 3128 //接受 HTTP 要求時使用的 Port
maximum_object_size 5120 KB //設定 Cache 網頁資料最大值 (超過 5MB 就不 Cache)
acl QUERY urlpath_regex cgi-bin \? \.php \.asp \.cgi //設定針對 CGI、PHP、ASP 檔案不作 Cache
no_cache deny QUERY //設定定義名稱為 QUERY 的項目不作 Cache
cache_mem 32 MB //設定存放在 RAM 裡面的 Cache 大小
cache_dir ufs /usr/local/squid/cache 2048 16 256 //設定 Cache 在 HDD 裡面的大小 (最多使用 2GB、第一層目錄 16MB、第二層 256MB)
cache_log /usr/local/squid/logs/cache.log //記錄 Squid 的執行狀況
cache_access_log /usr/local/squid/logs/access.log //記錄 Squid Client 的 HTTP 及 IGP Request
cache_store_log /usr/local/squid/logs/store.log //記錄 Squid Cache 哪些網頁資料
acl all src 0.0.0.0/0.0.0.0 //Access Control List Source IP 0.0.0.0 Name all
acl localhost src 127.0.0.1/255.255.255.255 //Source IP 127.0.0.1 Name localhost
acl lanuser src 192.168.1.0/24 //Source IP Range 192.168.1.0 Name lanuser
http_access allow localhost lanuser //允許定義名稱 Localhost 及 LanUser 能使用 Squid 服務
http_access deny all //禁止其它 IP 使用 squid 服務
發現有時候此服務會當掉,以下面的批次檔 net-restart-squid.bat 設定固定每天深夜重啟 squid 服務:
@Echo On
net stop squid
net start squid
EXIT
參考: