如何在Ubuntu虚拟机中设置Samba共享,并在Windows宿主机中挂载为网络驱动器

第1步:安装Samba

bash 复制代码
# 更新软件包列表
sudo apt update

# 安装Samba
sudo apt install samba samba-common-bin

# 检查安装是否成功
samba --version

第2步:创建共享目录

bash 复制代码
# 创建一个共享目录(你可以选择任何位置)
sudo mkdir -p /home/samba-share

# 查看创建的目录
ls -la /home/samba-share

第3步:设置目录权限

bash 复制代码
# 给目录设置宽松的权限(便于测试)
sudo chmod 777 /home/samba-share

# 或者更安全的设置(推荐)
sudo chown nobody:nogroup /home/samba-share
sudo chmod 755 /home/samba-share

第4步:备份原始配置文件

bash 复制代码
# 备份原始配置文件(重要!)
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

# 确认备份文件存在
ls -la /etc/samba/smb.conf*

第5步:编辑Samba配置文件

bash 复制代码
# 使用nano编辑器打开配置文件
sudo nano /etc/samba/smb.conf

在文件末尾添加以下内容:

选项A:简单共享(匿名访问,无需密码)

ini 复制代码
[MyShare]
   comment = My Shared Folder
   path = /home/samba-share
   browseable = yes
   read only = no
   guest ok = yes
   create mask = 0777
   directory mask = 0777

选项B:安全共享(需要用户名密码)

ini 复制代码
[MySecureShare]
   comment = My Secure Shared Folder
   path = /home/samba-share
   browseable = yes
   read only = no
   valid users = sambauser
   create mask = 0775
   directory mask = 0775

按 Ctrl + X,然后按 Y,最后按 Enter 保存文件。

第6步:创建Samba用户(如果选择了安全共享)

bash 复制代码
# 创建系统用户(如果不存在)
sudo useradd -m sambauser

# 设置系统用户密码
sudo passwd sambauser

# 设置Samba用户密码(可以与系统密码不同)
sudo smbpasswd -a sambauser

系统会提示你输入并确认Samba密码。

第7步:测试配置文件

bash 复制代码
# 测试配置文件语法是否正确
sudo testparm

如果看到类似下面的输出,说明配置正确:

复制代码
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[MyShare]"
Loaded services file OK.

第8步:重启Samba服务

bash 复制代码
# 重启Samba服务使配置生效
sudo systemctl restart smbd
sudo systemctl restart nmbd

# 检查服务状态
sudo systemctl status smbd

如果服务正常运行,你会看到 active (running) 的状态。

第9步:配置防火墙

bash 复制代码
# 允许Samba通过防火墙
sudo ufw allow samba

# 或者手动开放Samba端口
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
sudo ufw allow 137/udp
sudo ufw allow 138/udp

# 检查防火墙状态
sudo ufw status

第10步:获取虚拟机IP地址

bash 复制代码
# 查看虚拟机的IP地址
ip addr show

# 或者使用
hostname -I

记下IP地址,例如:192.168.1.100

第11步:在Windows宿主机中测试连接

方法1:通过文件资源管理器映射

  1. 打开"文件资源管理器"
  2. 右键点击"此电脑" → 选择"映射网络驱动器"
  3. 在"文件夹"栏输入:\\你的虚拟机IP\MyShare
    • 例如:\\192.168.1.100\MyShare
  4. 如果设置了密码认证:
    • 勾选"使用其他凭据连接"
    • 点击"完成"
    • 输入用户名:sambauser
    • 输入Samba密码
  5. 点击"完成"

方法2:通过运行对话框

  1. 按 Win + R 键
  2. 输入:\\你的虚拟机IP
    • 例如:\\192.168.1.100
  3. 点击"确定"
  4. 双击共享文件夹"MyShare"

第12步:测试文件传输

在映射的网络驱动器中:

  • 创建一个新文件夹
  • 复制一个文件到共享目录
  • 从共享目录复制文件到本地

然后在虚拟机中检查文件:

bash 复制代码
# 查看共享目录中的文件
ls -la /home/samba-share

第13步:故障排除

如果连接失败,尝试以下诊断步骤:

检查网络连通性:

bash 复制代码
# 在宿主机ping虚拟机
ping 192.168.1.100

检查Samba服务:

bash 复制代码
# 查看Samba服务状态
sudo systemctl status smbd

# 查看Samba日志
sudo tail -f /var/log/samba/log.smbd

测试本地Samba连接:

bash 复制代码
# 在虚拟机本地测试Samba共享
smbclient -L localhost

检查端口监听:

bash 复制代码
# 检查Samba是否在监听端口
sudo netstat -tlnp | grep smb

第14步:创建测试文件

bash 复制代码
# 在共享目录创建测试文件
sudo touch /home/samba-share/test-file.txt
sudo echo "This is a test file from Samba share" > /home/samba-share/test-file.txt

# 设置文件权限
sudo chmod 666 /home/samba-share/test-file.txt

现在你应该能在Windows中看到这个测试文件了!

相关推荐
万年咸鱼6 小时前
Qt Windows 使用管理员权限运行 Cmd
windows
梦帮科技6 小时前
领域认知知识库图谱注入:从双式记账图网络到高质量问答对自动化合成流水线
运维·网络·数据库·人工智能·矩阵·架构·自动化
向成科技7 小时前
XC3576H工控主板|深度适配Ubuntu 26.04 LTS,释放边缘AI与工业开发新潜能
linux·人工智能·ubuntu·机器人·硬件·主板·边缘ai
菜鸡养成中...8 小时前
卫星通信协议笔记1-协议栈
网络
hzxpaipai8 小时前
杭州企业官网怎么建设?从策划到上线的5步建站方法
运维·服务器·前端·网络
smartpi_ai8 小时前
通用脱机烧录器为什么烧不进 CI-03?下载协议的门槛、免唤醒 10 条的建议值属性
服务器·网络·ci/cd
子木HAPPY阳VIP9 小时前
Ubuntu 关闭防火墙操作步骤
linux·运维·ubuntu
王振超wzc9 小时前
嵌入式开发环境搭建--WM软件安装,Ubuntu操作系统安装
linux·运维·ubuntu
ITxiaobing20239 小时前
自研 IP 库与 AppsFlyer 判定不一致的排查实践
网络·网络协议·tcp/ip
2601_962364979 小时前
从录入到解锁,完整梳理 Windows Hello 识别链路
windows·安全·电脑