つるながの綴り方

ITインフラ系のネタやTips、趣味としているカーライフなどを中心に日頃メモしておきたいことをしたためています。

Visual Studio Code(macOS版)とセキュリティソフトのESETではまる

2020/8/1 追記

ESETサポートセンターから回答がありました。

しかしながらESETが[::]の通信をブロックする現象は、
ESET Cyber Security Pro V6.8の不具合と確認され、
本日7月30日公開の新バージョンプログラムの
ESET Cyber Security Pro V6.9で修正が行われました。

ということで、ESETをバージョンアップして解決しました。またIPv6を使わないようにすることでも解決できそうです。」

以前の記事

各所でVScodeVisual Studio Code)のRemote Developmentが称賛されており、導入簡単!と言われていますが、表題の通り、macOSでセキュリティソフトのESETを使っていると、ファイアーウォール機能が邪魔をするようです。
SSHでログインして、VScodeのリモート開発環境をインストールするところまではうまくいきますが、その先、リモート開発環境をたちあげるところでエラーになりました。
エラーメッセージは以下の通り。

  • リモート環境をフェッチできませんでした
  • リモート拡張ホスト サーバーへの接続に失敗しました(エラー: Time limit...
f:id:tsurunaga:20200728175359p:plain
VScode Remote Developmentエラー

原因としては、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の特殊アドレスは憶えられないです。調べると

インタフェースにアドレスが存在しないことを表しています。これは,アドレスの割り当てを受けていないノードの接続開始時などに使用されます。

ということですが、これを許可ルールとすることでどんな弊害がでるのかは分かりませんが、設定してみます。
f:id:tsurunaga:20200728192747p:plain:w360
アドレスとしては「0:0:0:0:0:0:0:0」を入力しないとアドレスとして認識されませんでした。画像では「宛先」となっていますが、これで許可されるようになり、VSCodeのRemote Developmentが使えるようになりました。

ちょうどSoftware DesignVScodeの特集が組まれていました。