第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:通过文件资源管理器映射
- 打开"文件资源管理器"
- 右键点击"此电脑" → 选择"映射网络驱动器"
- 在"文件夹"栏输入:
\\你的虚拟机IP\MyShare- 例如:
\\192.168.1.100\MyShare
- 例如:
- 如果设置了密码认证:
- 勾选"使用其他凭据连接"
- 点击"完成"
- 输入用户名:
sambauser - 输入Samba密码
- 点击"完成"
方法2:通过运行对话框
- 按
Win + R键 - 输入:
\\你的虚拟机IP- 例如:
\\192.168.1.100
- 例如:
- 点击"确定"
- 双击共享文件夹"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中看到这个测试文件了!