在来宾 Linux VM 上运行的服务器将不接受来自 Windows 主机的连接

在来宾 Linux VM 上运行的服务器将不接受来自 Windows 主机的连接

我有一个在 CentOS 7 上运行的简单 echo 服务器程序。如果我在 VM 中同时运行客户端和服务器,我就可以连接到服务器。

我正在使用带有“桥接”网络配置的 VirtualBox。使用 Linux VM 的 IP(使用 ifconfig 找到),我可以从 Windows 中的 Cygwin 成功 ssh 到 Linux VM。

但是,当我尝试使用 Windows 7 主机上的 putty 连接到服务器时,连接将无法工作。我不明白为什么服务器看不到来自主机的连接请求。可能是什么原因造成的? Windows 防火墙已禁用。

答案1

一些消费级路由器对 VirtualBox 的桥接模式感到困惑,因为这样主机和访客共享相同的 MAC 地址。我建议您在仅主机模式下向虚拟机添加第二个接口,用于与主机进行通信。

答案2

最有可能的是,如果服务器可用并且您有该服务器的 IP 地址,您应该能够

ssh user@server-ip or ssh server-ip -l user 

但如果您没有在服务器上运行 sshd 来接受 ssh/安全隧道,则这将不起作用。您需要通过发出以下命令在服务器上启用 sshd:

 sudo /etc/init.d/sshd start

你还应该看看你的

 sudo tail -f /var/log/secure

当您尝试通过 putty 或从 Linux/UNIX 终端尝试 ssh 连接时,确定 ssh 发生了什么情况。

答案3

好吧,问题是 CentOS 7 默认阻塞端口。执行以下命令后,我成功通过端口 2004 连接到我的服务器:

防火墙cmd --zone=public --add-port=2004/tcp

当虚拟机重新启动时,此命令会打开端口:

防火墙cmd --zone=public --add-port=2004/tcp --permanent

我找到了资料这里

相关内容