В файле WINDOWS\system32\drivers\etc\hosts прописаны несколько имён, все ведут на 127.0.0.1. При вводе "localhost" Firefox показывает localhost, по остальным адресам - ломится в инет. В настройках прописано "Не использовать прокси для:" localhost, 127.0.0.1.

Так действуют и 1.0.7, и 1.5.

Ну так и пропишите дополнительные имена в список "не использовать прокси".

А не логичнее ли, что если имена ведут на 127.0.0.1, и в настройках указано не использовать прокси для 127.0.0.1, то Firefox и не должен использовать прокси для этих имён?

kAtremer пишет

А не логичнее ли, что если имена ведут на 127.0.0.1, и в настройках указано не использовать прокси для 127.0.0.1, то Firefox и не должен использовать прокси для этих имён?

Нет, это аллогично, т.к. у каждого прокси свой DNS и свой hosts, которые могут быть недоступны пользователям сервера прокси.

у каждого прокси свой DNS и свой hosts

Вот эту сентенцию можно пояснить? Насколько я что-то понимаю в DNS и прокси, они между собой не связаны. А hosts - это вообще файлик в виндах и юниксах, с помощью которого можно назначить специальные ip некоторым доменам. Кстати, как у Firefox с поддержкой имён, прописанных в hosts в юниксах? там это вроде более распространённый инструмент, чем в виндах.

kAtremer пишет

у каждого прокси свой DNS и свой hosts

Вот эту сентенцию можно пояснить? Насколько я что-то понимаю в DNS и прокси, они между собой не связаны.

Как не связаны? Прокси сам берёт IP из DNS и hosts, т.е. бразер говорит ему: "дай мне сайт www.site.ext", а прокси спрашивает у DNS какой IP у www.site.ext, окрывает соединение с www.site.ext берёт страницу и отдаёт её браузеру.

kAtremer пишет

А hosts - это вообще файлик в виндах и юниксах, с помощью которого можно назначить специальные ip некоторым доменам. Кстати, как у Firefox с поддержкой имён, прописанных в hosts в юниксах? там это вроде более распространённый инструмент, чем в виндах.

:)

А ты прокси отключи на время, у тебя и под виндой всё заработает.

прокси спрашивает у DNS какой IP у www.site.ext, окрывает соединение...

Это само собой, но слова о "собственном DNS прокси-сервера" всё-таки неверны, это две отдельные службы.

прокси отключи на время, у тебя и под виндой всё заработает

Заработало. Это значит: FF вполне умеет определять ip-адреса этих имён из hosts, так почему бы не проверить их перед обращением к прокси, если он включен?

kAtremer пишет

Это само собой, но слова о "собственном DNS прокси-сервера" всё-таки неверны, это две отдельные службы.

Ну да, разные, ну и что, если прокси установлен на отдельном компе то и настройка там свои.

kAtremer пишет

прокси отключи на время, у тебя и под виндой всё заработает

Заработало. Это значит: FF вполне умеет определять ip-адреса этих имён из hosts, так почему бы не проверить их перед обращением к прокси, если он включен?

Нельзя, если каждый адрес проверять, то в демилитаризированной зоне ты получишь огромную задержку при обращении к сайтам в инете.

если прокси установлен на отдельном компе то и настройка там свои
ты получишь огромную задержку при обращении к сайтам в инете

Ну и что? Если есть стандартный механизм hosts'ов, значит FF должен уметь его использовать, независимо от настроек какого-то там прокси и задержек. Тем более что не вижу, откуда взяться задержкам: hosts -- механизм в той же операционной системе, в которой запущен браузер.

демилитаризированной зоне

Это что и к чему тут приплетено?

kAtremer пишет

демилитаризированной зоне

Это что и к чему тут приплетено?

??? Не понял вопроса.

kAtremer пишет

если прокси установлен на отдельном компе то и настройка там свои
ты получишь огромную задержку при обращении к сайтам в инете

Ну и что? Если есть стандартный механизм hosts'ов, значит FF должен уметь его использовать, независимо от настроек какого-то там прокси и задержек.

Что ж, вам видней, у меня на моём прокси увы это не так.

kAtremer пишет

Тем более что не вижу, откуда взяться задержкам: hosts -- механизм в той же операционной системе, в которой запущен браузер.

А прокси стоит на том же компе что и Firefox?

hosts не имеет отношения к прокси.

??? Не понял вопроса

Что такое "демилитаризированная зона" и почему именно в ней я должен получить задержку?

kAtremer пишет

hosts не имеет отношения к прокси.

