QEMU
假设我在Debian 主机上的虚拟机中运行 Windows 客户机。因此,Debian 主机是一台可以访问互联网的普通台式计算机。
SFTP
如何在访客和主机之间设置文件交换但阻止客人(= Windows)无法访问互联网?
- 为所属 Windows 计算机设置虚拟网络接口 (NIC)
virt-manager
(默认设置为NAT
与设备建立网络virtio
) - 在访客计算机 (Windows) 中安装网络驱动程序
- 在来宾计算机 (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
可以使用和。sftp
ssh -p 2222 localhost
scp -P 2222 from_file localhost:to_file
要从访客连接到主机,您可以使用ssh 10.0.2.1
(或在或10.0.2.1
的任何对话框中设置为主机)putty
winscp
对于restrict=on
flag,请看我的回答这里。这可能比scp
或 更接近您真正需要的东西sftp
。
答案2
答案3
一个简单的方法是从 Windows 计算机设置中删除默认网关。这将删除默认路由,并且只能访问“本地网络”。您可能需要对 IPv4 和 IPv6 执行相同的操作,并禁用任何自动地址获取方法。