前置操作
-
安装samba
sudo apt-get install samba samba-common
-
查看状态
systemctl status smbd.service
-
拷贝配置文件
cp /etc/samba/smb.conf{,.backup}
创建samba用户
-
创建samba目录
mkdir -p /samba
-
为群组授权
chgrp sambashare /samba
-
创建普通用户
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:将指定的用户的密码置空。 -
创建管理用户
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服务
这里提供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
公网连接测试
-
linux 连接
- 文件夹打开,选择其他位置,连接到服务器地址: smb://公网ip:44502/
-
mac 连接
- 打开"查找器",选择"执行",然后单击"连接到",在"连接到"中用以下格式smb://公网ip:44502 连接
-
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访问了。
-