适用于 Windows 的 Linux 子系统无法访问 Internet

Joe*_*Joe 7 bash windows-subsystem-for-linux windows-10-v1607

出于某种原因,我在 Windows 上的 Ubuntu 上的 Bash 无法访问 Internet。

即当我做

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

我得到了一堆失败的获取。正如此链接下描述的问题一样。

我已经尝试了所有建议的解决方案,但它们似乎都不起作用。

我尝试过的事情:

  • 添加8.8.8.8/etc/resolv.conf,
  • 将我的默认网关添加到/etc/resolv.conf,
  • 禁用 IPv6,
  • 在管理模式下运行,
  • 卸载并重新安装 Bash,
  • 禁用我的防病毒软件。

这是我的 resolv.conf 的样子:

#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
Run Code Online (Sandbox Code Playgroud)

jll*_*gre 6

假设“禁用我的防病毒软件*意味着禁用我的防病毒软件/防火墙,请注意,根据您使用的防火墙,禁用防火墙并不总是足够的。当前(不令人满意的)解决方法是卸载防火墙。

这个和其他建议可以在以下来自 Linux 子系统 Windows 开发人员的帖子中找到:

来源:https : //github.com/Microsoft/BashOnWindows/issues/5

看到各种防火墙的经验非常有帮助。我们非常清楚这些问题并正在调查。不幸的是,这可能需要一些时间。我们确实发布了 WSL 作为测试版,因为我们知道会有一些问题,并且正在努力解决问题。

这是我所知道的关于防火墙/无网络的世界状况:

出站流量

卡巴斯基需要卸载才能在 WSL 中访问互联网

Avast需要卸载才能在 WSL 中访问互联网

Bitdefender:必须禁用防火墙才能在 WSL 中访问互联网。

AVG:看起来他们在 AVG 2016 中做了一些工作(在线程 #475 上了解到这一点)。不确定他们做了什么,但值得注意的是。

Windows 防火墙:必须取消选中“与规则不匹配的出站规则被拒绝

入站流量

还在研究这个。使用 WSL 作为服务器并不是我们周年更新的核心优先事项之一。这是我们希望在未来支持的东西。

Ping 必须以 Windows 管理员权限运行 在联系防火墙提供商之前,我们正在做更多的尽职调查。我还将在找到更多信息时更新常见问题解答(现在有一个非常简单的骨骼占位符)。