Linux 上设置 SMB (Samba) 服务教程

[复制链接]
发表于 2026-1-14 13:56:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Linux 上设置 SMB (Samba) 服务教程

本教程以 Debian 体系为例引导设置 Samba 服务。
步调 1: 安装 Samba

起首,利用 apt 安装 Samba:
  1. sudo apt update
  2. sudo apt install samba
复制代码
步调 2: 设置 Samba

编辑 Samba 的设置文件 /etc/samba/smb.conf:
  1. sudo nano /etc/samba/smb.conf
复制代码
我们以利用 SMB1 协议为例,在 [global] 部门添加以下设置来逼迫利用 SMB1 协议,并设置安全性参数:
  1. [global]
  2.    workgroup = WORKGROUP
  3.    server string = Samba Server
  4.    security = user
  5.    map to guest = never
  6.    min protocol = NT1
  7.    max protocol = NT1
复制代码

  • security = user:指定 Samba 利用用户级别安全性,要求每个毗连都有指定的用户名和暗码。
  • min protocol = NT1 和 max protocol = NT1:逼迫 Samba 利用 SMB1 协议。
步调 3: 设置共享文件夹

在设置文件末了添加共享文件夹的设置,确保只有特定用户可以访问:
  1. [shared]
  2.    path = /srv/samba/shared
  3.    browseable = yes
  4.    writable = yes
  5.    valid users = sambauser
  6.    create mask = 0755
复制代码

  • valid users = sambauser:限定只有 sambauser 用户可以访问共享。
步调 4: 创建共享文件夹并设置权限

创建共享文件夹并设置适当的权限:
  1. sudo mkdir -p /srv/samba/shared
  2. sudo chown nobody:nogroup /srv/samba/shared
  3. sudo chmod 0777 /srv/samba/shared
复制代码
步调 5: 创建 Samba 用户

创建体系用户并设置 Samba 暗码:
  1. # 创建系统用户(如果尚未创建)
  2. sudo useradd -M -s /sbin/nologin sambauser
  3. # 设置 Samba 用户密码
  4. sudo smbpasswd -a sambauser
复制代码
步调 6: 重启 Samba 服务

生存设置文件后,重启 Samba 服务以应用更改:
  1. sudo systemctl restart smbd
复制代码
步调 7: 查察 Samba 利用的端口

通常,Samba 利用以下端口:

  • TCP 139 - NetBIOS 会话服务
  • TCP 445 - 直接 TCP/IP CIFS
利用以下下令查察 Samba 正在监听的端口:
  1. sudo ss -tuln | grep ':139\|:445'
复制代码
大概利用:
  1. sudo netstat -tuln | grep ':139\|:445'
复制代码
  1. sudo lsof -i -P -n | grep smbd
复制代码
步调 8: 设置防火墙

确保防火墙允许 Samba 服务端口:
  1. sudo ufw allow Samba
复制代码
假如是租用的云服务器,大概须要在云服务器的控制台放开相应端口。
步调 9: 测试毗连和查察服务状态


  • 查察 Samba 服务状态
查察当前 Samba 服务的运行状态,确保服务正常运行:
  1. sudo systemctl status smbd
复制代码

  • 测试 Samba 毗连
从客户端(比方 Windows)毗连到共享文件夹,可以利用以下方法:

  • 打开文件资源管理器,在所在栏中输入 \\服务器IP所在\shared(比方 \\192.168.1.100\shared)。
  • 利用指定的用户名和暗码举行登录,确保毗连乐成。

  • 利用 smbclient 举行测试
在本地或长途测试 Samba 共享毗连:
  1. smbclient //localhost/shared -U sambauser
复制代码
输入暗码后,假如毗连乐成,会进入 Samba 客户端提示符,可以用 ls 查察共享文件夹内容。
步调 10: nmbd(NetBIOS)设置

告急分析

nmbd 是 NetBIOS 名称服务的保卫历程,用于在局域网(LAN)情况中剖析主机名。假如你须要通过主机名而不是 IP 所在访问局域网 Samba 服务器,可以设置利用 nmbd。
但是,nmbd 和 NetBIOS 广播在公网情况中不可用,由于:

  • NetBIOS 依赖局域网广播:NetBIOS 利用 UDP 广播举行名称剖析,只能在局域网内工作,无法超过路由器、NAT 网关或互联网举行剖析。
  • 安全性题目:在公网中启用 nmbd 并开放 UDP 137 和 138 端口大概带来安全风险,由于这些端口容易受到攻击。
  • 尺度的主机名剖析应利用 DNS:在公网或跨网情况中,保举利用 DNS 服务器举行主机名剖析,安全性和稳固性更高。
nmbd 监听的端口


  • UDP 137 - NetBIOS 名称服务:用于名称剖析。
  • UDP 138 - NetBIOS 数据报服务:用于欣赏和发现服务。
nmbd 的设置步调(仅限局域网)


  • 确保 nmbd 启用
    启用 nmbd 服务,使得主机名可以在局域网中被发现息争析:
    1. sudo systemctl start nmbd
    2. sudo systemctl enable nmbd
    复制代码
  • 设置 NetBIOS 名称
    在 /etc/samba/smb.conf 的 [global] 部门设置 netbios name:
    1. [global]
    2. netbios name = debian  # 将此处的名称更改为你的主机名
    复制代码
  • 查抄 nmbd 监听端口
    利用以下下令查抄 nmbd 是否在监听 UDP 137 和 138 端口:
    1. sudo ss -uln | grep ':137\|:138'
    复制代码
  • 利用主机名毗连:
    比方可在 Windows 文件资源管理器所在栏中输入:
    1. \\debian\shared
    复制代码
  • 禁用 nmbd(假如不须要)
    假如不须要通过主机名访问,仅利用 IP 所在,可以禁用 nmbd:
    1. sudo systemctl stop nmbd
    2. sudo systemctl disable nmbd
    复制代码
公网主机名访问 SMB 的精确方法


  • 设置 DNS 剖析: 在公网情况中,通过购买域名并在 DNS 服务器中设置 A 记载,将服务器 IP 所在与主机名关联。
  • 修改 Hosts 文件: 对于暂时利用,可以在客户端的 Hosts 文件中手动添加主机名和 IP 所在的映射。
客户端通过主机名毗连示例


  • 利用 DNS 剖析的主机名毗连:

    • 比方,假如你的 DNS 设置了 debian.yourdomain.com,在 Windows 文件资源管理器中输入:
      1. \\debian.yourdomain.com\shared
      复制代码

  • 修改 Hosts 文件毗连:

    • 在 Hosts 文件中添加:
      1. <云服务器的公网IP>  debian
      复制代码
    • 然后在资源管理器中输入:
      1. \\debian\shared
      复制代码

总结

以上步调详细讲授了怎样在 Linux 上设置 SMB 服务,渴望能资助到各人!
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表