操作笔记 | 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

相关推荐
守护安静星空13 小时前
esp32开发笔记-工程搭建
笔记·单片机·嵌入式硬件·物联网·visual studio code
ljt272496066113 小时前
Compose笔记(七十七)--视频录制
笔记·android jetpack
周周不一样15 小时前
Andorid基础笔记2-jar&反射
笔记·pycharm·jar
智者知已应修善业16 小时前
【51单片机单按键切换广告屏】2023-5-17
c++·经验分享·笔记·算法·51单片机
凉、介17 小时前
别再把 PCIe 的 inbound/outbound、iATU 和 eDMA 混为一谈
linux·笔记·学习·嵌入式·pcie
雷工笔记19 小时前
MES / WMS / AGV 交互时序图及生产管理模块界面设计清单
人工智能·笔记
大邳草民19 小时前
Python 中 global 与 nonlocal 的语义与机制
开发语言·笔记·python
landuochong20020 小时前
claude-obsidian 再升级
人工智能·笔记·claudecode
CheerWWW20 小时前
C++学习笔记——线程、计时器、多维数组、排序
c++·笔记·学习
ljt272496066120 小时前
Compose笔记(七十六)--拍照预览
笔记·android jetpack