我应该在 Avast 防火墙中为 WSL 和 Hyper-V 添加哪些例外?

我应该在 Avast 防火墙中为 WSL 和 Hyper-V 添加哪些例外?

概括

我的防火墙阻止了 WSL 服务器(Ubuntu 18.04)仅在 Visual Studio Code 上运行时。它还阻止我的 Hyper-V VM(Ubuntu 19.04)建立几乎例如每次连接互联网sudo apt update或浏览(虽然出于某种原因我可以成功 ping 通,但目前我不会关注这一点)。

细节

经过多次尝试和尝试,我终于找出了问题所在,并得出结论:我的防火墙 (Avast Premier) 是导致此问题的唯一罪魁祸首。禁用防火墙 10 分钟后,我就可以执行这两项不同的操作,从 Visual Studio Code 连接到 WSL 服务器,还可以从 Hyper-V 浏览和更新虚拟化 Ubuntu 中的软件包。

我目前所做的

我已经检查过 VSCode 是否在所有端口(入站和出站)允许所有连接:

在此处输入图片描述

允许规则似乎已经到位:

在此处输入图片描述

并且还将 VSCode 添加到防病毒例外列表中:

在此处输入图片描述

上述操作均不起作用,仅禁用了防火墙。

问题

我应该向防火墙添加哪些规则来允许:

  1. 来自 VSCode 的 WSL 服务器(Ubuntu 18.04.2)
  2. 通过 Hyper-V 在 Ubuntu 19.04 上建立互联网连接。

笔记:WSL 在 VSCode 之外完美运行。我甚至可以从中启动批处理终端(状态栏左侧的连接就是问题所在)。


更新

这是我从 VSCode 中的 WSL 终端获得的输出:

Failed to connect to the remote extension host server (Error: connect ETIMEDOUT 127.0.0.1:62388)

无法连接到远程扩展主机服务器(错误:连接 ETIMEDOUT 127.0.0.1:62388)

答案1

Avast 论坛帖子 支持 WSL pico 进程 有以下有用的文字:

Avast。与 Windows Defender 非常相似,目前需要整个 Linux 发行版才能运行 pico 进程。这对任何企业环境的安全来说都是不可接受的风险。Avast 需要做的是将 Pico 进程与 Windows 进程一样对待。微软将很快在“Skip-Ahead Insiders”版本中发布 Windows Defender 的更新,该版本按进程/端口级别管理规则。Avast 应该实施类似的设置。微软在 2016 年提供了一篇博客,帮助 Avast 等第三方供应商与 WSL 集成。博客如下:https://blogs.msdn.microsoft.com/wsl/2016/11/01/wsl-antivirus-and-firewall-compatibility/

微软文章 Pico 工艺概述 进一步解释这个概念:

这篇文章讨论了 Pico 进程,即 WSL 的基础。它解释了 Pico 进程在 Windows 中的工作方式,并介绍了它们的诞生历史、我们决定实现的抽象以及 WSL 之外出现的各种用例。

据我所知,Windows 中的 Ubuntu 版本位于以下文件夹中:

  • C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_1804.2019.521.0_x64__79rhkp1fndgsc
  • C:\Users\USERNAME\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
  • C:\Windows\System32\lxss

如果 Avast 论坛帖子正确,这些就是 Avast 中需要免除的文件夹,以允许执行 Ubuntu。

就 Avast 设置而言, 建议 以启用以下功能:

  • Internet 连接共享模式
  • 在私人模式下允许与好友的所有连接
  • 启用自动配置文件切换
  • 启用自动端口扫描检测

启用这些设置后需要重新启动。

这些都只是权宜之计,直到 Avast 发布更新以支持 WSL。如果上述解决方法对您不起作用,则需要在使用 WSL 时禁用 Avast 防火墙,或暂停 Avast 直到他们解决问题。在此之前,Windows Defender 足以满足大多数用途。

答案2

要求:

  • 在 WSL 中安装 GNU/Linux 发行版,并配备适合开发语言的工具链。例如,build-essential在基于 Debian 的发行版中,C/C++ 语言也适用。
  • 最新的 Visual Studio Code远程 - WSL已安装扩展。
  • 互联网连接,因为远程 WSL 扩展在前面提到的 WSL 发行版中下载了后端 NodeJS 服务器。

程序:

  • 获取 Visual Studio Code 可执行文件的完整路径并允许其进入防火墙。通常这将是:
%LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe
  • 允许/usr/lib/apt/methods/http防火墙中的可执行文件用于apt下载软件包。对于 Ubuntu 18.04,路径为:

  • 运行 VScode,安装远程 - WSL扩展。在命令提示符中从 WSL 启动 VSCode。它将要求连接到正在运行的发行版并静默安装后端。

%LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\usr\lib\apt\methods\http
  • 允许node防火墙中的可执行文件连接 Remote - WSL 扩展的前端和后端。在 WSL 中,转到用户主文件夹~/.vscode-server-insiders/bin并获取下一个文件夹名称(非常大的神秘数字,实际上它是提交哈希)。完整的 Windows 样式路径将如上所示:
%LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\test\.vscode-server-insiders\bin\0f73473c08055054f317c1c94502f7f39fdbb164\node

现在重新启动 VSCode,它可能会工作。不同的 GNU/Linux 发行版名称的完整文件夹路径会有所不同。不要在完整路径中混用斜线。请参阅此问答知道如何获取该路径。

进一步阅读:

答案3

实际上在 2021 年只需单击 avast 中 Brandmauer 页面设置中的“常规互联网访问模式”即可。截屏

相关内容