我在 VirtualBox 上安装了 Ubuntu 20.04.1 Server 作为 VM,此 VirtualBox 在我学校的远程服务器上运行并安装GNS3
在此 VM(Ubuntu Server)上。到目前为止,一切都很好。但是当我尝试使用本地计算机(MacOS Catalina)并TunnelBlick
连接到此远程服务器时,出现错误:TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
。
到目前为止,阅读了几个答案后,已经尝试过:
- 从本地 Mac
nc -uvz <remote server IP/also VM IP> 1194
成功! - 检查了 client.ovpn,正确的远程 IP 在那里。
- 可以
scp
通过公共 IP 在主机和 VM 之间进行操作 - 这意味着 VM 的 IP 是正确的并且可以访问。 - 卸载并安装
GNS3
多次并更新配置文件。
请在这件事上给予我帮助。
答案1
让我更详细地回答你的问题。我对 GNS3 一无所知,但我知道 openvpn 和 TunnelBlick,它是 openvpn 的 MacOS 客户端 - 而你的问题与网络有关。这个问题缺少重要的东西 - 我必须做出一些假设,但我希望能让你走上正确的道路来找到原因。
您提到远程服务器位于学校内部。我假设您的学校至少有一个防火墙,它拥有保存学校公共 IP 地址的接口,您使用该地址访问您的虚拟机。让我画出这张图来澄清一下:
FW remote server virtual machine
| | |
Pub. IP->|<--- priv. Subnet A ---> | <-- priv. Subnet B --> |
| | |
再次重申,我对您学校的网络基础设施一无所知,所有这些都只是假设。但这澄清了我的观点:任何来自您学校公共 IP 的连接都必须转换为远程服务器子网 A 内的 IP。这是防火墙内必须存在的规则。显然,您的 VM 的 SSH 端口有这样的规则,否则 scp 命令将不起作用。但仅仅因为 ssh 端口有这样的规则,并不意味着 UDP 端口 1194 也存在这样的规则。
如果您通过了防火墙并到达了远程服务器的主机接口,则需要再次进行网络地址转换 - 此 IP 数据包不是用于远程服务器的,而是用于 VM 的 - 需要有一个 NAT 规则来将传入流量转换为 VM 的 IP 地址。也许您现在知道从哪里开始寻找问题的原因了。