Windows 上的 Ubuntu 上的 Bash - 无法使用 VPN 解析主机

Windows 上的 Ubuntu 上的 Bash - 无法使用 VPN 解析主机

我使用 Windows 进行开发,并使用我机器上设置的 VPN 访问公司的资源。我主要使用它来访问公司的私人 git 存储库。

我最近开始在 Windows 上的 Ubuntu 上使用 Bash 进行开发,但在访问存储库时遇到了问题。

例如,当我连接到 VPN 并在 Windows 上使用 Git Bash 克隆存储库时,它工作正常。但是当我在 Windows 上的 Ubuntu 上的 Bash 中使用 git 时,它弹出一个错误:

fatal: unable to access 'https://link.to.the.repository.net/Project/Repository/': Could not resolve host: link.to.the.repository.net 

有没有办法让 Windows 上的 Ubuntu 上的 Bash 访问这样的资源?

答案1

自动化步骤:https://gist.github.com/matthiassb/9c8162d2564777a70e3ae3cbee7d2e95

首次在 powershell 上运行:

Get-DnsClientServerAddress -AddressFamily IPv4 | Select-Object -ExpandPropert ServerAddresses

然后在 Windows 上使用ubuntubash命令运行 bash(取决于您的安装)

编辑/etc/resolv.conf并将所有内容替换nameserver {ip}为顶部生成的部分。

您现在应该可以恢复互联网和内联网了。删除第一行以使其永久生效,但请注意,如果您更改网络,它将不再更新。(也许先备份?)

答案2

对我来说,问题在于我的 VPN 有内部名称服务器。这些名称服务器存在于 Windows 计算机上,但未进入 Linux 子系统。修复步骤:

  1. 在 Windows 上运行 ipconfig /all。您的 VPN 连接应该有一个包含一个或多个 DNS 服务器的块。
  2. 打开 bash 并打开 /etc/resolv.conf
  3. 如果您的情况与我的情况类似,您将看到主互联网适配器的名称服务器,但看不到上述 VPN 适配器的名称服务器。只需在现有名称的基础上添加 VPN 的 DNS 名称(如果有必要,我将自己的名称添加到现有条目上方),保存文件,然后尝试再次访问存储库。

答案3

似乎没有名称服务器来解析主机名。在 Ubuntu bash 中,编辑文件 /etc/resolv.conf,使其包含:

nameserver X.Y.Z.W

我假设您使用的是 IPv4。上面的地址只是一个例子。您必须找出您的 ISP 正在使用的实际 DNS 地址或选择公共 DNS 服务器。如果您愿意,可以使用多个名称服务器。

相关内容