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