想象一下以下设置:
- 两台笔记本电脑:我们称它们为[笔记本电脑A] 和 [笔记本电脑B]。
- 每台笔记本电脑都安装了相同的操作系统(Debian 9 Stretch)
- 每台笔记本电脑都
openssh-server
安装了 - 每台笔记本电脑
firewalld
均已firewall-config
安装 - 每台笔记本电脑都
qemu-kvm
安装了 - 每台笔记本电脑都通过以下方式运行虚拟机
qemu-kvm
- VM 与其主机(= 笔记本电脑主机系统)之间的文件交换由 SFTP-exchange 提供
话虽如此,通过从来宾访问主机/home
目录,虚拟机及其所属主机之间的文件交换工作完全正常。sftp://[email protected]
例子:可以在[之间共享文件笔记本电脑A] 和 [虚拟机A] 或 [ 之间笔记本电脑B] 和 [虚拟机B] 通过上面的命令使用 SFTP 交换。
但是——现在更有趣的问题是:
如何在...之间共享文件
- [笔记本电脑A] 和 [笔记本电脑B]?
- [笔记本电脑A] 和 [虚拟机B]?
- [笔记本电脑B] 和 [虚拟机A]?
答案1
这个问题实际上与 SSH 无关。为了做到这一点,虚拟机必须能够到达笔记本电脑外部的网络(即,它们的接口必须被桥接,或者它们的流量必须被路由/NAT),并且它们必须能够从那里到达,连接应该从笔记本电脑发起。笔记本电脑。
如果桥接接口或路由流量并为虚拟机提供可见的 IP 地址,则必须允许在笔记本电脑防火墙中转发流量。如果是 NAT,您必须定义一个端口并在 nat/PREROUTING 中为其创建 DNAT 规则。但我不确定这是否可行,因为我不使用此配置。