天天看點

Linux 系統通過 Squid 配置實作代理上網Squid normally listens to port 3128

Squid 介紹

Squid是一個高性能的代理緩存伺服器,Squid支援FTP、gopher、HTTPS和HTTP協定。和一般的代理緩存軟體不同,Squid用一個單獨的、非子產品化的、I/O驅動的程序來處理所有的用戶端請求。使用雲伺服器 ECS 時,經常有這樣的需求: 購買了多台 ECS 主機,但其中隻有一台伺服器購買了公網帶寬, 而其餘 ECS 因為隻有偶爾的公網通路需求,是以沒有購買公網帶寬。可以通過配置 squid 代理,來使沒有購買公網的伺服器通過已購買公網的伺服器通路外網,也可以通過squid作緩存減輕WEB伺服器的壓力,同時避免暴露WEB伺服器真實的IP位址,提高安全性。
  Squid 是一個緩存 Internet 資料的軟體,其接收使用者的下載下傳申請,并自動處理所下載下傳的資料。當一個使用者想要下載下傳一個首頁時,可以向 Squid 發出一個申請,要 Squid 代替其進行下載下傳,然後 Squid 連接配接所申請網站并請求該首頁,接着把該首頁傳給使用者同時保留一個備份,當别的使用者申請同樣的頁面時,Squid 把儲存的備份立即傳給使用者。
 按照代理類型的不同,可以将 Squid 代理分為正向代理和反向代理,正向代理中,根據實作方式的不同,又可以分為普通代理和透明代理。
           

普通代理:需要客戶機在浏覽器中指定代理伺服器的位址、端口。

透明代理:适用于企業的網關主機(共享接入 Internet)中,客戶機不需要指定

代理伺服器位址、端口等資訊,代理伺服器需要設定防火牆政策将客戶機的 Web 通路資料轉交給代理服務程式處理。

反向代理:是指以代理伺服器來接受 Internet 上的連接配接請求,然後将請求轉發給内部網絡上的伺服器,并将從伺服器上得到的結果傳回給 Internet 上請求連接配接的用戶端,此時代理伺服器對外就表現為一個伺服器。

Squid 配置說明

作業系統:CentOS Linux release 7.3.1611 (Core)

Squid 版本:squid-3.5.20-10.el7.x86_64

具體配置如下:

配置本地yum源,yum安裝squid:

Linux 系統通過 Squid 配置實作代理上網Squid normally listens to port 3128

yum install squid –y

安裝完成後開始根據不同的代理需求編輯配置檔案。

普通代理:

原理圖

Linux 系統通過 Squid 配置實作代理上網Squid normally listens to port 3128

*圖中的IP位址僅為實驗

1.啟動squid服務

Linux 系統通過 Squid 配置實作代理上網Squid normally listens to port 3128

systemctl start squid

2.打開用戶端浏覽器設定代理服務:

Linux 系統通過 Squid 配置實作代理上網Squid normally listens to port 3128
Linux 系統通過 Squid 配置實作代理上網Squid normally listens to port 3128

注意:此處代理伺服器的IP應該是與用戶端和web伺服器能夠直接通信的IP,測試機的IP不能與WEB伺服器直接通信,否則就是去了代理的意義。

3.用戶端直接通路WEB伺服器,此時可以實作由一台ECS伺服器做squid代理,通路後端沒有公網出口的WEB叢集。

Linux 系統通過 Squid 配置實作代理上網Squid normally listens to port 3128

反向代理:

用squid做反向代理增加web伺服器的安全性,同時squid可以作緩存,減輕真正的web伺服器的負擔,提高通路速度。

原理圖:

Linux 系統通過 Squid 配置實作代理上網Squid normally listens to port 3128

*圖中IP位址僅作參考

  1. 編輯squid的配置檔案
    Linux 系統通過 Squid 配置實作代理上網Squid normally listens to port 3128

vim /etc/squid/squid.conf

Linux 系統通過 Squid 配置實作代理上網Squid normally listens to port 3128

Squid normally listens to port 3128

http_port 80 vhost vport //指定squid代理伺服器的端口為80,vhost和vport指的是采用虛拟主機的方式

cache_dir ufs /var/spool/squid 512 16 256

cache_mem 16 MB

cache_peer 39.108.15.233 parent 80 0 no-query originserver

說明:

cache_dir ufs /var/spool/squid 512 16 256

緩存目錄 存儲方式 緩存目錄 緩存大小為512MB 一級子目錄數 二級子目錄數

指定真正的web伺服器 類型 http端口 不支援查詢鄰居的緩存 允許類型weiparent的伺服器作為原始伺服器被通路

http_access allow all 允許所有的網際網路使用者通路。

2.重新開機squid服務

Linux 系統通過 Squid 配置實作代理上網Squid normally listens to port 3128

systemctl restart squid

注意:反向代理代理伺服器需要使用80端口,若服務啟動不起來,請檢視80端口是否被占用。若占用,關閉掉對應服務,再重新啟動squid服務。

3.在用戶端直接輸入代理伺服器的ip,可以通路到真實的WEB伺服器。

Linux 系統通過 Squid 配置實作代理上網Squid normally listens to port 3128

透明代理原理:代理伺服器做一個轉發器,設定端口轉發規則,把通路web服務的請求,轉發給web伺服器,實作通路用戶端對WEB伺服器的通路。涉及iptables規則的設定,用途并不廣泛,不在累述。

繼續閱讀