Вопрос или проблема
У меня есть проблема с одним из моих компьютеров в сети. Это iMac с операционной системой OS X 10.5.8.
Проблема заключается в доступе к определенным веб-сайтам. Например, один из таких сайтов – это farmville.com, к которому компьютер не может подключиться.
Когда я пингую farmville.com, он возвращает “нет маршрута к хосту”:
$ ping farmville.com PING farmville.com (50.16.253.102): 56 байт данных ping: sendto: Нет маршрута к хосту ping: sendto: Нет маршрута к хосту ping: sendto: Нет маршрута к хосту
Когда я выполняю traceroute к farmville:
$ traceroute farmville.com traceroute: Предупреждение: у farmville.com несколько адресов; используется 50.16.253.109 traceroute к farmville.com (50.16.253.109), максимум 64 перехода, пакеты по 40 байт traceroute: sendto: Нет маршрута к хосту 1 traceroute: записал farmville.com 40 символов, ret=-1
traceroute к ip-адресу farmville: 50.16.253.109
$ traceroute 50.16.253.109 traceroute к farmville.com (50.16.253.109), максимум 64 перехода, пакеты по 40 байт traceroute: sendto: Нет маршрута к хосту 1 traceroute: записал farmville.com 40 символов, ret=-1
Теперь интересная часть заключается в том, что на другом компьютере (с операционной системой Ubuntu 10.10) у меня нет никаких проблем с доступом к этому веб-сайту. Это говорит мне о том, что это не проблема с интернет-соединением. Я также отключил брандмауэр на маршрутизаторе безрезультатно.
Файл /etc/hosts на маке выглядит следующим образом. Файл /private/etc/hosts пустой:
## # База данных хостов # # localhost используется для настройки интерфейса обратной связи # при загрузке системы. Не изменяйте эту запись. ## 127.0.0.1 localhost #255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost
Буду благодарен за любую помощь.
Большое спасибо
Я предполагаю, что это не связано с блокировкой ICMP. Если бы это было так, ответ просто бы истекал по времени, а не выдавал сообщение “нет маршрута к хосту”. “Нет маршрута к хосту” означает именно это: когда пункт назначения ICMP-сообщения не находится в локальной подсети, оно будет перенаправлено на шлюз по умолчанию для обработки. Если шлюза по умолчанию нет или шлюз не имеет информации в своей таблице маршрутизации для перенаправления пакетов, вы увидите “нет маршрута к хосту”.
Как команды ping, так и traceroute разрешают доменное имя в IP-адрес (хоть и разные адреса), так что, похоже, разрешение DNS работает нормально. Так что сначала я бы проверил, что ваши шлюзы по умолчанию одинаковые/правильно настроены на iMac.
Кроме того, судя по тому, что я видел, OS X, кажется, предпочитает Wi-Fi проводному подключению, когда оба подключены. Убедитесь, что у вас подключен только один (если вы используете оба) и посмотрите, работает ли это.
ICMP может быть заблокирован где-то (но не вашим брандмауэром, так как вы его отключили), что делают некоторые провайдеры интернет-услуг по различным причинам (например, они используют ОС, имеющую уязвимость безопасности, использующую ICMP, заблуждение о том, что ICMP представляет собой угрозу безопасности и т. д.).
Попробуйте выполнить команды traceroute и ping с других сайтов, чтобы посмотреть, работают ли они. Я пытался пинговать первый IP-адрес из сети Shaw.CA, и получил довольно быстрые ответы.
Здесь что-то странное? Пинг идет к 50.16.243.102
, в то время как ваш traceroute идет к 50.16.243.109
?
Теперь я проверял оба IP-адреса, и они работают нормально. Но, проще говоря, в аналогичном случае проверьте DNS и шлюзы обоих компьютеров.
Убедитесь, что их DNS-серверы одинаковые, и убедитесь, что шлюз по умолчанию одинаковый для обоих компьютеров.
Обе рекомендации Asmus и Gordon важны и будут довольно полезны в дальнейшей отладке.
Для тех, кто попал сюда из поиска Google с тем же сообщением об ошибке.
Если вы:
- На macOS 15 Sequoia и более поздних версиях
- Используете сторонние терминальные приложения, такие как iTerm или kitty
Также проверьте, есть ли у приложения разрешение на локальную сеть.
Перейдите в Настройки системы > Безопасность и конфиденциальность > Локальная сеть и убедитесь, что переключатель включен для вашего терминального приложения.
Ответ или решение
Если вы столкнулись с сообщением об ошибке "no route to host" на компьютере под управлением Mac OS X 10.5.8, это может указывать на проблемы с маршрутизацией или конфигурацией сети, связанных с вашим подключением к Интернету. Я постараюсь помочь вам разобраться с этой проблемой, детально описав все возможные причины и способы их устранения.
1. Проверка настроек маршрутизации
Сообщение "no route to host" означает, что в таблице маршрутизации вашего компьютера нет пути к запрашиваемому хосту. Первое, что нужно сделать, это проверить конфигурацию роутера и убедиться, что ваше устройство правильно указано в настройках сети.
- Откройте терминал и введите команду:
netstat -rn
Эта команда отобразит таблицу маршрутизации. Убедитесь, что у вас установлен правильный шлюз по умолчанию. Проверить значение можно с помощью строки, начинающейся с "default".
2. Проверка настроек сети
Проверьте, использует ли ваш iMac проводное или беспроводное соединение. Возможно, оба интерфейса активны, и ОС X пытается использовать Wi-Fi, который может быть неверно настроен.
- Зайдите в "Системные настройки" → "Сеть" и убедитесь, что у вас только одно активное соединение.
3. Проверка DNS
Так как другие компьютеры в вашей сети могут успешно подключаться к интернету, необходимо проверить настройки DNS на вашем iMac.
- Проверьте, что DNS-серверы настроены правильно. Для этого в "Системные настройки" → "Сеть" выберите ваше подключение и нажмите "Дополнительно", затем перейдите на вкладку "DNS".
Сравните указанные DNS-серверы с теми, которые настроены на работающем компьютере. Если они отличаются, попробуйте установить те же самые DNS-серверы, например, от Google (8.8.8.8 и 8.8.4.4).
4. Обновление маршрутов
Если вы видите, что настройки шлюза и DNS правильны, попробуйте сбросить настройки маршрутизации.
В терминале выполните команду:
sudo route flush
Это сбросит текущие маршруты и позволит вашей системе заново получить необходимые настройки.
5. Выявление блокировок
Хотя вы упомянули, что отключили брандмауэр на роутере, следует проверить, не блокирует ли ваш интернет-провайдер ICMP-пакеты или конкретные порты, необходимые для работы ping и traceroute.
Попробуйте выполнить ping к другим серверам, чтобы выяснить, есть ли у вас проблемы с выходом в Интернет в общем или только с определенными адресами.
6. Проверка конфигурации файла hosts
Файл /etc/hosts
на вашем iMac не содержит специфических записей, что является нормальным состоянием. Однако если вы добавляли какие-либо записи, это могло повлиять на маршрутизацию. Убедитесь, что он соответствует приведенному вами примеру.
7. Перезагрузка оборудования и обновление системы
В некоторых случаях простая перезагрузка вашего роутера и iMac может устранить временные сбои в работе сетевых подключений. Также следует проверить, установлено ли на вашей системе последнее доступное обновление.
Заключение
Если ни одно из вышеперечисленных действий не помогло решить проблему, возможно, стоит обратиться в техническую поддержку вашего интернет-провайдера для дополнительных проверок. Они могут провести диагностику вашей линии и выяснить, присутствуют ли какие-либо проблемы на их стороне.
Следуя данным рекомендациям, вы сможете устранить проблему "no route to host" на вашем Mac OS X 10.5.8.