以下に示すように、私は過去2年間、ポート1337のローカルホストでNode.jsアプリを問題なく開発してきました。
$ node app
App started on port 1337
今日は、デフォルトのポート80でどのように動作するかをテストしたかったので、次のことを行いました。
$ Sudo node app
App started on port 80
しかしその後、私のネットワークはおかしくなりました。現在、ローカルホストを含むローカルアドレスにアクセスできません。ローカルホストにpingを実行すると、127.0.0.1ではなく奇妙なパブリックIPアドレス(218.38.137.125)を指します。
$ 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
誰かが何が悪いのか提案できますか?
私は完全に推測から外れていて、仕事を続けることさえできません。
私は問題を見つけました。 / 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
これが他の人にも役立つことを願っています。