29.3. 啟動 Squid

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

29.3.1. 開始和停止 Squid 的指令

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

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

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

rcsquid status 指令可用來檢查 Proxy 是否正在執行。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 編輯器,將 Squid 以所要的 runlevel 啟動。請參閱 節 2.9.8, "系統服務 (Runlevel)" (↑啟動)

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

29.3.2. 本地 DNS 伺服器

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

動態 DNS

一般而言,透過動態 DNS,就會在網際網路連線建立時由提供者設定 DNS 伺服器,而且會自動調整 /etc/resolv.conf 本機檔案。這種運作方式的控制是在 /etc/sysconfig/network/config 檔案中將 MODIFY_RESOLV_CONF_DYNAMICALLY sysconfig 變數設為 "yes"。請用 YaST sysconfig 編輯器將此變數設為 "no" (請參閱 節 8.3.1, "使用 YaST Sysconfig 編輯器變更系統組態"),然後在 /etc/resolv.conf 檔案中,以 localhost 的 IP 位址 127.0.0.1 來輸入本地 DNS 伺服器。這樣一來在啟動時,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 要求可以通過防火牆。