由于某种原因,我的 Windows 上的 Ubuntu 上的 Bash 无法访问互联网。
即当我这样做
sudo apt-get update
我收到一堆失败的获取。正如问题描述的那样在此链接下。
我尝试了所有建议的解决方案,但似乎都没有用。
我尝试过的事情:
- 添加
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
答案1
假设“禁用我的防病毒软件*”的意思是禁用我的防病毒软件/防火墙,请注意,禁用防火墙并不总是足够的,具体取决于您使用的防火墙。当前(不令人满意的)解决方法是卸载防火墙。
您可以在以下来自面向 Windows 开发人员的 Linux 子系统的帖子中找到此建议和其他建议:
来源:https://github.com/Microsoft/BashOnWindows/issues/5
了解各种防火墙的使用经验非常有帮助。我们非常清楚这些问题,并正在研究。不幸的是,这可能需要一些时间。我们确实发布了 WSL 测试版,知道会存在一些问题,并正在努力解决问题。
据我所知,就防火墙/无网络而言,世界的情况如下:
出站流量
卡巴斯基:需要卸载用于 WSL 中的互联网访问
Avast:需要卸载用于 WSL 中的互联网访问
Bitdefender:必须禁用防火墙才能在 WSL 中访问互联网。
平均:看起来他们在 AVG 2016 中做了一些工作(在主题 #475 上了解到这一点)。不确定他们做了什么,但值得注意。
Windows 防火墙:必须取消选中“与规则不匹配的出站规则将被拒绝“
入站流量
仍在研究这一点。使用 WSL 作为服务器并不是我们周年更新的核心重点之一。我们希望在未来支持它。
平
Ping 必须以 Windows 管理员权限运行 在联系防火墙提供商之前,我们会进行更多的尽职调查。我还会在找到更多信息后更新常见问题解答(目前那里有一个非常简单的占位符)。
答案2
在 Windows 防火墙中,为程序添加权限/例外:
执行文件:WindowsSystem32wsl.exe
而且要快乐。
答案3
我曾经遇到过类似的问题。
我将 Windows 版本更新到 2004,并在防火墙设置中允许 Windows 虚拟机。
对我来说现在一切都很好。