[samba配置]宿主机访问虚拟机目录

[samba配置]宿主机访问虚拟机目录

1、安装和启动Samba服务

sudo apt update
sudo apt install samba

2、查看samba服务是否正在运行

sudo systemctl status smbd
sudo systemctl status nmbd

3、配置samba服务设置为开机启动。

sudo systemctl enable smbd nmbd

4、创建一个共享目录

mkdir /home/share

5、设置目录所属用户和用户组

sudo chown root:root /home/share

6、设置目录访问权限

sudo chmod 0775 /home/share

7、编辑配置文件/etc/samba/smb.conf

sudo vim /etc/samba/smb.conf

配置文件说明:

shareName是共享的名称,宿主机访问虚拟机时用到,可以根据需要更改。我用的是share

path是共享的文件夹的绝对路径

valid users:允许访问该共享资源的用户,多个用户用,隔开。

[ShareName]:共享的名称,这个名称在访问共享时显示,可根据需要更改。
   comment:描述性注释,访问所配置的资源时显示。
   path:要共享的文件夹的绝对路径。
   available:共享资源是否可用。
   browseable:设置为yes使共享在网络浏览器中可见。
   valid users:允许访问该共享资源的用户,多个用户用,隔开,如果配置的是用户组前面加@。
   read list:允许读该共享资源的用户。
   write list:允许写该共享资源的用户。
   guest ok:设置为yes允许没有有效用户账户的用户访问共享。
   read only:设置为no允许用户写入文件。
   writable:是否可写入。
   directory mask:设置创建目录的访问权限。
   create mask:创建文件的访问权限。

将以下配置添加到配置文件结尾。

[share]
  comment = File share
  path = /home/share
  available = yes
  browseable = yes
  valid users = root
  read only = no
  writable = yes

8、检查配置文件语法是否正确

sudo testparm /etc/samba/smb.conf

9、重启Samba服务以应用配置更改

sudo systemctl restart smbd nmbd

10、设置防火墙允许samba连接

sudo ufw allow samba

11、添加允许登录的samba用户

sudo pdbedit -a [username]
或sudo smbpasswd -a [username]
此处的[username]必须是系统中用户的用户名,否则添加失败。

查看当前已在samba服务中添加的用户

sudo pdbedit -L

12、宿主机配置

