2016-06-21 8 views
5

Я пытаюсь перенаправить существующий веб-адрес на удаленную машину в моей подсети. Чтобы сделать это, я помещал следующее в/и т.д./хосты/etc/hosts игнорируется в mac El Capitan (10.11.5)

192.168.1.249 holub.com

и очистить кэш DNS с

Суды dscacheutil -flushcache; Суд killall -HUP mDNSResponder

Однако, когда я ping holub.com (самый надежный способ, которым я знаю, чтобы увидеть, как адрес фактически разрешен), я e - настоящий веб-адрес (204.13.10.74), а не тот, который указан в/etc/hosts (192.168.1.249). Интересно, что утилита mysqladmin не правильно разрешает адрес, но браузер Chrome правильно разрешает адрес. Я предполагаю, что Chrome имеет своеобразное внутреннее решение.

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

Я попытался использовать различные эквиваленты IPv6 для моего локального адреса (0: 0: 0: 0: 0: ffff: c0a8: 01f9 :: ffff: 192.168.1.249 :: 192.168.1.249), но это не означает, t помочь. Перезагрузка (а не очистка кеша) тоже не помогает.

Я нашел одно неудовлетворительное обходное решение. Если я отключить DNS reponder с

Суды launchctl выгрузить -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

затем/и т.д./хосты используются, но тогда я не может получить доступ в Интернет.

Если кто-то столкнулся с этой проблемой, мне бы хотелось узнать, есть ли обходной путь.

+2

Убедитесь, что введенная запись правильно отформатирована: IP-адрес, за которым следует пробел или табуляция, а затем имя, а затем строка перевода в конце строки. Попробуйте распечатать файл hosts с помощью 'cat -vet/etc/hosts', чтобы сделать видимыми невидимые символы. Строка должна выглядеть так: «192.168.1.249^Iholub.com $» («^ I» - это вкладка, а «$» - строка) или «192.168.1.249 holub.com $». Если вы видите «^ M» (возврат каретки) непосредственно перед «$», у вас есть текст в формате DOS/Windows, и вам нужно удалить каретки (-ы). –

+0

Гордон, спасибо, но все это правильно. Прямой файл ascii, созданный с помощью vim на mac (который по существу является BSD unix), поэтому никаких странных файлов Windows :-). Проблема идет глубже. – aholub

+0

Помогает ли добавление 'order hosts, bind' в качестве первой строки в'/etc/resolv.conf'? –

ответ

6

Я столкнулся с этим во время поиска ответа на аналогичную проблему и хотел опубликовать мои результаты для кого-либо еще в том же положении.

Как команда из трех человек, мы обнаружили, что редактирование файла/etc/hosts оказалось сработавшим, а редактирование файлов хостов других двух, казалось бы, не было. После дальнейшего копания мы поняли, что я на OS X 10.10, в то время как они были на более новых версиях.

Мы обнаружили, после попытки около миллиона вещей, что дополнения в файл хостов в 10.11 и до, по-видимому, не может иметь более чем один пробел между IP и доменом, например:

НЕ РАБОТАЮТ:

1.2.3.4  some.site.com 

DID РАБОТУ:

1.2.3.4 some.site.com 

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

Я знаю, что в вашем примере вы показываете только одно место, но, вовремя, теперь, как это появилось в вашем фактическом файле, я хотел бы поделиться этим в любом случае.