我正在尝试ssh
使用 Ubuntu WSL 和 VPN 进入实验室计算机,但收到此错误:
ssh: Could not resolve hostname labname.socsci.uniname.edu: Temporary failure in name resolution
(实际主机名与 labname.socsci.uniname.edu 不同,出于隐私原因我已将其更改)。
我觉得这很奇怪,因为 2 个月前,我能够ssh
使用以下方式连接到 VPN 后通过 Ubuntu 成功进入这台计算机:。我不知道为什么它停止工作了,尽管我遵循的是相同的“程序”。ssh [email protected]
我尝试过以下方法:
- 卸载然后重新安装 Ubuntu 20.04.4 LTS
- 卸载然后重新安装 VPN
- 卸载 Ubuntu 20.04.4 LTS 然后安装 Ubuntu 18.04.6 LTS
我也尝试过重启电脑,但无济于事。我能想到的唯一另一种可能性是,我输入了错误的主机名,但这种情况不太可能发生,因为我已经检查过我输入的主机名准确无误,大约 6 次。(顺便说一句,其他人已经成功ssh
进入实验室计算机。所以,这似乎是我的问题)。
如能得到任何帮助或指点我将非常感激。
我的问题与@matigo 6 个月前发布的问题非常相似:ssh 命令中的名称解析暂时失败,但这篇文章似乎没有答案(而且我无法发表评论,因为我目前没有足够的积分)。
答案1
我能想到的几个原因可以解释为什么它在过去可能有效,但现在不再有效:
首先,您可能之前一直在使用 WSL1,最近才升级到 WSL2。WSL2 使用与 Windows 网络分开(且隔离)的虚拟网络。当您在 Windows 中连接 VPN 时,WSL2 网络不是连接到它。在最坏的情况下,WSL2 网络可能会被 VPN 连接完全禁用。
其次,VPN 设置可能已发生更改以加强安全性。某些 VPN 软件允许您在连接时继续访问本地网络资源(如 WSL2)。其他 VPN(如上所述)出于安全考虑会禁用对本地网络的访问,并发送全部连接时,VPN 会阻止流量通过。网络管理员可能更改了该设置。如果是这样,那么您可能无法控制它。
建议:对于 的简单用例ssh
,请使用 WSL1。它通常在通过 VPN 连接时工作,因为它与 Windows 共享相同的网络基础架构。您可以设置新的 WSL1 实例,也可以将现有的 WSL2 转换为 WSL1。
出于这个原因,我更喜欢同时保留 WSL1 和 WSL2。在某些情况下,WSL1 更受欢迎,而在某些情况下,WSL2 效果更好。
无论你是创建新的 WSL1 实例还是进行转换,我建议从以下开始:
电源外壳:
wsl -l -v
# Confirm that the WSL distribution name is "Ubuntu". Modify the next line if needed
wsl --export testtest $env:USERPROFILE\Downloads\ubuntu_backup.tar
# You can also modify the output folder and filename, of course
那么,如果你想转变:
wsl --set-version Ubuntu 1
如果你想复制:
同样来自 PowerShell
# Modify directory and instance name as desired
mkdir -p C:\WSL\instances\UbuntuWSL1
wsl --import UbuntuWSL1 C:\WSL\instances\UbuntuWSL1 $env:USERPROFILE\Downloads\ubuntu_backup.tar --version 1