Linux虚拟机与主机共享文件的实现方法与实践

吉云

在当今的软件开发、系统测试以及技术学习等场景中,Linux虚拟机的使用极为广泛,虚拟机提供了一个隔离的环境,方便我们进行各种实验和操作,在实际使用过程中,常常需要在Linux虚拟机与主机之间共享文件,以便于数据的传输和交互,本文将详细介绍实现Linux虚拟机与主机共享文件的几种常见方法,并提供具体的实践步骤。

通过共享文件夹实现共享(以VMware Workstation为例)

VMware Workstation是一款常用的虚拟机软件,它提供了便捷的共享文件夹功能。

Linux虚拟机与主机共享文件的实现方法与实践

(一)设置步骤

  1. 打开虚拟机设置:在VMware Workstation中,选中对应的Linux虚拟机,点击“编辑虚拟机设置”。
  2. 添加共享文件夹:在弹出的设置窗口中,切换到“选项”选项卡,然后点击“共享文件夹”,在右侧点击“总是启用”,接着点击“添加”按钮,弹出共享文件夹向导。
  3. 指定共享文件夹路径:在向导中,点击“浏览”选择主机上要共享的文件夹路径,D:\shared_files”,可以为共享文件夹命名一个便于识别的名称,host_shared”,然后点击“完成”。
  4. 在虚拟机中访问:进入Linux虚拟机系统,一般情况下,共享文件夹会挂载在“/mnt/hgfs/”目录下(如果没有自动挂载,可以尝试安装open - vm - tools,安装方法因Linux发行版而异,以Ubuntu为例,可使用命令“sudo apt - get install open - vm - tools - desktop”),进入该目录后,就可以看到主机共享的文件夹及其内容,从而实现文件的读取和写入操作。

(二)优点与局限性

  1. 优点:操作相对简单直观,对于一般的文件共享需求能够很好地满足,不需要额外复杂的网络配置,在同一台主机上使用方便。
  2. 局限性:依赖于虚拟机软件本身,如果更换虚拟机软件或者在不同的虚拟机环境下,可能需要重新设置,并且在一些对安全性要求极高的场景下,可能存在一定的安全风险,因为虚拟机可以直接访问主机的共享文件夹。

利用SSH文件传输协议(SFTP)

SSH(Secure Shell)是一种安全的网络协议,SFTP(SSH File Transfer Protocol)是基于SSH的文件传输协议,通过它可以在主机和Linux虚拟机之间安全地传输文件。

(一)准备工作

  1. 确保虚拟机安装SSH服务:不同的Linux发行版安装SSH服务的命令不同,在CentOS中可以使用“yum install openssh - server”命令安装;在Ubuntu中则使用“sudo apt - get install openssh - server”,安装完成后,启动SSH服务,在CentOS中是“systemctl start sshd”,在Ubuntu中是“sudo service ssh start”。
  2. 获取虚拟机IP地址:在Linux虚拟机中,使用命令“ifconfig”(或者“ip addr”)查看虚拟机的IP地址,192.168.1.100”。

(二)在主机上传输文件

  1. Windows主机:可以使用FileZilla等FTP客户端软件,打开FileZilla,在站点管理器中新建一个站点,协议选择“SFTP - SSH File Transfer Protocol”,主机填写虚拟机的IP地址,登录类型选择“正常”,输入虚拟机的用户名和密码,然后点击“连接”,连接成功后,左侧是主机目录,右侧是虚拟机目录,通过拖拽即可实现文件的上传和下载。
  2. Linux主机:可以使用命令行工具“sftp”,打开终端,输入“sftp username@192.168.1.100”(username是虚拟机的用户名),输入密码后进入sftp交互模式,使用“put”命令上传文件,put local_file.txt /home/username/remote_file.txt”;使用“get”命令下载文件,如“get /home/username/remote_file.txt local_file.txt”。

(三)优点与局限性

  1. 优点:具有较高的安全性,通过SSH协议进行加密传输,适合在网络环境下进行文件共享,无论是在同一局域网还是远程连接都能很好地工作,并且不依赖特定的虚拟机软件,通用性较强。
  2. 局限性:对于不熟悉命令行操作或者FTP客户端配置的用户来说,有一定的学习成本,并且在网络不稳定的情况下,文件传输可能会出现中断等问题。

借助网络共享(SMB协议)

SMB(Server Message Block)协议常用于在不同操作系统之间共享文件和打印机等资源。

(一)在Linux虚拟机中设置SMB共享

  1. 安装SMB服务:以Ubuntu为例,使用命令“sudo apt - get install samba samba - common”安装SMB服务。
  2. 配置SMB共享:编辑SMB配置文件“/etc/samba/smb.conf”,在文件末尾添加如下内容:
    [shared_folder]
     comment = Shared Folder
     path = /home/username/shared (这里填写虚拟机中要共享的文件夹路径)
     browseable = yes
     read only = no
     guest ok = no
     writable = yes
  3. 创建Samba用户:使用命令“sudo smbpasswd - a username”(username是要设置密码的用户名),为该用户设置Samba密码。
  4. 重启SMB服务:使用命令“sudo service smbd restart”。

(二)在主机上访问共享

  1. Windows主机:打开“文件资源管理器”,在地址栏输入“\虚拟机IP地址”,\192.168.1.100”,会弹出用户名和密码输入框,输入在虚拟机中设置的Samba用户名和密码,即可访问共享文件夹。
  2. Linux主机:使用命令“sudo mount -t cifs //192.168.1.100/shared_folder /mnt -o username = samba_user,password = samba_password”(将192.168.1.100替换为虚拟机IP,samba_user和samba_password替换为设置的用户名和密码)将共享文件夹挂载到主机的“/mnt”目录下,从而进行文件操作。

(三)优点与局限性

  1. 优点:跨平台性好,无论是Windows主机还是Linux主机都能方便地访问,适用于局域网内多台主机与虚拟机之间的文件共享场景。
  2. 局限性:配置相对复杂,涉及到服务安装、配置文件修改以及用户设置等多个步骤,并且在安全性方面,如果配置不当,可能会导致共享文件夹被非法访问。

通过以上几种方法,我们可以根据不同的需求和场景,灵活地实现Linux虚拟机与主机之间的文件共享,在实际应用中,可以根据具体情况选择最适合的方式,以提高工作效率,方便数据的交互和使用。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]