QEMU:启用 SFTP 文件交换(访客⇆主机)但禁止访客访问公共互联网?

QEMU:启用 SFTP 文件交换(访客⇆主机)但禁止访客访问公共互联网?

QEMU假设我在Debian 主机上的虚拟机中运行 Windows 客户机。因此,Debian 主机是一台可以访问互联网的普通台式计算机。

SFTP如何在访客和主机之间设置文件交换但阻止客人(= Windows)无法访问互联网?

  1. 为所属 Windows 计算机设置虚拟网络接口 (NIC) virt-manager(默认设置为NAT与设备建立网络virtio
  2. 在访客计算机 (Windows) 中安装网络驱动程序
  3. 在来宾计算机 (Windows) 中安装 WinSCP

但那又怎样呢?我在哪里可以阻止仅限该客人的公共互联网访问?这是否已经可以在virt-manager不弄乱主机防火墙的情况下实现?

其他几台来宾计算机不应受此影响。

答案1

我不使用virtmanager,但使用简单qemu的,非常简单:

qemu-system-x86_64 -net nic -net "user,restrict=on,guestfwd=:10.0.2.1:22-cmd:netcat 127.0.0.1 22,hostfwd=::2222-:22" -enable-kvm   ...  -m 4G -hda windows.qcow2 

这是使用“用户模式”(slirp) 网络并启用“限制”模式,并进行一些转发。

ssh要使用//从主机连接到来宾,您scp可以使用和。sftpssh -p 2222 localhostscp -P 2222 from_file localhost:to_file

要从访客连接到主机,您可以使用ssh 10.0.2.1(或在或10.0.2.1的任何对话框中设置为主机)puttywinscp

对于restrict=onflag,请看我的回答这里。这可能比scp或 更接近您真正需要的东西sftp

答案2

在 virt-manager 中创建一个新的虚拟网络,并将其连接设置为隔离虚拟网络

隔离虚拟网络

在这种配置中,该网络上的虚拟机只能访问同一网络和主机上的其他虚拟机(仅使用主机的 IP 地址进行隔离网络)。

答案3

一个简单的方法是从 Windows 计算机设置中删除默认网关。这将删除默认路由,并且只能访问“本地网络”。您可能需要对 IPv4 和 IPv6 执行相同的操作,并禁用任何自动地址获取方法。

相关内容