squid學習筆記 1

2021-05-10 00:19:55 字數 4077 閱讀 2610

squid安裝:

可以從squid站點http://www.squid-cache.org獲取該�...��版,如red

squid啟動:

squid -z                    #初始化cache

squit start                 #啟動squid

squid -k parse            #檢查配置是否有錯誤,沒有任何輸出,證明配置基本是正確的!!!

squid -zx                   #可以加乙個x引數,看看初始化具體的專案.       

squid -d                    #如果因為dns無法啟動squid,可以用該命令,即不初始化dns;

squid配置:

http_port 192.168.0.1:8080       #squid繫結在該ip位址上

訪問控制:

有兩個要素:acl元素和訪問列表

acl元素型別:

* src : 源位址 (即客戶機ip位址)

* dst : 目標位址 (即伺服器ip位址)

* srcdomain : 源名稱 (即客戶機名稱)

* dstdomain : 目標名稱 (即伺服器名稱)

* time : 一天中的時刻和一周內的一天

* url_regex : url 規則表示式匹配

* urlpath_regex: url-path 規則表示式匹配,略去協議和主機名

* proxy_auth : 通過外部程式進行使用者驗證

* maxconn : 單一 ip 的最大連線數

acl宣告格式:

acl  acl_element_name type_of_acl_element values_to_acl

注:1. acl_element_name 可以是任乙個在 acl 中定義的名稱。

2. 任何兩個 acl 元素不能用相同的名字。

3. 每個 acl 由列表值組成。當進行匹配檢測的時候,多個值由邏輯或運算連線;換言之,即任一 acl

元素的值被匹配,則這個 acl 元素即被匹配。

4. 並不是所有的 acl 元素都能使用訪問列表中的全部型別。

5. 不同的 acl 元素寫在不同行中,squid 將把它們組合在乙個列表中。

我們可以使用許多不同的訪問條目。下面列出我們將要用到的幾個:

* http_access: 允許 http 訪問。這個是主要的訪問控制條目。

* no_cache: 定義對快取請求的響應。

訪問列表的規則由一些類似 'allow' 或 'deny' 的關鍵字構成,用以允許或拒絕向特定或一組 acl 元素提供服務。

注: 1. 這些規則按照它們的排列順序進行匹配檢測,一旦檢測到匹配的規則,匹配檢測就立即結束。

2. 乙個訪問列表可以又多條規則組成。

3. 如果沒有任何規則與訪問請求匹配,預設動作將與列表中最後一條規則對應。

4. 乙個訪問條目中的所有元素將用邏輯與運算連線:

http_access action 宣告1 and 宣告2 and 宣告 or.

http_access action 宣告3

多個 http_access 宣告間用或運算連線,但每個訪問條目的元素間用與運算連線。

5. 請記住列表中的規則總是遵循由上而下的順序。

使用訪問控制

多個訪問控制及其規則為客戶端訪問控制提供了一種靈活的機制。下面給出通常所用到的例子: 

1. 允許列表中的機器訪問 internet。  

這個規則只允許 ip 位址為 192.168.0.10、192.168.0.20 及 192.168.0.30 的機器

訪問 internet,其他 ip 位址的機器則都被拒絕訪問。

2. 限制訪問時段。  

這個規則允許子網192.168.0.1中的所有客戶機在周一到周五的上午10:00到下午4:00

訪問 internet。

注意:time中的星期要用如下字元:

s (sunday,星期日) m(monday,星期一) t(tuesday,星期二) w(wednesday,星期三)

h(thursday,星期四) f(friday,星期五) a(saturday,星期六)

3. 為不同的客戶機分配不同的訪問時段。

在這個規則中,主機 host1 可以在 morning 和 evening 時段訪問 internet,主機

host2 和 host3 分別只能在 lunch 和 evening 時段訪問 internet。

注:乙個訪問條目中所有的元素之間用與運算按下述方式連線 :

多個 http_access 宣告之間用或運算連線而每個訪問條目中的元素用與運算連線,見

下:http_access allow host1 morning evening

無法在時段 morning 和時段 evening 同時進行(morning and evening ),這個表達

式將不會返回真值(true),從而這個條目將不會引發任何動作。

4. 站點遮蔽

squid 可以遮蔽某些特定站點或含有某些特定字詞的站點。可以用下面的規則實現:

也可以用以遮蔽含有某些特定字詞(比如說 dummy、fake)的站點

在實際應用中,不需要把需遮蔽的所有站點或字詞都列在上面,可以先儲存在乙個檔案

中(請檢視 /etc 目錄中的 banned.list檔案)acl 將從這個檔案中讀出所需資訊用以

遮蔽被禁止的站點。

Squid學習筆記

a.acl訪問控制介紹 格式 acl 名字 型別 內容 httpd access all或deny 名字 這裡的名字和acl的名字是一致的方能生效 在acl中型別有這幾種 src dst,port srcdomain,dstdomain,time,maxcom,url regex,urlpath r...

Linux學習筆記 Squid

squid 1.squid正向 真機 虛擬機器 瀏覽器 edit preferences advanced network settings manual proxy configuration http proxy 172.25.254.29 port 3128 ok 2.squid反向 加速 1...

squid 原始碼學習2

下面的類共同協作,完成了乙個物件鍊錶 任何從asynccall繼承的物件都可以插入鍊錶 擁有可定義的fire函式,實現自己的功能,並在鍊錶中依次被調動 鍊錶中物件都可自動記錄引用計數 基類,完成記錄次數的自增自減和返回 struct refcountable virtual recountable ...