我在 Mac OS X 10.7 上使用 django/postgresql 进行开发,突然无法通过http://本地主机:8000/。我可以让它监听 0.0.0.0:8000 然后它就可以工作了......
然后我注意到 SABnzbd 启动时出现问题。每当我尝试启动它时,它就会死机并关闭。日志显示
IOError: Port 8080 not bound on '127.0.0.1'
运行netstat -an | grep 8080
表明实际上没有任何内容在监听端口 8080。
然后我尝试 telnet 并 ping localhost。都不起作用。当我 telnet 时,我得到:
$ telnet localhost
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
它就挂在那里。
当我尝试 ping 时,我得到以下信息:
$ ping localhost
PING localhost (127.0.0.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
奇怪的是,当我通过 telnet 连接到端口 80 时,它可以工作!
$ telnet localhost 80
Trying ::1...
Connected to localhost.
Escape character is '^]'.
我的/etc/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
有什么方法可以解决这个问题,或者最简单的方法是擦除它并重新开始?
答案1
现在大多数防火墙都会阻止 ping 请求,我的 OSX Lion 安装也默认具有这种行为。
尝试浏览http://本地主机:80如果您可以连接到端口 80,并查看该端口上运行的内容。另外,请查看您的共享首选项 - 以前有一个网站共享功能,它可能正在使用端口 80。
另外,尝试 telnet 到 localhost:8080,看看是否可以连接(如果可以,则另一个应用程序正在使用该端口)。
尝试打开http://本地主机:8080然后在您的浏览器中尝试找出该端口上正在运行的程序。
答案2
在某些情况下,这是由文本编码问题引起的;/etc/hosts 看起来没问题,但实际上编码错误。请参阅Mac OS X Mountain Lion 无法 ping/telnet 本地主机。指向错误的公共 IP