我在 Ubuntu 16.04 操作系统上安装了 virtualbox 5.1。我正在使用它来设置 Ubuntu 16.04 虚拟机。
我已经使用 Ubuntu 16.04 的 .iso 文件设置了虚拟机。我从“设备”下拉菜单安装了客户版本,并在共享剪贴板和 Drop'n'Drop 选项的设置中启用了“双向”选项。
使用这些设置,我无法将文件从主机复制/粘贴或拖放到客户机或反之亦然。我需要此功能来传输重要文件,我该如何解决这个问题?
答案1
这不是对你的问题的最佳回答,因为它忽略了问题并以另一种方式完成传输。尽管如此,我还是发布了这个答案,因为我曾经处于你的境地,我通常使用虚拟机和主机之间的虚拟网络来传输文件。为了不浪费时间尝试让 vbox 功能正常工作,我只需netcat
执行不安全文件传输。只有当您的虚拟机在主机的本地网络中可见时,其不安全才会成为问题。默认情况下,它使用 NAT,因此其不安全传输可能无关紧要。
假设:
- 默认网络设置(NAT,无虚拟网络自定义)
客户虚拟机可以看到位于 10.0.2.2 的主机(VirtualBox 的典型默认值)
获取主机虚拟网络IP: (添加于 2017-05-06)
您可以将主机的 IP 用于它所连接的任何非虚拟网络,但出于安全原因,我不建议这样做。使用虚拟网络的 IP。这样更安全。
在虚拟机客户操作系统中,打开终端并运行以下命令:
route -n | grep -P "^0.0.0.0" | tr -s ' ' | cut -f2 -d ' '
此命令返回的 IP 地址就是您将在下面的nc
命令中替换的 IP 地址。我的是 10.0.2.2
主机 -> 客户机文件传输:
- 在您的主机上运行
cat /your/file/to/transfer | nc -l 21435
。这里,21435
是要使用的端口。您可以替换任何未使用的端口。 - 在客户机上运行
nc 10.0.2.2 21435 > /your/file/to/save
。
访客 -> 主机文件传输:
- 在您的主机上,运行
nc -l 21435 > /your/file/to/save
。 - 在客户机上运行
cat /your/file/to/transfer | nc 10.0.2.2 21435
。
无论传输方向如何,请确保按列出的顺序运行上述命令(针对相关方向)。这很重要,因为第一个命令会启动第二个命令连接的监听服务。运行第一个命令后,终端似乎会变得无响应。程序正在该机器上运行并监听。一旦在另一台机器上运行第二个命令并完成传输,两台机器上的终端将再次“响应”(即nc
退出)。
要传输多个文件,先将它们全部压缩为一个存档文件可能会更容易。
我不建议通过网络进行此类敏感文件传输,因为其他方可能会窃听,除非您采用其他方式加密数据。