LoginSignup
0
0

More than 5 years have passed since last update.

Node-REDをIPv6アドレスで接続できるようにして、Windows10 1803(mDNSサポート)のWebブラウザからhoge.localで接続できるようにする

Last updated at Posted at 2018-09-07

はじめに

Node-RED v0.18.7 時点でのデフォルトでは、WebブラウザからNode-REDへIPv6なURL*で接続することができません。もちろん、Node-REDの設定を変更すればIPv6なURLでもアクセス可能です。

* IPv6なURLの例)https://[xxxx::xxxx:xxxx:...]:1880
* IPv4 https://192.168.x.x:1880

ところで、Windows10は、悪名高き Windows10 2018 Spring Update(1803)パッチを当てることでmDNS*が標準サポートされるようになりました。
* いままでは、Apple社のBonjourをWindowsにインストールして実現していました。

これで、ローカルネットワーク上のラズパイにWindowsからSSHやVNCやWebで接続する際*、IPアドレスが何かを調べる必要が無くなりました。
* 例えば、ssh pi@raspberrypi.local (raspberrypiの部分はホスト名です。)

わーい、わーい!とWebブラウザ(Edge,Chrome)でNode-REDに接続*してみたら、・・・接続エラーが出るではありませんか! 念のため、Firefoxで行ってみたら、・・・うまく行く!
http://raspberrypi.local:1880

(ちゃんと調べたわけではなく現象として)分かったことは、EdgeとChromeは、IPv6アドレス側を優先してHTTPサーバに接続要求を出す、ということです。そのため、Node-RED側ではIPv6接続で要求されたため拒否されてエラーになった模様です。

ということで本題であるNode-REDのIPv6設定の仕方を説明します。

Node-REDの設定を変更する

settings.jsを変更

何も考えずにラズパイにNode-REDを入れた場合、ホーム配下の.node-redフォルダにsettings.jsファイルがあります。これをテキストエディタで開き、20~30行あたりに注釈となっているuiHostパラメタを、以下のように修正してください。
uiHost: "::",

Node-REDを起動し、WebブラウザからIPv6アドレスで接続できればOKです。
例)http://[IPv6アドレス]:1880 ブラケット[]でアドレスを括ること!

これでwindowsのwebブラウザから、Node-REDに
http://ホスト名.local:ポート番号
で接続できるようになります。

おわりに

Chromeは、chrome://net-internals/#dns とURL欄に入力するとhostnameとAddressのキャッシュ内容が表示できます。これを見てmDNSが引いた値がIPv6アドレスになっていることを発見し解決できました。
家にはラズパイやmDNSをライブラリでサポートしているESP32が多数あるので、これで色々と捗りそうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0