搭建samba服务实现文件共享
发表于更新于
武汉
搭建samba服务实现文件共享
Stone
在一些中小型网络,或者企业的内部网中,利用 Linux 建立文件服务器是一个很好的解决方案。针对企业内部网中的绝大部分客户机采用 Windows 的情况,我们可以通过使用 Samba 来实现文件服务器功能。
Samba 是在 Linux 及 Unix 上实现 SMB(Server Message Block)协议的一个免费软件,由服务器及客户端程序构成。这里我们只介绍服务器程序。
我们首先介绍一些 SMB 协议的情况。SMB 协议是建立在 NetBIOS 协议之上的应用协议,是基于 TCP138、139 两个端口的服务。NetBIOS 出现之后,Microsoft 就使用 NetBIOS 实现了一个网络文件/打印服务系统。这个系统基于 NetBIOS 设定了一套文件共享协议,Microsoft 称之为 SMB(Server Message Block)协议。这个协议被用于 Lan Manager 和 Windows 服务器系统中,实现不同计算机之间共享打印机和文件等。因此,为了让 Windows 和 Unix/Linux 计算机相集成,最好的办法就是在 Unix/Linux 计算机中安装支持 SMB 协议的软件。这样使用 Windows 的客户端不需要更改设置,就能像使用 Windows NT 或 Windows 2000 服务器一样,使用 Unix/Linux 计算机上的共享资源了。Samba 使 SMB 协议运行在 NetBIOS 协议上,并且使用 Windows 的 NetBEUI 协议让 Unix/Linux 服务器可以在 Windows 的网络邻居上被访问到。
安装:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| sudo apt-get update
sudo apt-get upgrade
sudo apt-get install samba
sudo smbpasswd -a xxx
New SMB password: Retype new SMB password:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo gedit /etc/samba/smb.conf
sudo vim /etc/samba/smb.conf
|
配置:
配置文件常用指令说明:
comment=STRING :注释;
path=/PATH/TO/FILENAME :当前共享所映射的文件系统路径;
browseable=YES :是否可浏览,指是否可被用户查看;
guest ok=YES :是否允许来宾账号访问;
browseable = No :是否公开目录
writable=YES :是否可写;
read only = no|yes :是否为只读
write list=/PATH/TO/user_list :拥有写权限的用户列表;
在文件尾部添加以下内容,根据自己需要修改,并保存文件
1 2 3 4 5 6 7 8
| [share] path = /media/pi available = yes browsealbe = yes valid usere = pi writable = yes guest ok = no read only = no
|
- [share] 是共享文件夹显示的名称
- 上面配置了禁止匿名登录,允许用户读写文件
- 更多配置方式https://www.samba.org/
- 注意 如果共享的文件夹中包含中文可能会出现乱码,建议在[global]修改字符集为 utf-8
1 2 3 4 5 6 7 8
| display charset = cp936 unix charset = cp936 dos charset = cp936
dos charset = UTF-8 unix charset = utf-8 display charset = utf-8
|
- 如果映射过慢,可采用如下方法, 通过 testparm 检查配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| read raw = Yes write raw = Yes socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072 min receivefile size = 16384 use sendfile = true aio read size = 16384 aio write size = 16384 max xmit = 65535 max connections = 0 deadtime = 0
[printers] comment = All Printers
|
启动:
保存退出:wq
1
| /etc/init.d/smbd restart
|
这个时候 samba 的安装配置工作就已经完成了,当然可以保底操作一下,确保一切正常
1 2 3 4
| sudo apt install cifs-utils -y sudo apt-get install samba -y sudo ufw allow samba /etc/init.d/smbd restart
|
验证
win + R 输入\192.168.1.66\share 输入实际的主机 ip 可通过 ifconfig 在 linux 机器上查
1
| netstat -tunpl | grep smbd
|
- 注意:如果是服务商接入会屏蔽掉 445 139 端口
在配置文件的[global]项中加入一行
小结
samba 服务器功能
1)提供 Windows 风格文件或打印机的共享
2)在 Windows 网络中解析 NETBIOS 名字
3)提供 smb 客户功能
4)提供一个命令行工具,利用该工具限制支持 Windows 的某些管理功能