2020/8/1 追記
ESETサポートセンターから回答がありました。
しかしながらESETが[::]の通信をブロックする現象は、 ESET Cyber Security Pro V6.8の不具合と確認され、 本日7月30日公開の新バージョンプログラムの ESET Cyber Security Pro V6.9で修正が行われました。
ということで、ESETをバージョンアップして解決しました。またIPv6を使わないようにすることでも解決できそうです。」
以前の記事
各所でVScode(Visual Studio Code)のRemote Developmentが称賛されており、導入簡単!と言われていますが、表題の通り、macOSでセキュリティソフトのESETを使っていると、ファイアーウォール機能が邪魔をするようです。
SSHでログインして、VScodeのリモート開発環境をインストールするところまではうまくいきますが、その先、リモート開発環境をたちあげるところでエラーになりました。
エラーメッセージは以下の通り。
- リモート環境をフェッチできませんでした
- リモート拡張ホスト サーバーへの接続に失敗しました(エラー: Time limit...
原因としては、ESETのファイアーウォールが機能している点(これが正常なのか、過剰なのかはわかりませんが)が上げられます。対策とし2つ。
対策1:ESETのファイアーウォール機能を使わない
ESETのファイアーウォール機能をオフにして、macOSのファイアーウォール機能を使うようにすれば、問題は解決します。
対策2:ESETのファイアーウォールにルールを追加する
折角のESET、使えるようにしたいです。でも調べてみると、ESETとVScodeは相性が悪いようで、Debuggerで問題が発生するという記述も見られました。私自身はそこまで使い込んでいないので、真偽はわかりませんが。
とりあえず、ファイアーウォールでブロックされたログを確認すると以下のように。
2020/07/27 2:43:10 使用できるルールが見つかりません [::]:51420 [::1c1e:c8dc:0:0]:51406 TCP root 2020/07/27 2:48:42 使用できるルールが見つかりません [::]:51880 [::1c1e:caa8:0:0]:51869 TCP root 2020/07/27 2:49:34 使用できるルールが見つかりません [::]:52027 [::1c1e:cb3b:0:0]:52024 TCP root 2020/07/27 3:03:39 使用できるルールが見つかりません [::]:53494 [::1c1e:d0f6:0:0]:53469 TCP root
ソースアドレスは「::」で固定、ディストネーションアドレスとポート番号は毎回変わるようです。許可ルールを作るには、ソースアドレス「::」で条件を設定してやればいけそうです。
「::」はIPv6未指定アドレスの「0:0:0:0:0:0:0:0」の略表記。IPv6の特殊アドレスは憶えられないです。調べると
インタフェースにアドレスが存在しないことを表しています。これは,アドレスの割り当てを受けていないノードの接続開始時などに使用されます。
ということですが、これを許可ルールとすることでどんな弊害がでるのかは分かりませんが、設定してみます。
アドレスとしては「0:0:0:0:0:0:0:0」を入力しないとアドレスとして認識されませんでした。画像では「宛先」となっていますが、これで許可されるようになり、VSCodeのRemote Developmentが使えるようになりました。
ちょうどSoftware DesignでVScodeの特集が組まれていました。