安裝squid,在ub下直接sudo apt-get一下就行了,以下是設定階段
首先,我們運行$ sudo htpasswd -c ~/psw username
然後輸入密碼兩次,確認後產生一個名字是psw的檔案,登入名稱是username
然後進入目錄/usr/lib/squid
執行sudo mv ~/psw ./
把那個檔案複製到目前的目錄
以上就產生好了一個認證檔案,等會要用到這個檔案
為什麼先產生在home裡呢。因為在我這裡,直接在usr目錄產生總是失敗(即使用sudo),那就先在home裡產生再複製過去就行了
再然後,修改/etc/squid/squid.conf檔案,主要是修改認證方式,在這裡需要用使用者名稱/密碼來使用proxy
那個檔案的許可權認證,是順序執行的,所以你把以下代碼直接加到最前面也行,或者找acl認證那段的代碼(網上有說明,類似代碼如acl Safe_ports port 80,給這個方便你定位,那個檔案太長了)在那附近加,預設連接埠是3128,你找到這個數字改就行了
auth_param basic program /usr/lib/squid/ncsa_auth /usr/lib/squid/psw
acl pswnet proxy_auth REQUIRED
http_access allow pswnet
意思是使用基本認證方式,使用psw檔案內容作為認證
如果你需要例外,例如本地IP就需要認證,那就把http_access放在本地認證程式碼的後面,如以下幾行的後面:
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Only allow purge requests from localhost
http_access allow purge localhost
http_access deny purge
如果需要對IP作限制,那需要先用acl指令定義名字和屬性,再在後面使用http_access決定這個名字的許可權,如:
acl baduser 192.168.0.100/32
acl baduser 192.168.0.128/32
http_access deny baduser
其中,192.168.0.100/32的意思是,192.168.0.100這個地址,使用網關為32位的,即255.255.255.255,即只有這個IP
如果是192.168.0.0/24,那麼與192.168.0.0-192.168.0.255等效
前面那個代碼,就把192.168.0.100與192.168.0.128兩個IP給封鎖
而如果需要對MAC地址進行控制,那就可以:
acl baduser arp 00:01:02:1f:2c:3e
控制別人訪問指定網站的許可權:
acl badpage dstdomain www.tecent.com
控制網域名稱段存取權限
acl badpage dstdomain .tecent.com
這樣的話,不論前面是www還是bbs還是news等,只要尾碼為這個的網域名稱均不能訪問
控制下載檔案類型:
acl mmxfile urlpath_regex -i \.mp3$ \.avi$ \.exe$
http_access deny mmxfile
控制使用時間:
acl worktime time MTWHF 8:30-12:00 14:00-18:00
控制並發串連數:
acl conncount maxconn 3
總之,比win下的什麼什麼代理軟體強大很多很多,許可權的控制方式完全由你的代碼,和代碼次序決定
最後,運行
sudo squid -k reconfigure
使前面的修改生效(如果之前這個服務還沒運行,那就直接運行即可)