最常用的共享方式按优先级排序:虚拟机直接共享(适合虚拟机环境)→Samba 网络共享(适合物理机 / 局域网)→Windows 共享访问(快速访问 Windows 文件)→SFTP 传输(安全文件传输)→命令行挂载(永久访问需求)。下面是详细操作指南。
一、虚拟机环境:直接共享(最简单)
如果 Ubuntu 安装在 VMware/VirtualBox 虚拟机中,优先使用此方法。
VMware 虚拟机共享
- 确保 Ubuntu 虚拟机已安装VMware Tools(菜单:虚拟机→安装 VMware Tools)
- 打开虚拟机设置→选项→共享文件夹,选择总是启用,点击添加选择 Windows 文件夹
- Ubuntu 中访问:打开文件管理器→左侧其他位置→输入
/mnt/hgfs即可看到共享文件夹
VirtualBox 虚拟机共享
- 安装增强功能(菜单:设备→安装增强功能)
- 设备→共享文件夹→添加共享文件夹,勾选自动挂载和固定分配
- Ubuntu 中访问:默认挂载在
/media/sf_共享文件夹名,需将用户加入 vboxsf 组获取权限bash运行sudo usermod -aG vboxsf $USER重启后生效
二、Samba 网络共享(推荐,物理机 / 局域网通用)
Samba 是 Linux 与 Windows 间标准共享协议,支持双向访问,适合长期使用。
步骤 1:Ubuntu 安装并配置 Samba(让 Windows 访问 Ubuntu 文件)
- 安装 Samba 服务bash运行
sudo apt update sudo apt install samba samba-common-bin # 安装核心组件 - 创建共享文件夹(如
~/shared)并设置权限bash运行mkdir -p ~/shared # 创建文件夹 sudo chmod -R 777 ~/shared # 开放读写权限(可根据需求调整) sudo chown $USER:$USER ~/shared # 设置归属 - 配置 Samba 共享bash运行
sudo nano /etc/samba/smb.conf # 编辑配置文件在文件末尾添加:ini[UbuntuShare] # 共享名称(Windows中显示) comment = Ubuntu与Windows共享文件夹 path = /home/你的用户名/shared # 替换为实际路径 browseable = yes # 允许浏览 read only = no # 可读写 guest ok = no # 禁止匿名访问 create mask = 0777 # 新建文件权限 directory mask = 0777 # 新文件夹权限{insert\_element\_0\_}按Ctrl+O保存,Ctrl+X退出。 - 设置 Samba 用户密码(需与 Ubuntu 用户名一致)bash运行
sudo smbpasswd -a $USER # 添加当前用户到Samba输入两次密码(可与系统密码不同) - 重启 Samba 服务并放行防火墙bash运行
sudo systemctl restart smbd nmbd # 重启服务 sudo ufw allow samba # 允许Samba通过防火墙 - Windows 访问:打开文件资源管理器→地址栏输入
\\Ubuntu的IP地址\UbuntuShare,输入 Samba 用户名密码即可访问- 查看 Ubuntu IP:终端输入
ip a(通常在wlp2s0或enp0s3接口下)
- 查看 Ubuntu IP:终端输入
步骤 2:Ubuntu 访问 Windows 共享文件
- Windows 设置共享文件夹:右键文件夹→属性→共享→添加用户(推荐 Everyone 或当前用户),设置读写权限
- Ubuntu 中访问:
- 打开文件管理器→左侧其他位置→连接到服务器
- 服务器地址输入:
smb://Windows的IP地址/共享文件夹名 - 输入 Windows 用户名和密码,即可访问并读写文件
三、快速临时传输:无需复杂配置
方法 1:U 盘 / 移动硬盘(最直接)
- 格式建议使用FAT32(两系统都支持),避免 NTFS(Ubuntu 默认只读)或 ext4(Windows 不识别)
- Ubuntu 中插入 U 盘后自动挂载,文件管理器左侧可见,复制文件即可
方法 2:SFTP 传输(安全可靠)
适合跨网络或需安全传输的场景,利用 SSH 协议。
- Ubuntu 安装 SSH 服务(已安装可跳过)bash运行
sudo apt install openssh-server - Windows 端安装FileZilla(免费 FTP 客户端),新建站点:
- 协议:SFTP - SSH File Transfer Protocol
- 主机:Ubuntu 的 IP 地址
- 端口:22
- 登录类型:正常,输入 Ubuntu 用户名和密码
- 连接后可直接拖拽文件,支持断点续传和批量操作
四、进阶:命令行挂载 Windows 共享(永久访问)
适合需长期访问 Windows 文件的场景,将 Windows 共享文件夹挂载为 Ubuntu 本地目录。
- 安装挂载工具bash运行
sudo apt install cifs-utils # CIFS协议工具包 - 创建挂载点(如
~/winshare)bash运行mkdir -p ~/winshare - 临时挂载(重启失效)bash运行
sudo mount -t cifs -o username=Windows用户名,password=Windows密码 //WindowsIP/共享名 ~/winshare例:sudo mount -t cifs -o username=user,password=123456 //192.168.1.100/MyShare ~/winshare - 永久挂载(重启保留)bash运行
sudo nano /etc/fstab # 编辑系统挂载配置添加以下内容(一行):plaintext//192.168.1.100/MyShare /home/你的用户名/winshare cifs username=user,password=123456,iocharset=utf8 0 0保存后执行sudo mount -a立即生效,无需重启
五、常见问题排查
| 问题 | 解决方法 |
|---|---|
| Windows 无法访问 Ubuntu Samba | 1. 检查 Ubuntu 防火墙是否放行 Samba(sudo ufw status)2. 确认 Samba 用户密码正确3. 关闭 Windows Defender 防火墙或添加例外 |
| Ubuntu 访问 Windows 共享提示权限不足 | 1. Windows 共享文件夹权限设置为读写2. 使用 Windows 管理员账户登录3. 检查网络是否在同一工作组(默认 WORKGROUP) |
| 中文文件名乱码 | 挂载时添加参数iocharset=utf8,Samba 配置中添加unix charset = UTF-8和dos charset = CP936 |
| 虚拟机共享文件夹看不到 | 1. 确认已安装增强功能2. 用户已加入对应组(vboxsf/hgfs)3. 重启虚拟机 |
六、最佳实践推荐
| 场景 | 推荐方式 | 优势 |
|---|---|---|
| 虚拟机日常使用 | 虚拟机直接共享 | 无需配置,直接访问,性能最佳 |
| 物理机局域网 | Samba 网络共享 | 双向访问,支持多设备,适合长期使用 |
| 临时少量文件 | U 盘 / 移动硬盘 | 无需网络,操作简单,适合离线场景 |
| 跨网络 / 安全传输 | SFTP 传输 | 加密传输,适合敏感文件,支持断点续传 |
| 频繁访问 Windows 文件 | 命令行挂载 | 像本地文件夹一样访问,无需重复输入地址 |