操作笔记 | Ubuntu Server VMware虚拟机的文件传输

背景:搭建靶场测试环境的时候需要把docker文件拖到Ubuntu Server里,没有图形界面不能通过直接拖拽的方式实现复制。需要通过命令行工具进行文件的传输和复制。

1. 使用 VMware tool

方法:通过VMware tool创建共享文件夹,实现本地与虚拟机间的通信。

步骤

  1. 在虚拟机关闭状态下,在设置中配置共享文件夹;
  2. 在ubuntu server中安装vmware-tools工具,然后重启;
  3. 启动ubuntu server,挂载共享文件夹;

步骤一 配置共享文件夹

步骤二:在ubuntu中安装open-vm-tools

复制代码
sudo apt update
sudo apt installs open-vm-tools -y

步骤三:挂载共享文件夹并复制文件

  1. 列出vmware共享文件夹的名称

    复制代码
    vmware-hgfsclient
  2. 创建挂载点(例如在/mnt下)

    复制代码
    sudo mkdir -p /mnt/docker_share
  3. 使用 vmhgfs-fuse挂载共享文件夹

    复制代码
    sudo vmhgfs-fuse .host:/docker_share /mnt/docker_share -o allow_other

    .host/docker_share中的docker_share需与在VMware中设置的共享文件夹名称一致;allow_other选项允许普通用户访问该挂载点,设置为只有root能访问时可以省略。

  4. 验证挂载

    复制代码
    ls /mnt/docker_share
  5. 复制文件到Ubuntu server中(将共享文件夹中的所有内容复制到home目录下):

    复制代码
    cp -r /mnt/docker_share/* ~/
  6. 复制完成后可以取消挂载:

    复制代码
    sudo unmount /mnt/docker_share

步骤三 挂载文件夹后将文件夹复制到虚拟机中

附,open-vm-tools的重启方法:

复制代码
sudo systemctl restart open-vm-tools

2. 其他工具:scp, rsync

其他传输文件的工具:

  • scp(基于ssh,适合单次传输)
  • rsync(支持断点续传,并能增量同步,适合较大或需要多次传输的文件夹)

https://blog.sciencenet.cn/blog-3054301-1492239.html (ssh传输方法参考)

拓展思考

💡 图形界面的拖拽复制原理是什么?走的是什么协议?是如何实现的?

  • VMware 自定义的一套虚拟机与宿主机之间的私有通信协议;
组件 作用 无图形界面时
宿主机 VMware 窗口 捕获拖拽事件,通过虚拟通道发起通信 正常捕获,但无人应答
VMCI / Backdoor 通道 宿主机与虚拟机间的通信管道 存在,但虚拟机内无处理程序
VMware Tools(vmtoolsd) 接收拖拽通知,进行文件传输 存在,但缺少图形插件,拒绝响应
图形会话(X11/Wayland) 提供拖拽目标窗口,传递事件 缺失,导致拖拽事件无法被虚拟机内部接收
图形应用程序(如文件管理器) 最终接收文件并写入磁盘 缺失,没有可接收文件的程序

拓展思考回答 from deepseek

相关推荐
葡萄成熟时 !3 小时前
JAVA 常用API学习笔记
java·笔记·学习
DevOpenClub4 小时前
个人公开市场研究笔记功能需求文档
笔记
不会代码的小猴8 小时前
7. JSON
开发语言·c++·笔记·qt·算法·json
GGMM78910 小时前
富士 EP‑3955D 变频器主板维修调试笔记
笔记·变频器·变频器维修
今儿敲了吗10 小时前
CN——网络层(上)
网络·笔记
PC2005-cloud10 小时前
Go学习笔记:基本概念与项目结构——GOPATH、Go Modules 与常用命令
笔记·学习·golang
_Narcissus_11 小时前
排序算法总结表格
c语言·数据结构·c++·笔记·算法·排序算法·总结
Shell运维手记13 小时前
Linux (挂载|rpm|yum|源码编译)
linux·运维·笔记·网络协议·bash
2kπ14 小时前
QT开发笔记
开发语言·笔记·qt
江屿风14 小时前
【STM32基础篇】【嵌入式生态问题及历史追溯】流食般投喂
大数据·开发语言·人工智能·笔记·stm32·嵌入式硬件