У меня проблемы с DNS при настройке squid. Я также пробовал использовать 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 работает нормально), но мне любопытно, почему squid пытается подключиться к общедоступному example.com.
В документации, которую я прочитал, предполагается, что по умолчанию 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.
Какой DNS-сервер использует клиент? Тот факт, что клиент может разрешить его правильно, мало влияет на squid.
При использовании прокси сервер выполняет разрешение DNS, поэтому разрешение DNS клиента не имеет значения; ему просто нужно иметь возможность разрешить адрес прокси.
Вы можете пинговать foo.example.com с сервера squid? В противном случае клиент и сервер должны использовать разные DNS-серверы, или они обслуживаются разными представлениями для этой зоны.