1

Последние два года я разрабатывал приложения Node.js на своем локальном хосте через порт 1337 без проблем, как показано ниже.

$ node app
App started on port 1337

Сегодня я хотел проверить, как обстоят дела с портом 80 по умолчанию, поэтому я сделал:

$ sudo node app
App started on port 80

Но после этого моя сеть сошла с ума. Теперь я не могу получить доступ к любому локальному адресу, включая localhost. Когда я пингую localhost, он указывает на какой-то странный публичный IP-адрес (218.38.137.125) вместо 127.0.0.1.

$ ping localhost
PING localhost.local (218.38.137.125): 56 data bytes
...

218.38.137.125 не мой публичный IP-адрес.

Когда я telnet я вижу тот же неправильный IP-адрес:

$ telnet localhost
Trying 218.38.137.125...
telnet: connect to address 218.38.137.125: Connection refused
telnet: Unable to connect to remote host

Мой /etc/hosts следующий:

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0 localhost

Кто-нибудь может подсказать, что не так?

Я совершенно не догадываюсь и даже не могу продолжать свою работу.

1 ответ1

3

Я нашел проблему. Это может быть неправильное окончание строки в файле /etc /hosts .

Я отредактировал его, используя Sublime Text 2, который оказался неправильным выбором, так как он добавил терминаторы строки CR.

$ file -b /etc/hosts
ASCII English text, with CR line terminators

Как указано в https://discussions.apple.com/message/20103434#20103434, это должен быть только текст ASCII на английском языке.

Таким образом, копирование содержимого /etc/hosts и переопределение этого файла с помощью "vi" решило проблему. Сейчас:

$ file -b /etc/hosts
ASCII English text

Я надеюсь, что это поможет и другим.

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