#環境
PC:Macbook Air
ブラウザ:Google chrome
#症状
railsアプリを作成後、localhostを開こうとするが「このページは動作していません」と表示され接続できない。
##詳細
・ターミナルでrails s
を入力時はエラーメッセージは出ないが、ブラウザでlocalhost:3000にアクセスしようとすると「このページは動作していません - localhostからデータが送信されませんでした。」と表示され、接続できない。
・rails s -b 0.0.0.0
では接続できる。
#試したこと
・lsof -i :3000
で、port3000が使用されていないかチェックしkill -QUIT <PID>
で消去。
→結果は変わらず。
・ブラウザをchromeからfirefoxに変えてみた
→rails s
で接続できる。
・ブラウザの問題だと考え、この記事を参考に、chromeの設定を以下のように変更。
- アドレスバーに「chrome://net-internals/#hsts」をコピペして開く
2.Delete domain security policiesにlocalhostと入力
→再度rails s
を試すも失敗。
#結論(エラーの原因)
上記の通り色々と試すもことごとく失敗し、もう一度ブラウザのエラーメッセージをよく読み、「ERR_EMPTY_RESPONSE localhost」で検索したところ、この記事にたどり着く。
結果、**原因はPCに入れているセキュリティソフト「ESET Cyber Security Pro」**だった!!
#ESETの設定
公式サイトにしたがって、一度パーソナルファイアウォール機能を無効にし、該当する通信が確立されるか試してみてください。
これで繋がるなら、原因は間違いなくESETのファイアウォール。
あとは、サイトの指示にしたがって、フィルタリングモードを[対話モード]にし、通信を許可するためのルールを作成すれば解決するはず。
#まとめ
今回、localhostにつながらない原因がESETにあるという結論にたどり着くまで、かなり時間がかかってしまいましたが、調べてみると、導入しているセキュリティソフトが悪さをしてしまうケースはよくあるようです。
何をやってもだめな時は、一度セキュリティソフトを確認してみてください。