Featured image of post Ubuntu 22.04 安装 SMB 服务

Ubuntu 22.04 安装 SMB 服务

本文介绍了如何在 Ubuntu 22.04 上安装和配置 SMB 服务,包括安装 smb 服务、配置 smb.conf 文件和启动服务。

简介

SMB(Server Message Block)是一种网络文件共享协议,广泛用于在不同操作系统之间共享文件和打印机。在 Ubuntu 22.04 上安装和配置 SMB 服务可以方便地在 Linux 和 Windows 系统之间共享文件。本文将详细介绍如何在 Ubuntu 22.04 上安装、配置和使用 SMB 服务。

安装 SMB 服务

更新系统包

首先,确保系统包是最新的:

1
2
sudo apt update
sudo apt upgrade -y

安装 Samba

Samba 是 Linux 系统上实现 SMB 协议的开源软件包:

1
sudo apt install samba samba-common-bin -y

验证安装

检查 Samba 服务状态:

1
2
sudo systemctl status smbd
sudo systemctl status nmbd

配置 SMB 服务

备份默认配置文件

在修改配置文件之前,先备份原始文件:

1
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

编辑配置文件

使用文本编辑器编辑 SMB 配置文件:

1
sudo nano /etc/samba/smb.conf

基本配置示例

在配置文件中添加以下内容:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[global]
   workgroup = WORKGROUP
   server string = Ubuntu SMB Server
   log file = /var/log/samba/log.%m
   max log size = 1000
   logging = file
   panic action = /usr/share/samba/panic-action %d
   server role = standalone server
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad password
   usershare allow guests = yes

[shared]
   comment = 共享文件夹
   path = /srv/samba/shared
   browseable = yes
   read only = no
   guest ok = yes
   create mask = 0755
   directory mask = 0755

创建共享目录

创建用于共享的目录:

1
2
3
sudo mkdir -p /srv/samba/shared
sudo chown nobody:nogroup /srv/samba/shared
sudo chmod 777 /srv/samba/shared

验证配置文件

使用 testparm 命令验证配置文件语法:

1
sudo testparm

用户管理

创建 SMB 用户

如果需要用户认证,首先创建系统用户:

1
sudo adduser smbuser

然后将用户添加到 SMB 数据库:

1
sudo smbpasswd -a smbuser

启用/禁用用户

启用 SMB 用户:

1
sudo smbpasswd -e smbuser

禁用 SMB 用户:

1
sudo smbpasswd -d smbuser

删除用户

删除 SMB 用户:

1
sudo smbpasswd -x smbuser

启动和管理服务

启动服务

启动 SMB 服务:

1
2
sudo systemctl start smbd
sudo systemctl start nmbd

设置开机自启

设置服务开机自启动:

1
2
sudo systemctl enable smbd
sudo systemctl enable nmbd

重启服务

重启 SMB 服务:

1
2
sudo systemctl restart smbd
sudo systemctl restart nmbd

检查服务状态

检查服务运行状态:

1
2
sudo systemctl status smbd
sudo systemctl status nmbd

防火墙配置

如果启用了防火墙,需要开放 SMB 相关端口:

1
sudo ufw allow 'Samba'

或者手动开放端口:

1
2
3
4
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
sudo ufw allow 137/udp
sudo ufw allow 138/udp

测试连接

本地测试

在本地测试 SMB 共享:

1
smbclient -L localhost

挂载共享

在 Linux 客户端挂载 SMB 共享:

1
2
sudo mkdir /mnt/smbshare
sudo mount -t cifs //SERVER_IP/shared /mnt/smbshare -o username=smbuser

Windows 客户端

在 Windows 资源管理器地址栏输入:

1
\\SERVER_IP\shared

高级配置

家目录共享

为每个用户配置家目录共享:

1
2
3
4
5
6
7
[homes]
   comment = 用户家目录
   browseable = no
   read only = no
   create mask = 0700
   directory mask = 0700
   valid users = %S

只读共享

配置只读共享:

1
2
3
4
5
6
[readonly]
   comment = 只读共享
   path = /srv/samba/readonly
   browseable = yes
   read only = yes
   guest ok = yes

安全设置

增强安全性的配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[global]
   # 禁用 SMB1 协议
   server min protocol = SMB2
   
   # 启用加密
   server signing = mandatory
   
   # 限制访问IP
   hosts allow = 192.168.1.0/24 127.0.0.1
   hosts deny = ALL

常见问题

权限问题

如果遇到权限问题,检查以下设置:

  • 文件系统权限
  • SELinux 设置(如果启用)
  • SMB 用户权限

连接问题

如果无法连接,检查:

  • 防火墙设置
  • 网络连通性
  • 服务状态

性能优化

优化 SMB 性能的配置:

1
2
3
4
5
6
7
[global]
   socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
   read raw = yes
   write raw = yes
   max xmit = 65535
   dead time = 15
   getwd cache = yes

监控和日志

查看日志

SMB 日志文件位置:

1
2
sudo tail -f /var/log/samba/log.smbd
sudo tail -f /var/log/samba/log.nmbd

连接状态

查看当前连接:

1
sudo smbstatus

共享列表

列出所有共享:

1
sudo smbclient -L localhost

总结

通过本文的介绍,可以成功在 Ubuntu 22.04 上安装和配置 SMB 服务。SMB 服务为跨平台文件共享提供了便利的解决方案,适用于家庭网络和企业环境。

关键要点:

  1. 定期备份配置文件
  2. 合理设置用户权限
  3. 配置适当的防火墙规则
  4. 监控服务状态和日志
  5. 根据需要调整性能参数

正确配置的 SMB 服务将为网络环境提供稳定可靠的文件共享功能。

面朝大海,春暖花开。
使用 Hugo 构建
主题 StackJimmy 设计