ese*_*eer 2 networking telnet ping localhost osx-mountain-lion
过去两年我一直在端口 1337 上的本地主机上开发 Node.js 应用程序,没有出现任何问题,如下所示。
$ node app
App started on port 1337
Run Code Online (Sandbox Code Playgroud)
今天我想测试默认端口 80 的情况如何,所以我这样做了:
$ sudo node app
App started on port 80
Run Code Online (Sandbox Code Playgroud)
但在那之后我的网络变得疯狂。现在我无法访问任何本地地址,包括本地主机。当我 ping 到 localhost 时,它指向一些奇怪的公共 IP 地址 (218.38.137.125),而不是 127.0.0.1。
$ ping localhost
PING localhost.local (218.38.137.125): 56 data bytes
...
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
我的/etc/hosts如下:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
Run Code Online (Sandbox Code Playgroud)
有人能建议出什么问题吗?
我完全无法猜测,甚至无法继续我的工作。
我发现了问题。它恰好是/etc/hosts文件中不正确的行结尾。
我使用 Sublime Text 2 编辑它,这恰好是一个错误的选择,因为它添加了CR 行终止符。
$ file -b /etc/hosts
ASCII English text, with CR line terminators
Run Code Online (Sandbox Code Playgroud)
正如https://discussions.apple.com/message/20103434#20103434中提到的,它必须只是ASCII 英文文本。
因此,复制/etc/hosts内容并使用“vi”覆盖该文件,解决了问题。现在:
$ file -b /etc/hosts
ASCII English text
Run Code Online (Sandbox Code Playgroud)
我希望这也能帮助其他人。
归档时间: |
|
查看次数: |
4708 次 |
最近记录: |