Ubuntu18.04搭建samda服务器

一.什么是Samba服务器?

Samba服务器 是一种基于开源协议实现的网络共享服务软件,主要用于在不同操作系统(如Windows、Linux、Unix)之间实现文件和打印机共享 功能。其核心目标是解决跨平台资源共享的兼容性问题,尤其是在混合网络环境中2

1.Samba服务器的核心功能

  1. 跨平台文件共享

    通过实现SMB/CIFS协议 (Windows系统默认使用的文件共享协议),Samba允许Linux/Unix主机与Windows主机在局域网内直接共享文件。例如,用户可在Windows资源管理器中直接访问Linux服务器上的文件1 2

  2. 打印机共享

    Samba可将连接到Linux主机的打印机共享给局域网内的其他设备(包括Windows主机),实现跨平台打印服务1

  3. 用户权限管理

    支持基于用户或组的访问控制,可设置不同用户对共享资源的读写权限。例如:

    复制代码
    [shared_folder]
    path = /home/share
    valid users = user1, user2
    writable = yes
  4. 域名服务(Domain Controller)

    高级配置中,Samba可充当Windows域控制器(Active Directory),实现统一的网络身份认证和管理3

2.主要用途

  • 混合网络环境整合

    在同时存在Windows和Linux设备的网络中,Samba解决了传统协议(如NFS仅适用于Unix,CIFS仅适用于Windows)的局限性,成为跨系统协作的桥梁2

  • 简化文件同步

    用户可直接修改服务器上的文件,无需反复下载上传,避免了版本冲突问题(例如FTP的局限性)2

  • 低成本解决方案

    作为开源软件,Samba降低了企业部署共享服务的成本,同时提供与商业方案(如Windows Server)相近的功能

技术原理

Samba通过模拟SMB协议的工作流程实现功能:

客户端请求→SMB协议解析→Linux文件系统操作→返回响应客户端请求→SMB协议解析→Linux文件系统操作→返回响应

此过程在局域网内完成,延迟低且效率高

二.ubuntu搭建samda服务器

1.安装samda软件

先更新一下:sudo apt update

之后下载 : sudo apt install samba -y

下载时遇到报错:

复制代码
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

输入下面指令:

复制代码
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock

出现:E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

输入下面指令:

