前置操作

  1. 安装samba

    sudo apt-get install samba samba-common
    
  2. 查看状态

    systemctl  status  smbd.service 
    
  3. 拷贝配置文件

    cp /etc/samba/smb.conf{,.backup}
    

创建samba用户

  1. 创建samba目录

    mkdir -p /samba
    
  2. 为群组授权

    chgrp sambashare /samba
    
  3. 创建普通用户

    sudo useradd -M -d /samba/wind -s /usr/bin/nologin  -G sambashare wind
    

    useradd选项的含义如下:

    -M-不创建用户的主目录。我们将手动创建此目录。

    -d /samba/wind -将用户的主目录设置为/samba/wind。

    -s /usr/sbin/nologin -禁止该用户访问shell。

    -G sambashare -将用户添加到sambashare组。

    mkdir -p /samba/wind
    chown  wind:sambashare /samba/wind
    sudo chmod 2770 /samba/wind
    # 设置密码并启用用户
    smbpasswd -a wind
    smbpasswd -e wind
    

    smbpasswd 用户名: 修改密码;

    -a:向smbpasswd文件中添加用户;

    -c:指定samba的配置文件;

    -x:从smbpasswd文件中删除用户;

    -d:在smbpasswd文件中禁用指定的用户;

    -e:在smbpasswd文件中激活指定的用户;

    -n:将指定的用户的密码置空。

  4. 创建管理用户

    sudo useradd -M -d /samba/users -s /usr/bin/nologin  -G sambashare sadmin
    
    mkdir -p /samba/users
    chown  sadmin:sambashare /samba/users
    sudo chmod 2770 /samba/users
    # 设置密码并启用用户
    smbpasswd -a sadmin
    smbpasswd -e sadmin
    

配置Samba共享

vim /etc/samba/smb.conf

[users]
    comment = 组
    path = /samba/users
    browseable = yes
    create mask = 0770
    directory mask = 0770
    valid users = @sambashare,@sadmin
    write list = @sambashare,@sadmin
[wind]
    comment = 个人
    path = /samba/wind
    browseable = yes
    create mask = 0770
    directory mask = 0770
    valid users = wind,@sadmin
    write list = wind,@sadmin

公网访问

需要部署frp 穿透内存来代理samba服务

部署frp参考

这里提供frpc 的配置如下:

[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 7000
; 日志设置
log_level = info
log_max_days = 7
log_file = /var/log/frpc/frpc.log
; 权限设置
authentication_method = token
token = xxxxx

[smb]
type = tcp  # 这里得是tcp
local_ip = 192.168.50.190 # samba服务器的ip
local_port = 445
remote_port = 44502

公网连接测试

  1. linux 连接

    • 文件夹打开,选择其他位置,连接到服务器地址: smb://公网ip:44502/
  2. mac 连接

    • 打开"查找器",选择"执行",然后单击"连接到",在"连接到"中用以下格式smb://公网ip:44502 连接
  3. windows 连接

    • windows 默认连接端口445,这个是写死了的,我们改不了,只能把它绕过去。

    • 管理员模式打开cmd 终端设置端口转发: (设置完成后不会有任何反应的)

      netsh interface portproxy add v4tov4 listenport=445 connectaddress=公网ip connectport=44502

    • 查看设置的转发端口:

      netsh interface portproxy show v4tov4

    • 这一步很重要,重启才能生效!

    • 重启后,cmd连接: \\127.0.0.1 就可以访问到公网代理的 samba访问了。

Logo

更多推荐