我在魷魚設定中遇到 DNS 問題。我還嘗試dns_nameservers
在我的squid.conf 中使用指令來指向DNS 伺服器。我有一個場景,www.example.com 應該訪問互聯網,但 foo.example.com 應該訪問內部網域。從我的客戶端,當我嘗試 ping foo.example.com 時,它會取得正確的 IP,但我在瀏覽器上收到此錯誤:
Unable to determine IP address from hostname foo.example.com
The DNS server returned:
Name Error: The domain name does not exist
我知道我的客戶端指向正確的 IP(因為 ping 工作正常),但我很好奇為什麼魷魚會嘗試連接到公共 example.com。
答案1
我閱讀的文檔表明,預設情況下,Squid 從檔案 /etc/resolv.conf 中取得名稱伺服器。但是,這對我不起作用。儘管作業系統(Debian)本身可以解析IP,但squid卻在抱怨。我進行了以下更改並使其正常工作:
/etc/nsswitch.conf:
hosts: files dns
/etc/hosts:
<ip_of_server> foo.example.com
我仍在試圖找出為什麼魷魚不從 /etc/resolv.conf 獲取名稱伺服器。
答案2
用戶端使用哪個 DNS 伺服器?客戶端能夠正確解決這個問題對squid影響不大。
使用代理程式時,伺服器進行DNS解析,所以客戶端的DNS解析並不重要;它只需要能夠解析代理的位址。
您可以從魷魚伺服器 ping foo.example.com 嗎?如果不是,則用戶端和伺服器必須使用不同的 DNS 伺服器,或為它們提供該區域的不同視圖。