Да, вы правы, и поэтому при работе через прокси он и не учитывается. :)

PS: и не должен учитываться.

hosts - текстовый файл в юниксах, и почему-то в виндах тоже, который указывает доменные имена и соответствующие им ip. Обращения по этим именам должны идти на указанные ip независимо от того, что по поводу этих имён думают DNS в интернете. В том числе если я вообще не подключен к инету.

"man hosts" говорит, что в давние времена /etc/hosts в юниксах использовался в качестве системы имён интернета, и файл должен был синхронизироваться с другими компьютерами. DNS заменила эту систему.

Сейчас hosts обычно используется для тестирования сайтов без выкладывания в интернет.

Если кто-нибудь знает, hosts -- стандартный механизм или нет, скажите.
(на его тему есть RFC 952)

А если нет, его поддежка всё равно не помешала бы.

kAtremer пишет

[
Что такое "демилитаризированная зона" и почему именно в ней я должен получить задержку?

Демилитаризированная зона (DMZ) это часть сети закрытая фаерволом или брандмауером от остальных сетей, в том числе и от интернета. Т.е. из вне в эту сеть никак не попасть. Для доступа из DMZ к сервисам во внешних сетях используются шлюзы, т.е. так называемые, программы-посредники, на вроде прокси. Так строятся все нормальные локальные сети.

Программа обращаясь к какому-либо серверу по имени делает сначала запрос к DNS, ждет некоторое время, затем если сервер недоступен то выдает сообщение об ошибке. DNS - тоже программа, она тоже при трансляции адреса ищет ip до тех пор пока не поймет, что такого домена не существует. Если домен существует (DNS стоит на сервере с прокси) то IP адрес успешно будет получен программой, и программа начнет ломиться по указанному адресу. Но т.к. доступ в DMZ во вне ей закрыт, то она будет ждать, ждать, долго ждать, пока сервер ей не ответит, а когда до неё дойдет, что указанный адрес недоступен, то пройдёт раздражительно немало времени.

kAtremer пишет

hosts - текстовый файл в юниксах, и почему-то в виндах тоже, который указывает доменные имена и соответствующие им ip. Обращения по этим именам должны идти на указанные ip независимо от того, что по поводу этих имён думают DNS в интернете. В том числе если я вообще не подключен к инету.

"man hosts" говорит, что в давние времена /etc/hosts в юниксах использовался в качестве системы имён интернета, и файл должен был синхронизироваться с другими компьютерами. DNS заменила эту систему.

Сейчас hosts обычно используется для тестирования сайтов без выкладывания в интернет.

И всё таки, прокси стоит на том же компьютере, где лежит hosts?

нет

kAtremer пишет

нет

Тогда он не будет учитываться, и не должен. Все адреса транслирует прокси.

Могу объяснить ситуацию, которая по идее должна решаться с локальным hosts, но не решается в FF.

Допустим имеется сервер за проксей, на нем поднят виртуальный хостинг, но по определенным причинам будущее предполагаемое доменное имя не прописано в DNS. Зато оно прописано в hosts на самом сервере и web-сервер это устраивает.

Нам надо получить доступ к web-ресурсу на этом виртуальном хостинге через прокси. Педположим что hosts на компьютере с прокси мы настроить не можем, а вот на рабочей машине - запросто, что мы и делаем. Эти манипуляции мы вынуждены делать потому, что на этот хост можно попасть лишь указав доменное имя в URL'е http запроса, по ip сервера мы на этот хост никак не попадем, т.к. web-сервер будет выдавать страничку главного хоста, не виртуального. Но манипуляции с hosts ни к чему не приводят при настроеном прокси, они просто не учитываются (не можем получить ip для соединения с сервером), а при отключенном прокси мы не имеем вообще никакого способа добраться до нужного сервера (зато можем узнать его ip). Получается замкнутый круг.

ladserg

Все адреса транслирует прокси.

Правильно, транслирует.
Но служба DNS должна работать отдельно от прокси. Она не должна от него зависеть.

Правда и тут ситуация не однозначная... Если в локальной сети нет DNS сервера, а доступ до провайдера идет через прокси, то до DNS сервера провайдера добраться можно только через прокси...

Да, так оно и есть, если прокси доставляет именно то ресурс, URL которого запрашивается, т.е. при запросе:

http://www.domain.ext/index.htm

Он попытается добыть именно http://www.domain.ext/index.htm. Допустим FireFox знает ip этого www.domain.ext, тогда он тупо скажет прокси: "Дай мне ресурс http://01.01.01.01/index.htm" и прокси конечно полезет брать именно этот ресурс, но как заставить прокси обращаться к ресурсу http://www.domain.ext/index.htm по определенному ip адресу я не знаю.

Athathoth пишет

ladserg

Все адреса транслирует прокси.

Правильно, транслирует.
Но служба DNS должна работать отдельно от прокси. Она не должна от него зависеть.

Правда и тут ситуация не однозначная... Если в локальной сети нет DNS сервера, а доступ до провайдера идет через прокси, то до DNS сервера провайдера добраться можно только через прокси...

Да вы что все сговорились, что ли. Прокси спрашивает ip адрес у DNS, у какого DNS спрашивать адрес зависит от настроек сервера.

ladserg

Он попытается добыть именно http://www.domain.ext/index.htm. Допустим FireFox знает ip этого www.domain.ext, тогда он тупо скажет прокси: "Дай мне ресурс http://01.01.01.01/index.htm" и прокси конечно полезет брать именно этот ресурс, но как заставить прокси обращаться к ресурсу http://www.domain.ext/index.htm по определенному ip адресу я не знаю.

Не совсем так. FireFox просит прокси соеденить его с ip 01.01.01.01 по такому-то (например 80) порту (на транспортном уровне, по протоколу TCP), а http://www.domain.ext/index.htm уже передается внутри пакета с запросом на прикладном (HTTP), более высоком уровне.

Athathoth пишет

ladserg

Он попытается добыть именно http://www.domain.ext/index.htm. Допустим FireFox знает ip этого www.domain.ext, тогда он тупо скажет прокси: "Дай мне ресурс http://01.01.01.01/index.htm" и прокси конечно полезет брать именно этот ресурс, но как заставить прокси обращаться к ресурсу http://www.domain.ext/index.htm по определенному ip адресу я не знаю.

Не совсем так. FireFox просит прокси соеденить его с ip 01.01.01.01 по такому-то (например 80) порту (на транспортном уровне, по протоколу tcp), а http://www.domain.ext/index.htm уже передается внутри пакета с запросом на прикладном, более высоком уровне.

По моему прокси так не может.

ladserg

По моему прокси так не может.

Как это не может, когда трансляция ведется на уровне tcp или udp ;)

