QEMU Windows 客户机没有互联网但有共享文件夹

QEMU Windows 客户机没有互联网但有共享文件夹

我正在设置一台在 qemu/kvm 虚拟化堆栈中运行 Windows 7 客户机的 Debian 机器。由于 Windows 计算机运行的是过时的软件,我决定将其放入无法访问 Internet 的虚拟机中。但是,我需要将文件移入和移出虚拟机。

我听说可以设置仅主机网络并更改防火墙规则以禁止除主机之外的所有访问。然而,主机需要完全访问互联网。

我对Linux下的防火墙配置没有经验。我怎样才能实现上述目标?

答案1

这应该可以做到:

$ qemu-system-x86_64 -net nic -net user,restrict=on,smb=/path/to/shared/folder ...

来自联机帮助页:

-netdev user,id=id[,option][,option][,...]
-net user[,option][,option][,...]
    Use the user mode network stack which requires no administrator
    privilege to run. Valid options are:
    ...
    restrict=on|off
        If this option is enabled, the guest will be isolated, i.e. it
        will not be able to contact the host and no guest IP packets
        will be routed over the host to the outside. This option does
        not affect any explicitly set forwarding rules.
    ...              
    smb=dir[,smbserver=addr]
        When using the user mode network stack, activate a built-in SMB
        server so that Windows OSes can access to the host files in dir
        transparently. The IP address of the SMB server can be set to
        addr. By default the 4th IP in the guest network is used, i.e.
        x.x.x.4.
        In the guest Windows OS, the line:
                10.0.2.4 smbserver
        must be added in the file C:\WINDOWS\LMHOSTS (for windows
        9x/Me) or C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS (Windows
        NT/2000).
        Then dir can be accessed in \\smbserver\qemu.
        Note that a SAMBA server must be installed on the host OS.
        QEMU was tested successfully with smbd versions from Red Hat 9,
        Fedora Core 3 and OpenSUSE 11.x.

为此,samba必须安装在主机系统上;它不需要配置或运行,只smbd需要二进制文件,它将以临时配置运行,没有特权。

笔记

在 Windows 7 中,您可以通过计算机 -> 添加网络位置 -> 选择自定义网络位置 -> \\10.0.2.4\qemu 连接到共享文件夹。

如果Windows坚持打开“连接到Internet”向导,则将其关闭即可; “添加网络位置”向导仍在运行,您可以通过单击任务栏图标重新打开其窗口。

答案2

事实证明,我可以使用 virt-manager 创建一个隔离网络,然后启动 samba(smb 服务器)并将其配置为侦听 virbr1(隔离网络)。显然,隔离的网络禁止与外界通信,但允许到达主机,这正是我所寻找的。

编辑更多解释:

相关内容