Как мне удалось манипулировать хостами Mac OS X?

1446
alex_c

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

Теперь, независимо от того, что я делаю, я не могу отменить установку или установить что-то еще - это как-то «зависло» на 127.0.0.1.

$ sudo nano /etc/hosts Password: 

Я добавляю эти две строки:

208.96.53.70 reddit.com 208.96.53.70 reddit2.com 

Сохранить, выйти, затем:

$ dscacheutil -flushcache $ ping reddit.com PING reddit.com (127.0.0.1): 56 data bytes $ ping reddit2.com PING reddit2.com (208.96.53.70): 56 data bytes 

То же самое, если я вообще не указываю reddit.com.

Что мне не хватает ?? У меня нет другой записи для reddit.com в моем файле hosts. Это не проблема маршрутизатора или интернет-провайдера - другие компьютеры на том же маршрутизаторе в порядке. Где еще это можно определить?

Ради полноты я вычистил все из своих хостов, и он содержит только следующее:

## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost 
0
Какой IP-адрес вам предоставил dig digd.com? Steve Folly 14 лет назад 0
reddit.com. 6 В 216.207.68.88 reddit.com. 6 IN A 216.207.68.72 (я получил 208.96.53.70 из поиска в Google только для тестирования, скорее всего, он устарел.) alex_c 14 лет назад 0
Попробуйте 'dscacheutil -cachedump -entries host' в качестве администратора. Есть ли там reddit.com, и если да, то в каком узле DS он был найден? Steve Folly 14 лет назад 2

3 ответа на вопрос

3
Gordon Davisson

Похоже, вы, возможно, создали запись хоста в DSLocal, а не в / etc / hosts. Чтобы узнать, запустите:

dscl /Search -read /Hosts/reddit.com 

Это должно вернуться с чем-то вроде этого:

AppleMetaNodeLocation: /Local/Default IPAddress: 127.0.0.1 RecordName: reddit.com RecordType: dsRecTypeStandard:Hosts 

Видите расположение AppleMetaNode? Это говорит вам, откуда он получает информацию. Если он говорит /BSD/local, он находится в / etc / hosts; если он говорит /Local/Default(что, я подозреваю, так и будет), то это узел локального каталога по умолчанию, он же DSLocal. Если это говорит <dscl_cmd> DS Error: -14136 (eDSRecordNotFound), то я понятия не имею, что ты сделал.

В любом случае, если предположить, что запись поступила из DSLocal, ее довольно легко удалить:

sudo dscl /Local/Default -delete /Hosts/reddit.com 
Спасибо, сэр - это именно так! Проголосовал бы, но пока нет представителя :) alex_c 14 лет назад 0
1
Tyler

пытаться

dscacheutil -flushcache ping reddit.com 

и доложить.

Уже сделал - смотри выше. Насколько я могу сказать, это должно сработать, но это не так, поэтому я сбит с толку. alex_c 14 лет назад 0
Вау, прости, я, видимо, перепрыгнул через это во время чтения Я бы, наверное, посмотрел на reddit.com в / etc и посмотрел, что получится. Tyler 14 лет назад 0
0
Sopoforic

Кажется, вам нужно бежать

sudo niload -v -m hosts . < /etc/hosts 

после обновления файла hosts, если вы хотите, чтобы изменения вступили в силу.

Я думаю, что это было для более старых версий Mac OS X, я использую 10.5.7 - «команда не найдена» на моей. alex_c 14 лет назад 0