🎃
local-ssl-proxyでRequest failed to proxy: ECONNREFUSEDのエラー
はじめに
これは個人的にエラーで躓いたことのメモ
原因なども調べたがまちがってたらすんません
解決方法
local-ssl-proxyでhttpsの開発を行おうとした時に
Request failed to proxy: ECONNREFUSED
のエラーがでて接続できなかった時
起動時に
NODE_OPTIONS=--dns-result-order=ipv4first
をつけたら解決した
NODE_OPTIONS=--dns-result-order=ipv4first local-ssl-proxy --key localhost-key.pem --cert localhost.pem --source 3001 --target 3000
local-ssl-proxyの使い方などは下記がわかりやすかった
原因
ホスト名localhost
は
- IPv4 アドレス:
127.0.0.1
- IPv6 アドレス:
::1
になる
環境によってどっちが優先されるか異なるみたい
今回の場合ではlocalhost
を解決した際に、IPv6 アドレス::1
が優先的に使用されていた
ターゲットサーバー側ではIPv4 アドレス 127.0.0.1
上のポート3000
でリスニングをおこなっていた。
つまりIPv4経由での接続のみを受け付けていた
local-ssl-proxyではデフォルトでターゲットホスト名localhost
を解決する
ホスト名解決時には環境によって変わり、今回はIPv6 アドレス::1
となっていた
その結果、プロキシはIPv6 アドレス::1
を使用してターゲットサーバーへの接続を行おうとしてた
IPv6 アドレス ::1
上ではリスニングしていなかったため、IPv6 経由での接続は拒否された
NODE_OPTIONS=--dns-result-order=ipv4first
を入れることにより、ホスト名解決時に IPv4 アドレスを優先的に使用するようになる
localhost
を解決した時にIPv4 アドレス127.0.0.1
が使用された
これで接続ができるようになった
Discussion