在 Squid 中動態限制頻寬
事實上,我的問題在於在我的網路中從 Internet 下載大文件的使用者。
我的網路中有一個 Squid 記憶體/代理伺服器,它位於我的網路和 Internet 之間。
我認為終止長時間處於活動狀態的連接可能有助於防止使用者下載大文件。所以**在這篇文章**中問它,但沒有得到明確的答案。魷魚似乎是不可能的。:-/
現在,該文章中還建議的一種解決方案是限制每個使用者的頻寬:我們只是為每個使用者提供合適的頻寬,使用者可以做任何事情(甚至下載)而不會打擾其他人。
但據我所知,Squid 只能為使用者分配一些靜態頻寬。因此,任何使用者都具有無法更改的特定靜態頻寬。我似乎這既不公平也不最優,因為在空閒情況下(當小使用者請求時)我們應該給他們更多的頻寬,而不是他們在繁忙情況下的份額。
所以在一個公平的系統中,頻寬應該在考慮優先級的可用使用者之間分配(一些使用者應該比其他使用者擁有更多的份額)。任何使用者的份額取決於所有可用使用者。使用者多分享少。像這樣的東西:
UserBandwidth = (OverallAllBandWidth / NumberOfCurrentUsers)
如果某一刻我們只有一個使用者,我們應該將所有頻寬分配給他。
所以:
- Squid 可以解決這個問題嗎?
- 用其他軟體可以嗎?Linux 本身呢?我聽說 linux 核心中有一些用於流量整形的功能。
如果不切實際,您會建議什麼其他解決方案:
- 阻止使用者下載(特別是 HTTP 下載)
要麼
- 強制實施公平且動態的頻寬限制
謝謝!
你可以使用
acl aclname rep_mime_type mime-type
阻止某些 mime 類型的下載(例如 iso 的)
和
reply_body_max_size
為可以下載的最大文件設置上限
您還可以使用 free-sa 分析您的日誌以查看頻寬的去向
http://free-sa.sourceforge.net/
編輯:實際上魷魚延遲池將完全滿足您的需求。
閱讀這篇文章: http: //www.howtoforge.com/squid-delay-pools-bandwidth-management
延遲池是要走的路,會限制頻寬使用,仍然下載小文件。mime 類型的問題,是使用者在 https 中連接,你看不到請求的內容,在某些情況下甚至使用非法代理.我建議使用 calamaris 來生成魷魚流量的統計數據,這將讓您清楚地知道在哪裡進行調整會有所幫助。 https://topnetworkguide.com/calamaris-an-external-logfile-analyzer-for-squid-proxies/