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

相关推荐
ACP广源盛139246256739 小时前
Type-C 扩展坞方案选型笔记:DP1.4 转 HDMI2.0 桥接方案评估@ACP
笔记·硬件架构·hdmi·国产芯片·扩展坞
ss27311 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 22 PostgreSQL实例与集群
数据库·笔记·postgresql
ss27311 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 21 PostgreSQL进程与内存架构介绍
数据库·笔记·postgresql
摇滚侠14 小时前
《Java并发编程之美》第 4 章 Java 并发包中原子操作类原理剖析 阅读笔记 7
java·笔记·python
Rabitebla15 小时前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
深圳老胡15 小时前
STM32CubeMX 2 与 STM32CubeMX 的主要区别
笔记·stm32·单片机·代码规范
叼烟扛炮16 小时前
Linux 学习笔记(十三):高效排错利器——GDB 调试器入门
linux·笔记·学习
Source.Liu18 小时前
【A11】服务器数据库结构笔记
服务器·数据库·笔记
1314lay_100718 小时前
ABAP 读取服务器的文件 OPEN DATASET,READ DATASET f_filepath INTO l_file.
经验分享·笔记
MichaelJohn18 小时前
我用 Obsidian + Claude Code + GitHub 搭了个真正「会生长」的第二大脑
笔记