复制代码
(sudo apt update  //更新软件源)一般不用跟新
//强制修复依赖链
sudo apt --fix-broken install
sudo apt install -f
手动处理版本冲突(以引用[2]中的libgbm1为例)
sudo apt install libgbm1=22.0.1-1ubuntu2.1

sudo apt-mark showhold  # 查看被锁定的包
sudo apt-mark unhold 包名  # 解除锁定

sudo apt install -f   //执行这个指令后就重新下载samda,我是到这里就没有问题了

如果还是提示E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

可能是镜像源有问题,

1、首先使用以下命令备份现有的镜像源:

cd /etc/apt

sudo cp sources.list sources.list.bak

2、使用以下命令打开镜像源文件:

sudo vim /etc/apt/sources.list

3、在vim插入模式下使用以下内容替换掉原镜像源文件sources.list中的内容:

复制代码
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

4、保存并退出。

5、在ubuntu能正常上网的前提下,使用以下命令更新软件列表:

sudo apt-get update

sudo apt-get upgrade

经过以上流程,ubuntu使用的镜像源就是清华的镜像源了。

2.创建 Samba 共享文件夹

用户创建的任何文件夹都可以做共享文件夹**(只要开放读写权限)**,如果不想创建新的文件夹,可以跳过创建的步骤,在现有的文件夹中选一个设置权限即可。

使用mkdir命令(后面的参数-p是用于创建多级目录使用的,去掉也不影响),新建一个名为

mkdir -p Share,建立之后去到share中**。用pwd查看其绝对路径,之后用到**

返回上一级目录,给建立的share文件添加777权限

3.配置samda文件和设置samda密码

为保险起见,先备份一下原来的 Samba 配置文件。后面出现操作失误等问题导致文件乱了,还有备份来用

复制代码
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.beifen

编辑配置smb.conf配置文件,添加共享目录。

复制代码
sudo vim /etc/samba/smb.conf

进来之后,直接按组合键Shift+g跳到结尾处,在结尾处把下面的文本添加进去,要注意根据自己的情况修改。

复制代码
[Ubuntu_18.04]        //这是共享的名称,你可以在网络上访问该共享时使用。
        comment = Samba      //这是关于共享的描述或注释,显示给用户看。
        path = /home/www/Share     //这是共享的实际路径。
        public = yes     //这表示该共享是否为公共共享,即是否允许匿名用户访问。
        writable = yes   //表示是否允许用户在共享中创建、编辑和删除文件。
        available = yes   //表示该共享是否可用。
        browseable = yes   //表示该共享是否在网络上可以浏览。
        valid users = www   当前 Ubuntu 系统的用户名。 www改成你的用户名

然后保存退出,接着给 Samba 用户设置密码:

复制代码
sudo smbpasswd -a www    (www是我的用户名,这里写你自己的)

4.重启 Samba 服务器

重启 Samba 服务器可以直接输入下列命令:

复制代码
systemctl restart smbd.service   //重启
systemctl enable smbd.service   //能使

输入第一条命令的时候会出现一次下面这个**,这个就是你的登入用户的密码,不是刚才设置的密码**

输入第二个执行会出现三次,输入密码就好了

完成之后查看运行情况: systemctl status smbd.service,看绿色的running,这表示正在运行

5.设置静态IP地址

1.查看IP 地址了

输入ifconfig便可查看 IP 地址了,如图中红框所标位置就是本台 Ubuntu 的 IP 地址。在不确定其它 IP 地址是否被其它设备占用的情况下,直接把当前的 IP 地址设置为静态 IP 最为妥当

2. 查看网关

设置静态 IP 的前置条件是,我们需要先知道局域网的默认网关和子网掩码分别是什么。可以先通过输入这个route -n命令来获得默认网关和子网掩码。

其中的 Gateway 的地址就是网关地址,都是 192.168.168.2

而 Genmask 为子网掩码。由于 IPv4 地址是由 32 位二进制数构成的,其中前 24 位被用来表示网络部分,所以子网掩码 255.255.255.0 的网络部分占据了 24 位,那么在 IP 地址后面就要写 24。(一共四段,每段 8 个位,前三段都是 255,第四段是 0。255 转为二进制数是 8 个 1,三段 255 就有 24 个 1。)

3. DNS 服务器(域名服务器)

以下是一些常见的国内可用 DNS 服务器,以下信息确认后,就可以开始配置静态 IP 地址了。

复制代码
#114 DNS:
	IPv4:114.114.114.114、114.114.115.115

#阿里云 DNS:
	IPv4:223.5.5.5、223.6.6.6

#腾讯云 DNS:
	IPv4:119.29.29.29、119.28.28.28

#CNNIC DNS:
	IPv4:1.2.4.8、210.2.4.8
	
#百度 DNS:
	IPv4:180.76.76.76

#Google DNS:
	IPv4:8.8.8.8、8.8.4.4	

4.通过网络管理工具设置静态 IP(NetworkManager TUI)

在命令行输入:nmtui

按回车进入Edit a connection

连续按两次Tab键,选中<Edit...>,按回车进入

按⬇方向键把光标下移到"IPv4 CONFIGURATION"后面的<Automatic>按回车弹出菜单

按⬇方向键选择Manual,按回车

按➡键选择<Show>,按回车

然后逐一输入 IP 地址、网关和 DNS,DNS 就是上面给出的DNS服务器,你们可以人选几个

192.168.168.2就是你们ifconfig得到的,/24是固定加的

其中的 Gateway 的地址就是网关地址,都是 192.168.168.2(上面查看的)

⬇到下面选择ok按回车

选择back回车

选择Quit回车,退出

退出后输入reboot重启

6.Windows 系统访问 Ubuntu 共享文件夹

设置好静态 IP 后,回到 Windows 系统主机,按组合键Win+R,输入 Ubuntu 系统的 IPv4 地址,然后回车,具体如下图(注意前面要输入两个反斜杠):

在随后的弹窗中输入 Ubuntu 的 Samba 服务器账号和密码,勾上"记住我的凭证",再点确定即可。

点击确认后弹出下面这样文件夹说明就成功了

为了之后访问更方便,可以右键单击文件夹,选择"映射网络驱动器"。

盘符可以指定,也可以默认,全凭个人喜好,单击"完成"按钮即可

可以看到电脑多了个盘符,以后只要打开 Ubuntu 系统,都可以直接从 Windows 的文件管理器访问 Ubuntu 系统了。

7、测试

目前我们确定,此时的 Ubuntu 系统中的 Share 文件夹是空的,如下图:

同时,在 Windows 系统的文件管理器查看也是如此。

可以在windows中新建一个文本

保存好退出,在ubuntu中去查看,可以看到是一摸一样的

相关推荐
敲上瘾3 分钟前
从明文裸奔到密钥长城:HTTPS加密全链路攻防与CA信任锚点构建
服务器·网络·网络协议·http·网络安全·https·密码学
zzr9158 分钟前
深入探讨 UDP 协议与多线程 HTTP 服务器
linux·服务器·网络协议·tcp/ip·ubuntu·http·udp
宇亲2 小时前
Win11/Win10无法保存ip设置提示请检查一个或多个设置并重试怎么办?
运维·服务器
苏音资源2 小时前
宝塔docker拉取仓库失败 完美加速方法
运维·docker·容器
独行soc6 小时前
2025年渗透测试面试题总结-某战队红队实习面经(附回答)(题目+回答)
linux·运维·服务器·学习·面试·职场和发展·渗透测试
星川皆无恙7 小时前
大数据产品销售数据分析:基于Python机器学习产品销售数据爬虫可视化分析预测系统设计与实现
大数据·运维·爬虫·python·机器学习·数据分析·系统架构
sky北城8 小时前
Jenkins忘记admin密码后的恢复步骤
运维·jenkins
FBI HackerHarry浩9 小时前
Linux云计算训练营笔记day02(Linux、计算机网络、进制)
linux·运维·网络·笔记·计算机网络·进制
乐言36110 小时前
接口自动化工具如何选择?以及实战介绍
运维·自动化
一颗星星辰10 小时前
网络安全专题 | 第十章 | 防火墙基础配置 | 安全策略
服务器·网络·web安全