Как мне удалось манипулировать хостами Mac OS X?
Некоторое время назад я установил на своих хостах 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
3 ответа
Похоже, что вы, возможно, создали запись хоста в 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
Кажется, вам нужно бежать
sudo niload -v -m hosts . < /etc/hosts
после обновления файла hosts, если вы хотите, чтобы изменения вступили в силу.