利用ftp来实现宿主机访问Ubuntu虚拟机中的目录

本文介绍如何在Ubuntu系统上搭建FTP服务器,实现宿主机与虚拟机之间的文件共享。通过安装vsftpd服务并配置相应参数,可轻松实现文件访问及现有目录映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

对于宿主机共享目录到虚拟机已有很方便的方法,只需要通过虚拟机设置,添加共享文件夹即可。如下图:

在这里插入图片描述

只要正确安装了 vm-open-tools 扩展插件,即可在Ubuntu中 /mnt/hgfs 挂载了该共享目录。

若没有安装 vm-opentools 则只需要直接执行 sudo apt-get install vm-open-tools vm-open-tools-desktop 即可

但反之,有两种方式,一种是在虚拟机关机下在VMware中映射出虚拟机的分区:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

这种方式需要虚拟机是关闭状态,比较不方便。

因此,引出了第二种方式,在 Ubuntu 上搭建 FTP 服务器,实现文件访问。

搭建FTP服务

为了在Ubuntu上搭建FTP服务器供宿主机访问,需要安装服务端程序:

sudo apt-get install vsftpd

然后新建一个目录用作FTP服务器的主目录,如:

mkdir ~/ftp

然后修改 vsftpd.conf 文件,配置主目录与其他必须要素

sudo gedit /etc/vsftpd.conf 

#在找到对应的行,做修改,没有的则直接加入,或按需调整:

#允许匿名登录
anonymous_enable=YES
#匿名用户不请求密码
no_anon_password=YES
#设置主目录,按实际情况写
anon_root=/home/username/ftp

#设置全局有写权限,此为全局开关
write_enable=YES

#匿名用户允许写文件
anon_upload_enable=YES
#匿名用户允许新建目录
anon_mkdir_write_enable=YES

随后重启 vsftpd 服务:

sudo /etc/init.d/vsftpd restart

这样来就配置好了,接下来是获取本机IP地址,供访问使用:

#找到本机地址
ifconfig

#若提示找不到,则是还未安装对应程序,可安装解决
sudo apt-get install net_tools

在Windows宿主机上访问FTP服务器

Windows自带简单的FTP管理能力,通过点击 “计算机” 中的添加网络位置即可配置:

在这里插入图片描述
然后输入 ftp 服务器的地址,由于上述已设置成允许匿名登录,所以用户密码等就不需要了:

在网络位置处输入上面找到的IP,然后下一步中选择匿名登录即可。

在这里插入图片描述

这样一来,就实现了宿主机访问虚拟机的需求。

将现有目录直接映射到FTP目录

要访问虚拟机上的任意目录,除了将目录拷贝到 ftp 主目录里以外(太占用资源),还可以将现有目录 mount 过去。如:

# 新建一个挂载用目录
mkdir ~/home/garfield/ftp/Mapping

#将桌面目录挂载到ftp主目录中...
sudo mount --bind /home/garfield/desktop /home/garfield/ftp/desktop

然后就是将目标目录挂载到ftp主目录里:

# 修改系统配置以持久化这一过程
sudo gedit /etc/fstab

# 加入如下内容
/home/garfield/desktop /home/ftp/desktop none bind 0 0

# 修改系统配置以持久化这一过程
sudo gedit /etc/fstab

# 加入如下内容
/home/garfield/desktop /home/ftp/desktop none bind 0 0

这样就完成啦,在windows中可以发现这些目录,并且可以对其操作。

### 文件传输方法概述 为了实现在Windows宿主机Ubuntu虚拟机之间高效且安全地传输文件,可以采用多种方案。每种方案都有其特点和适用场景。 #### 方法一:通过SSH/SFTP协议传输文件 SFTP(Secure File Transfer Protocol)是一种加密的安全文件传输协议,能够提供更高的安全性以及更好的性能[^3]。对于未安装`vsftpd`服务的情况,依然可以通过SFTP访问Ubuntu虚拟机并进行文件操作。这得益于OpenSSH服务器自带的支持功能,在大多数Linux发行版中默认已预装。 ##### 配置步骤: 1. **确认SSH服务状态** 确认Ubuntu上已经启用了SSH服务。如果没有启用,则需先执行命令 `sudo apt update && sudo apt install openssh-y` 来安装并启动该服务。 2. **获取虚拟机IP地址** 使用命令 `hostname -I | awk '{print $1}'` 可以快速获得当前网络接口下的IPv4地址[^2]。 3. **使用WinSCP客户端连接到Ubuntu** WinSCP是一款支持图形界面的跨平台文件管理器和支持SFTP/FTP等多种协议的数据传输工具。只需输入正确的用户名、密码及上述得到的IP地址即可建立连接。 ```bash # Ubuntu端检查SSH服务运行状况 service ssh status ``` --- #### 方法二:利用VMware Tools特性实现剪切板共享 如果仅限于简单的文本复制粘贴需求,那么直接借助 VMware 提供的功能——即安装 VMware Tools 工具包后所开启的双向剪切板同步选项就足够了。这种方式无需额外配置任何复杂的环境变量或依赖项,非常适合日常办公交流时的小规模数据交互[^1]。 --- #### 方法三:构建基于SAMBA的服务架构 当涉及到频繁的大批量文件交换任务时,考虑部署一套完整的CIFS(SMB)/NFS资源共享机制可能是更为理想的选择之一。具体来说就是让Ubuntu作为一台小型文件服务器向局域网内的其他设备开放特定路径下的读写权限;而Windows则充当客户端角色负责发起请求并处理返回的结果集。 ##### 主要流程如下: 1. **准备阶段** 更新系统软件源列表,并依次下载必要的组件如`smbclient`, `cifs-utils` 和 `samba`本身; 2. **初始化设置** 编辑 `/etc/samba/smb.conf` 文件定义新的共享资源条目,同时指定相应的访问控制策略; 3. **测试连通性** 利用内置命令行实用程序验证新创建的服务是否正常工作,比如尝试挂载远程目录至本地临时位置以便进一步观察实际效果。 ```bash # 安装所需套件 sudo apt-get install smbclient cifs-utils samba ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值