为什么我需要使用端口转发才能访问我的 VM 上的 SFTP?

为什么我需要使用端口转发才能访问我的 VM 上的 SFTP?

我在 Virtualbox VM 上使用 Debian,默认网络模式是 NAT,根据 Virtualbox 文档,这是“从虚拟机访问外部网络的最简单方法。通常,它不需要在主机网络和客户系统上进行任何配置。因此,它是 Oracle VM VirtualBox 中的默认网络模式。”,并且由于某种原因,如果不添加端口转发,就无法从我的主机直接通过 FTP 进入我的 VM。

如果这是与虚拟机之间最简单的联网方法,我不明白为什么我需要端口转发才能访问 SFTP。这是为什么?

答案1

引文说“最简单的方法访问外部网络“,即从虚拟机建立传出连接。这不一定适用于传入连接。

在“NAT”模式下,VirtualBox 本身实现路由器功能,而主机操作系统完全不知道虚拟网络的发生:它认为 VBoxVM 进程本身正在像常规应用程序一样建立一堆 TCP 连接。

同样的原因这就是为什么您无法默认建立传入连接:主机操作系统不知道将它们发送到哪里,因为没有与 VM 子网相对应的网络接口,没有路由,什么都没有。


(实际上,这与将第二个路由器连接到物理家庭 LAN 的情况完全相同。当您只关心出站连接时,将第二个路由器保持在 NAT 模式绝对是最简单的方法 - 但是,只要您需要从“外部”网络向“内部”主机建立入站连接,一切都会中断,您必须使用端口转发或切换到标准路由/桥接。)

相关内容