此电脑->右键->添加一个网络位置->选择自定义网络位置,输入虚拟机ip,点击浏览选择共享文件夹share,点击下一步,输入用户名密码(上一步添加的samba用户)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<think>好的,我现在要解决的问题是如何从虚拟机终端访问宿主机上的文件。用户可能使用的是不同的虚拟化软件,比如VMware、QEMU或者VirtualBox,所以需要先确定不同软件下的方法是否有区别。根据提供的引用资料,有几个相关的信息点: 首先,引用[2]提到QEMU虚拟机可以通过网络共享或者U盘等存储设备进行文件交换,而引用[3]和[5]则讨论了VMware和Linux虚拟机通过共享文件夹的方式。引用[4]还提到了端口映射的方法,可能适用于需要网络访问的情况。 接下来,我需要整理这些方法,并分步骤说明。可能需要分为不同虚拟化软件的情况,比如VMware、QEMU、VirtualBox各自的解决方案。此外,还要考虑宿主机是Windows还是Linux,因为不同的操作系统可能操作步骤不同。例如,引用[5]中提到的是宿主机为Windows访问Linux虚拟机,而问题则是反过来,从Linux虚拟机访问宿主机文件。 对于VMware用户,共享文件夹是一个常见的方法,如引用[3]所述。需要确保VMware Tools已安装,然后在虚拟机设置中配置共享文件夹,之后在虚拟机内挂载该文件夹。但用户的问题是从虚拟机终端访问宿主机,所以可能需要指导用户如何在Linux虚拟机访问共享的目录,比如通过/mnt/hgfs路径。 对于QEMU用户,引用[2]提到网络共享的方式,比如使用Samba或NFS。这需要宿主机设置共享目录,并配置虚拟机的网络以便访问。可能需要安装客户端工具,比如smbclient或者在虚拟机中挂载网络驱动器。 另外,通用方法可能包括使用SCP或SFTP进行文件传输,或者通过端口映射(如引用[4]提到的)建立网络连接。例如,用户可以在宿主机运行一个SSH服务器,然后从虚拟机使用scp命令拷贝文件。但需要确保宿主机防火墙允许相关端口的连接。 还需要注意权限问题,确保共享的目录有适当的读写权限。同时,网络配置是否正确,比如虚拟机是否使用NAT模式,宿主机虚拟机是否在同一网络中等。 可能还需要验证步骤,比如测试网络连通性,检查共享文件夹是否成功挂载,或者确认服务是否正常运行。例如,在宿主机开启SSH服务后,虚拟机能否ping通宿主机的IP地址,是否能通过ssh连接。 最后,总结各种方法的优缺点,比如共享文件夹方便但需要特定虚拟化软件支持,网络传输更通用但可能需要更多配置步骤。根据用户的具体环境和需求,推荐最合适的方法。</think>以下是虚拟机终端访问宿主机文件的多种方法,根据不同的虚拟化工具选择适合的方案: --- ### **一、VMware 虚拟机** #### 方法1:共享文件夹(推荐) 1. **宿主机设置** - 安装 VMware Tools(若未自动安装)[^3] - 在 VMware 虚拟机设置中,添加宿主机要共享的文件夹路径,例如 `D:\Shared` 2. **虚拟机操作** - 挂载共享文件夹至虚拟机: ```bash sudo vmhgfs-fuse .host:/shared_folder /mnt/hgfs -o allow_other ``` - 访问文件: ```bash cd /mnt/hgfs # 文件位于此处 ``` --- #### 方法2:SCP/SFTP 传输 1. **宿主机开启 SSH 服务**(如 Windows 需安装 OpenSSH) 2. **虚拟机终端执行**: ```bash scp username@宿主机IP:/宿主机文件路径 /虚拟机目标路径 ``` --- ### **二、QEMU/KVM 虚拟机** #### 方法1:virtio-9p 文件系统共享 1. **宿主机配置** - 启动虚拟机时添加参数: ```bash -fsdev local,id=shared_id,path=/宿主机共享路径,security_model=none \ -device virtio-9p-pci,fsdev=shared_id,mount_tag=shared_tag ``` 2. **虚拟机挂载** ```bash sudo mount -t 9p -o trans=virtio shared_tag /mnt/shared ``` --- #### 方法2:Samba/NFS 网络共享 1. **宿主机设置共享目录**(以 Samba 为例): - 安装 Samba:`sudo apt install samba` - 配置 `/etc/samba/smb.conf`: ```ini [shared] path = /宿主机共享路径 writable = yes ``` - 重启服务:`sudo systemctl restart smbd` 2. **虚拟机访问**: ```bash sudo apt install cifs-utils sudo mount -t cifs //宿主机IP/shared /mnt/samba -o username=用户名 ``` --- ### **三、通用方法** #### 方法1:使用 U 盘/外部存储 1. 插入 U 盘到宿主机 2. 在虚拟机软件中挂载 U 盘设备到虚拟机 3. 虚拟机终端通过 `/media/` 或 `/mnt/` 访问 #### 方法2:HTTP/FTP 临时传输 1. 宿主机运行 HTTP 服务器: ```bash python3 -m http.server 8000 # 宿主机终端执行 ``` 2. 虚拟机终端下载文件: ```bash wget http://宿主机IP:8000/文件名 ``` --- ### **注意事项** 1. **网络配置** - 确保虚拟机宿主机网络互通(NAT 或桥接模式)[^4] - 若使用 NAT 模式,需配置端口映射(如 VMware 的虚拟网络编辑器) 2. **权限问题** - 共享文件夹需设置可读写权限 - Samba配置用户认证(建议使用 `smbpasswd`) --- ### **引用验证示例** - **VMware 共享文件夹验证**: ```bash ls /mnt/hgfs # 查看共享文件列表 ``` - **Samba 连接测试**: ```bash smbclient //宿主机IP/shared -U 用户名 # 输入密码后进入交互界面[^2] ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值