啟動 Squid

Squid 在 SUSE® Linux Enterprise Server 中已經過預先設定,所以可在安裝後立即啟動。為了確保啟動更平順,應該將網路設定為至少使用一部名稱伺服器,而且可連接網際網路。如果撥號連線是使用動態 DNS 組態,就有可能產生問題。在此範例中,至少應該輸入名稱伺服器,因為如果 Squid 在 /etc/resolv.conf 中偵測不到 DNS 伺服器,它就不會啟動 。

開始和停止 Squid 的指令

若要啟動 Squid,請以 root 的身份在指令行中輸入 rcsquid start。第一次啟動時,必須先在 /var/cache/squid 中定義快取記憶體的目錄結構。目錄的定義可由 /etc/init.d/squid 啟動程序檔自動完成,這可能需要花費數秒鐘,甚至幾分鐘。如果 done 以綠色出現在右邊,則表示已成功載入 Squid。若要在本地系統上測試 Squid 的功能,請在瀏覽器中輸入 localhost 做為代理,並輸入 3128 做為埠。

若要允許本地系統和其他系統的使用者存取 Squid 和網際網路,請將 /etc/squid/squid.conf 組態檔中的 http_access deny all 項目變更為 http_access allow all。然而,當您這麼做時,請考量到此動作將使 Squid 可供任何人完全存取。因此,請定義控制代理存取權限的 ACL。如需關於此的詳細資訊,請參閱 第 41.4.2 節「存取控制的選項」

在修改 /etc/squid/squid.conf 組態檔後,Squid 必須重新載入組態檔。請以 rcsquid reload 執行此動作。或者也可以使用 rcsquid restart 完全重新啟動 Squid。

rcsquid status 指令可用來檢查代理是否正在執行。rcsquid stop 指令可關閉 Squid。這可能需要花一段時間,因為 Squid 會在中斷與用戶端的連線並將其資料寫入磁碟前,先等待半分鐘 (在 /etc/squid/squid.conf 中的 shutdown_lifetime 選項)。

[Warning]終止 Squid

使用 killkillall 終止 Squid 可能會損毀快取記憶體。若要能夠重新啟動 Squid,就必須先刪除損毀的快取。

如果 Squid 在成功啟動後,仍然於一小段時間後即停止運作,請檢查是否有錯誤的名稱伺服器項目,或者是否缺少 /etc/resolv.conf 檔案。Squid 會在 /var/log/squid/cache.log 檔案中記錄啟動失敗的原因。如果要在系統開機時自動載入 Squid,請使用 YaST Runlevel 編輯器針對所需的 Runlevel 啟用 Squid。請參閱第 8.5.12 節「系統服務 (Runlevel)」

解除安裝 Squid 時不會移除快取記憶體階層或記錄檔。若要移除這些階層,請手動刪除 /var/cache/squid 目錄。

本地 DNS 伺服器

即使本地 DNS 伺服器不管理自己的網域,也可以設定本地 DNS 伺服器。它可以做為僅供快取的名稱伺服器,也可以透過根 名稱伺服器來解析 DNS 要求,而不需任何特殊的組態 (請參閱第 33.3 節「啟動名稱伺服器 BIND」)。如何達成此目的,端視您在設定網際網路連線的組態時,是否選擇動態的 DNS 而定。

動態 DNS

一般而言,使用動態 DNS 時,提供者會在網際網路連線建立期間設定 DNS 伺服器,而 /etc/resolv.conf 本地檔案會自動進行調整。這種運作方式的控制是在 /etc/sysconfig/network/config 檔案中將 MODIFY_RESOLV_CONF_DYNAMICALLY sysconfig 變數設為 "yes"。請用 YaST sysconfig 編輯器將此變數設為 "no" (請參閱第 20.3.1 節「使用 YaST Sysconfig 編輯器變更系統組態」)。然後在 /etc/resolv.conf 檔案中輸入本地 DNS 伺服器,以 IP 位址 127.0.0.1 做為 localhost。這樣一來在啟動時,Squid 就可以永遠找到本地名稱伺服器。

為了能夠存取提供者的名稱伺服器,必須在 forwarders 下的 /etc/named.conf 組態檔中輸入提供者的名稱及其 IP 位址。若使用動態 DNS,只要將 MODIFY_NAMED_CONF_DYNAMICALLY sysconfig 變數設為 YES,就可以在連線建立時自動完成此動作。

靜態 DNS

若使用靜態 DNS,建立連線時將不會執行任何自動的 DNS 調整,所以不必變更任何 sysconfig 變數。但是您必須依照上述方式在 /etc/resolv.conf 檔案中輸入本地的 DNS 伺服器。除此之外,在 forwarders 下的 /etc/named.conf 檔案中必須手動輸入提供者的靜態名稱伺服器及其 IP 位址。

[Tip]DNS 與防火牆

如果您有執行防火牆,請確定 DNS 要求可以通過防火牆。