Добавлено:
А может даже на уровне IP, т.е. еще более низшем... Надо поискать в каком конкретно протоколе заложен механизм трансляции.

А TCP не в курсе кто такой HTTP и адрес http://my.domen.ru для него не понятен.

Не, я всетаки не до конца прав. Точнее в данном случае больше не прав чем прав =). Ведь часто используется Squid, а он как раз HTTP прокси, и он разворачивает все запросы до уровня HTTP, а значит и ресолвинг он должен производить....

Но в отношении Socks или элементарного NAT получается по описанному мною выше.

Нормальное поведение браузера и др. - смотреть сначала в hosts потом в DNS. Локальные ресурсы должны быть прописаны в списке исключений для прокси.
Хосты еще никто не отменял, например одна из причин их использования: на нескольких серверах используется какая-то программа обращение к которой идет по имени, получается что в DNS прописать ее нельзя, а определенные группы рабочих станций работают каждая со своим сервером, если машин немного проще сделать записи в хостах чем мутить навороты на днс. При наружном адресе рабочая станция сначала обращается к hosts потом днс, получить IP адрес нужного ресурса и исходя из него стряпать запрос дальше.

Актуально.

Клиент icq имеет настройку "Использовать DNS на прокси". Я хочу аналогичную настройку в браузере. Почему-то ни в одном из браузеров большой тройки такой настройки нет! Т.е. хочется чтобы клиент сам решал что ему делать с этим адресом (пропускать в прокси или нет). Есть масса примеров когда трафик дифференцируется провайдером (интернет, городская точка обмена, внутренний), а все DNS-имена невозможно указать в качестве исключений (просто можешь не знать их, зато знаешь диапазоны IP типа 194.194.0.0/16).

Т.о. если после разрешения DNS адрес попадает в исключения, то браузер сам устанавливает соединение с сервером по найденному IP. Если адрес предназначен для прокси, то идет обращение через прокси в первоначальном виде, без указания IP типа "GET http://forum.mozilla.ru/post.php?tid=7033 1.0".

Может всетаки есть такая настройка в браузере?

smakarov
Случаем не network.proxy.socks_remote_dns ?

Unghost пишет

smakarov
Случаем не network.proxy.socks_remote_dns ?

на сколько я понимаю эта настройка касается SOCKS прокси (да и по-умолчанию = false). Нужна подобная настройка для HTTP.