7

Я столкнулся с действительно странной проблемой Mac: Safari не может подключиться к localhost, тогда как все остальные приложения могут подключаться как обычно (Firefox, Chrome, ping и т.д.).

Мой /etc /hosts - это стандартная настройка:

$ egrep localhost /etc/hosts
# localhost is used to configure the loopback interface
127.0.0.1   localhost
::1         localhost 
fe80::1%lo0 localhost
127.0.0.1   testing.localhost

Вопрос: кто-нибудь еще сталкивался с этим?В чем может быть проблема?

Обновление № 1: у меня есть сервер, работающий на localhost: 8080. При доступе из Safari я получаю сообщение об ошибке "Safari не может подключиться к серверу". http://localhost: 8080/ работает безупречно в Firefox и Chrome.

Обновление № 2: та же проблема с « http://127.0.0.1:8080/ » - так что, похоже, это не связано с разрешением localhost до 127.0.0.1.

8 ответов8

4

Я думаю, что нам нужно немного больше информации, основанной на вашем вопросе.

Я предполагаю, что у вас есть веб-сервер, работающий для приема запросов? В настоящее время я этого не делаю, и Safari не будет подключаться к 127.0.0.1, потому что он «не может найти 127.0.0.1» - хотя я могу просто проверить его.

Итак, во-первых, вам нужно что-то запустить. Во-вторых, пытались ли вы подключиться к testing.localhost с Safari, просто добавьте, что две записи сбивают с толку Safari (это вполне возможно).

Когда вы говорите "приложения могут соединяться как обычно" с Chrome и Firefox, что вы видите? Веб-страницу, которую вы ожидаете увидеть? Другая ошибка?

редактировать

Я скачал и установил MAMP, и я не смог воспроизвести эту ошибку.

Некоторые темы форума предполагают, что проблема связана с разрешением IPv6. Я был бы склонен отключить IPv6 и удалить запись из файла hosts (временно только для тестирования)

  1. Apple Menu> Системные настройки
  2. сеть
  3. Выберите ваше сетевое подключение> Дополнительно
  4. Настроить IPv6> Выкл.

Применить, перезагрузить и посмотреть, как это происходит.

2

У меня было это раньше - использование http://computername.local/ работало для меня, но я не уверен, почему это будет отличаться от простого использования имени в файле хоста.

1

Закомментируйте строку:

::1         localhost 

из вашего файла /etc /hosts. Очевидно, это будет вызвано поддержкой IPv6 в Safari.

1

Некоторые приложения решают привязать только к одному интерфейсу - например, 192.168.13.37, если это адрес, присвоенный eth0 или тому подобное - вместо использования 0.0.0.0 для всех интерфейсов.

Другие могут использовать только адреса IPv6 ::1 (localhost) или :: (все интерфейсы). Попробуйте http://[::1]:8080/ в этом случае.

0

Я не собираюсь отвечать на ваш вопрос напрямую, но предлагаю альтернативное решение: используйте virtualhostx для управления локальным DNS. Смотрите также, если MAMP не является хорошим решением для ваших нужд местного развития (если это то, что вам нужно).

0

Чтобы убедиться, что это не проблема с вашим веб-сервером (например, @nagul спросил: каким сервером вы пользуетесь?), На моем 10.6 Snow Leopard с IPv6, оставленным в автоматическом режиме, и даже с добавлением 127.0.0.1 testing.localhost в мой /etc/hosts , отлично работает следующее:

  • Измените порт Listen встроенного Apache с 80 на 8080:
    sudo vi /etc/apache2/httpd.conf
  • Запустите встроенный Apache, включив Системные настройки, Общий доступ, Общий веб-доступ. Или перезапустите с помощью: sudo apachectl restart

Кроме того, для меня нет проблем с использованием:

  • python -m SimpleHTTPServer 8080

Я знаю, что вы заявили, что не используете прокси. На всякий случай есть сомнения: последние версии Firefox позволяют выбирать между сетевыми настройками Firefox (которые были единственным вариантом в более старых версиях) и настройками системы. Safari всегда использует системные настройки. Конечно, хорошие настройки прокси будут игнорировать локальные адреса (по умолчанию на моем Mac настройки обхода прокси для этих хостов и доменов: * .local, * .lan, 169.254/16). Тем не менее, можно проверить, работает ли Firefox, когда он использует системные настройки, такие как Safari. (Настройки Firefox, Дополнительно, вкладка Сеть, кнопка Настройки.)

(Что-нибудь в журналах сервера или в журналах консоли? Какая версия Mac OS?)

0

Какой у тебя DNS? Некоторые DNS-провайдеры, такие как OpenDNS, зависят от ваших настроек, которые могут помешать вам куда-то пойти, поэтому для его проверки полностью удалите DNS и убедитесь, что у вас не настроен прокси-сервер.

-1

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

netstat -anp tcp | grep 8080

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .