Проблема с DNS в Squid

Проблема с DNS в Squid

У меня проблемы с DNS при настройке squid. Я также пробовал использовать dns_nameserversдирективу в моем squid.conf, чтобы указать на DNS-серверы. У меня есть сценарий, в котором www.example.com должен выходить в интернет, но foo.example.com должен выходить на внутренний домен. С моего клиента, когда я пытаюсь пинговать 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 работает нормально), но мне интересно, почему Squid пытается подключиться к публичному example.com.

решение1

В документации, которую я читал, говорится, что по умолчанию Squid берет серверы имен из файла /etc/resolv.conf. Однако у меня это не сработало. Хотя сама ОС (Debian) могла разрешить IP, squid жаловался. Я внес следующие изменения и все заработало:
/etc/nsswitch.conf:
hosts: files dns
/etc/hosts:
<ip_of_server> foo.example.com

Я все еще пытаюсь понять, почему Squid не выбирает серверы имен из /etc/resolv.conf.

решение2

Какой DNS-сервер использует клиент? Тот факт, что клиент может его правильно разрешить, не оказывает большого влияния на squid.

При использовании прокси-сервера разрешение DNS выполняется сервером, поэтому разрешение DNS клиента не имеет значения; необходимо лишь иметь возможность разрешить адрес прокси-сервера.

Вы можете пинговать foo.example.com с сервера squid? Если нет, клиент и сервер должны использовать разные DNS-серверы или обслуживать разные представления для этой зоны.

Связанный контент