一、安装 Samba 服务
bash
运行
# 更新软件源
sudo apt update
# 安装samba主程序+客户端工具
sudo apt install samba samba-common-bin -y
二、目录权限预处理(存放 Windows 镜像目录)
bash
运行
# 归属当前用户
sudo chown -R shitou:shitou /home/mirror/iso
# 开放全部读写执行权限
sudo chmod -R 777 /home/mirror/iso
三、修改 Samba 核心配置文件
bash
运行
sudo vi /etc/samba/smb.conf
拉到文件最末尾,追加以下完整共享配置:
ini
[iso]
# 共享对应服务器目录
path = /home/mirror/iso
# 网上邻居可见共享名
browseable = yes
# 允许匿名来宾访问
guest ok = yes
# 关闭只读,开启读写
read only = no
writable = yes
# 所有匿名操作强制使用shitou用户身份
force user = shitou
force group = shitou
# 新建文件夹最高权限
directory mask = 0777
# 新建文件最高读写权限
create mask = 0666
四、校验配置 + 启动 / 开机自启服务
1. 校验配置语法(无报错再往下执行)
bash
运行
testparm
输出 Loaded services file OK 代表配置无错误。
2. 设置开机自启并重启服务生效
Ubuntu 正确服务名是 smbd、nmbd(不要写 smb/nmb,会报错别名)
bash
运行
# 设置开机自动启动
sudo systemctl enable smbd nmbd
# 重启服务加载新配置
sudo systemctl restart smbd nmbd
# 查看运行状态,确认 active (running)
systemctl status smbd
五、防火墙放行内网 SMB 端口(仅 192.168 内网网段)
bash
运行
# UDP 137、138 局域网发现
sudo ufw allow proto udp from 192.168.0.0/16 to any port 137,138
# TCP 139、445 文件传输核心端口
sudo ufw allow proto tcp from 192.168.0.0/16 to any port 139,445
# 重载防火墙规则
sudo ufw reload
Windows 访问报错两种解决方案(弹窗提示:阻止来宾访问)
方案 1:账号密码登录(推荐,企业电脑 / 域环境通用,无需改 Windows 策略)
服务器操作:给 shitou 创建 Samba 独立登录密码
bash
运行
sudo smbpasswd -a shitou
输入两次自定义密码(和服务器系统密码可不一样)
Windows 操作
此电脑地址栏输入:
\\192.168.31.19\iso弹窗用户名:
shitou,密码输入刚才设置的密码确定后直接进入文件夹,可上传、删除、修改 ISO 文件
方案 2:Windows 开启匿名免密访问(仅单机内网,域电脑不建议)
Win + R输入gpedit.msc打开组策略编辑器展开路径:计算机配置 → 管理模板 → 网络 → Lanman 工作站
双击策略「启用不安全的来宾登录」,设置为已启用,保存
重启 Windows,再次访问
\\192.168.31.19\iso,无需密码直接读写
常用维护命令汇总
修改共享配置后重载服务
bash
运行
sudo systemctl restart smbd nmbd
临时关闭写入权限(防止镜像误删)
修改 smb.conf,将
read only = no改为read only = yes,重启服务关闭匿名访问,仅账号登录
共享段修改
guest ok = no,重启服务查看 Samba 运行状态
bash
运行
systemctl status smbd
⚠️ 安全提示
该匿名 + 全开读写配置仅在内网隔离环境使用,绝对不要对公网开放 139、445 端口;
777最高权限存在误删、篡改风险,仅存放系统镜像临时使用。