私はMac OS X 10.7でdjango/postgresqlを使って開発していますが、突然テストサーバーにアクセスできなくなりました。http://localhost:8000/0.0.0.0:8000 で listen するようにすれば動作します...
その後、SABnzbdの起動に問題があることに気付きました。起動しようとすると、すぐに停止してしまいます。ログには次のように表示されます。
IOError: Port 8080 not bound on '127.0.0.1'
実行すると、netstat -an | grep 8080
ポート 8080 で実際にリッスンしているものは何もないことがわかります。
次に、telnet と localhost への ping を試しました。どちらも機能しません。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
奇妙なことに、ポート 80 に telnet すると動作します。
$ 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 に接続できる場合は、そのポートで何が実行されているかを確認してください。また、共有設定も確認してください。以前は Web サイト共有機能がありましたが、それがポート 80 を使用している可能性があります。
また、localhost:8080 に telnet して、接続できるかどうかを確認してください (接続できる場合は、別のアプリがそのポートを使用しています)。
開いてみるhttp://localhost:8080ブラウザで、そのポートで実行されているプログラムを調べてみてください。
答え2
場合によっては、これはテキストエンコーディングの問題によって発生します。/etc/hosts は問題ないように見えますが、実際にはエンコーディングが間違っています。Mac OS X Mountain Lion は localhost に ping/telnet できません。間違ったパブリック IP を指定しています