カランのブログ

ソフトウェアエンジニア / 台湾人 / 福岡生活

今のモード ライト

前言

おおよそ数か月前から、私のGoogle Chromeは時折意味不明な"connection refused"の問題が発生するようになりました。時々、特定のウェブページが開けないことがありますが、他のデバイスでは正常に開くことができます。不思議な感じはしましたが、サーバーの設定の問題かもしれないと思い、特に問題もないのでそのまま使用していました。

カスタムドメインの設定

後に、私が .dev ドメインを手に入れたとき、奇妙なことが起こりました。CNAMEを設定し、SSLが有効になっていることを確認しましたが、Chromeでリロードしても常にCONNECTION_REFUSEDと表示されます。通常、この問題にはいくつかの原因があります。1つ目はサーバー側でポートが開かれていないこと、もう1つはファイアウォールの設定ですが、これらの設定を確認したところ、問題はありませんでした。念のため、CNAMEが正しく設定されているかどうかを確認するために、dig xxx.dev +nostats +nocomments +nocmdを使用しました。全く問題ありませんでした。

次にSSLの問題を確認しました。SSL checkerを使用してSSLが正しく設定されているかをチェックしましたが、問題ありませんでした。

さて、おそらく設定が有効になるまで少し待つ必要があるのかもしれないので、10分待ってみましたが、やはりダメでした。Chromeは相変わらずCONNECTION_REFUSEDと表示されます。次に、携帯電話で確認してみると、ウェブページに正常にアクセスできることがわかりました。

この時点で、コンピューターの設定に何か問題があるかもしれないと疑い始め、関連する設定をチェックし始めました。まず、curl blog.kalan.devを使用して確認してみました。結果、エラーが表示されました:

curl: (7) Failed to connect to blog.kalan.dev port 80: Connection refused

うーん、Chromeの結果とcurlの結果が同じですね。つまり、コンピューター自体の設定に問題がある可能性が高いです。次に、何が起こったのかを確認するためにwgetを使用しました。

wget https://blog.kalan.dev
--2019-03-18 23:11:46--  https://blog.kalan.dev/
blog.kalan.dev (blog.kalan.dev)... 127.0.0.1, 0.0.0.1を検索中
blog.kalan.dev (blog.kalan.dev)|127.0.0.1|:443に接続中... 失敗: Connection refused。
blog.kalan.dev (blog.kalan.dev)|0.0.0.1|:443に接続中... 失敗: No route to host。

待ってください、ホストを検索しているのに127.0.0.1が見つかる?つまり、このドメインがローカルのhostsに追加されているということですか?私の記憶では、そんなことは全くなかったはずですが、一応/etc/hosts/private/etc/hostsという2つのファイルをチェックしてみます。

結果は同じでした。私はローカルのhostsにドメインを設定していないことがわかりましたが、少なくとも原因が分かりました。なぜなら、ある設定によってblog.kalan.dev127.0.0.1に設定されているためです。ここまでくると、何が原因なのか全くわかりません。しかし、試行錯誤していると、奇妙なことに気づきました。.devドメインの場合、どのドメインでも同じ状況が発生し、他のドメインにはこのような問題がありません。

その時に思い出したことがあります。約4年前、Ruby On Railsを学ぶためにpowderをダウンロードしました。簡単に言うと、ウェブサイトにアクセスする際にサーバーを起動する手間を省くことができる便利なツールです!当時、私は喜んでインストールしました。

しかし、公式ドキュメントをよく見ると、セクション3_1に次のように書かれていました:

POW_DOMAINS環境変数は、PowがDNSクエリとHTTPリクエストを処理するためのトップレベルドメインのカンマ区切りリストを指定します。このリストのデフォルト値は2つのtest,devドメインで、Powはシステムを設定して*.test*.devを127.0.0.1に解決し、.test.devドメインのアプリを~/.powで提供します。

ああ、なるほど、私のIPアドレスをPowが取り込んでいたのですね。blog.kalan.devが127.0.0.1を指すようになっていて、コンピューター自体が443ポートを開いていないためにCONNECTION_REFUSEDが表示されるのです。ですから、私が見えなかったウェブページも、おそらく.devドメインでアクセスできなかったのかもしれません。

いくつかのポイントをメモしておきます:

  • CONNECTION_REFUSEDが表示された場合、直接wgetを使用してホスト接続が正常かどうかを確認する
  • または、curl --ipv4 -v "your.site.com"を使用してホスト接続をチェックする

作者

Kalan 頭像照片,在淡水拍攝,淺藍背景

愷開 | Kalan

Kalan です。台湾出身で、2019年に日本へ転職し、福岡に住んでいます。フロントエンド開発に精通しているだけでなく、IoT、アプリ開発、バックエンド、電子工作などの分野にも挑戦しています。 最近、エレキギターを始めました。ブログを通じて、より多くの人と交流できればと思っています。気軽に絡んでください