探索 Samba 服务器:搭建跨平台文件共享的桥梁

samba 介绍

samba最先是再Linux和Windows两个平台之间建立一个桥梁,使得Linux系统和Windows系统之间互相通信和传输内容,比如复制文件、实现不同操作系统之间的资源共享等。在实际应用中,可以将samba服务器设置成一个功能非常强大的文件服务器。

SMB协议

SMB(Server Message Block,服务器消息快)通信协议可以看成是局域网上共享文件和打印机的一种协议。他是微软和intel在1987年制定的协议,主要用作Microsoft网络的通信协议,而samba则是将SMB协议搬到UNIX系统上来使用。通过NBT(NetBIOS over TCP/IP,建立在TCP/IP传送协议上的NetBIOS接口)使用samba不但能够与局域网络主机共享资源,还能与全世界计算机共享资源。SMB是在会话层、表示层以及小部分应用层的协议,SMB使用了NetBIOS的API。

samba工作原理

1.协议协商:发送netprot指令包,包含smb类型等

2.建立连接:当smb确认后,客户端发送session setup 指令,提交帐号和密码

3.client访问共享资源,发送tree connect指令包

4.断开

samba服务器搭建

检查samba是否安装

我们要安装的samba软件包是:samba-4.10.16-25.el7_9.x86_6

bash 复制代码
[root@server01 ~]# rpm -qa |grep samba
[root@server01 ~]# yum info samba

装samba服务, 顺手安装samba-client
bash 复制代码
[root@server01 ~]# yum install samba --y
[root@server01 ~]# yum install samba-client -y

​​​

安装完毕后显示如下,并通过rpm --qa |grep samba检查是否安装成功。

启动samba服务。命令如下:
bash 复制代码
[root@server01 ~]# systemctl status smb 
[root@server01 ~]# systemctl start smb 
[root@server01 ~]# systemctl enable smb 

新创建一个普通用户或者使用原来的用户。查询自己之前创建的用户比如lzq。

使用命令grep lzq /etc/passwd

用户存在,直接通过smbpasswd --a lzq添加到samba账户里。

重启samba服务,并让防火墙对samba服务放行处理。

bash 复制代码
[root@server01 ~]#firewall-cmd --list-all
[root@server01 ~]#firewall-cmd --permanent --zone=public --add-service=samba
[root@server01 ~]#firewall-cmd --reload
[root@server01 ~]#firewall-cmd --list-all

Window 按win+R键盘键,打开运行,输入ftp:\\192.168.33.128确定。(注意:ip是你的服务器对应的ip,上面的ip是老师samba服务器的ip,你要替换成自己的再运行)

默认访问路径是/home/lzq目录

此时会出现这种问题,我们只需要把权限给开放就可以了。

开放权限的方法如下:

​此时再次访问ip就可以了。这就是最基础的samba服务器的搭建和访问。

(如果想深入了解更多相关知识,请参考书本内容。)

samba服务器配置

samba服务器配置文件smb.conf (/etc/samba/smb)

1.编辑主配置文件smb.conf,指定需要共享的目录,并为共享目录设置共享权限

2.在smb.conf文件中指定日志文件名和存放路径

3.设置共享目录的本地系统权限

4.重新加载配置文件或重启SMB服务,使得配置生效

5.配置防火墙,同时设置SELinux为允许

最后给大家推荐一个工具:

最后,路卿老师的公zhong:源识空间,大家喜欢AI的可以gz哦!gz的必送相关精美电子书!

相关推荐
杜子不疼.1 小时前
【Linux】基础IO(二):系统文件IO
linux·运维·服务器
郝学胜-神的一滴1 小时前
深入理解网络IP协议与TTL机制:从原理到实践
linux·服务器·开发语言·网络·网络协议·tcp/ip·程序人生
松涛和鸣1 小时前
DAY61 IMX6ULL UART Serial Communication Practice
linux·服务器·网络·arm开发·数据库·驱动开发
杨靳言先7 小时前
✨【运维实战】内网服务器无法联网?巧用 SSH 隧道实现反向代理访问公网资源 (Docker/PortForwarding)
服务器·docker·ssh
Justice link9 小时前
K8S基本配置
运维·docker·容器
观熵9 小时前
SaaS 系统的自动化部署结构设计实战指南:基于 K8s + Helm 的工程落地路径
运维·kubernetes·自动化·saas 架构
chinesegf9 小时前
ubuntu中虚拟环境的简单创建和管理
linux·运维·ubuntu
若涵的理解9 小时前
一文读懂K8S kubectl 命令,运维小白必看!
运维·docker·kubernetes
java_logo9 小时前
2025 年 11 月最新 Docker 镜像源加速列表与使用指南
linux·运维·docker·容器·运维开发·kylin
峰顶听歌的鲸鱼10 小时前
Kubernetes管理
运维·笔记·云原生·容器·kubernetes·云计算