Ubuntu18.04搭建samda服务器
一.什么是Samba服务器?
Samba服务器是一种基于开源协议实现的网络共享服务软件,主要用于在不同操作系统(如Windows、Linux、Unix)之间实现文件和打印机共享功能。其核心目标是解决跨平台资源共享的兼容性问题,尤其是在混合网络环境中2。
1.Samba服务器的核心功能
-
跨平台文件共享
通过实现SMB/CIFS协议(Windows系统默认使用的文件共享协议),Samba允许Linux/Unix主机与Windows主机在局域网内直接共享文件。例如,用户可在Windows资源管理器中直接访问Linux服务器上的文件12。 -
打印机共享
Samba可将连接到Linux主机的打印机共享给局域网内的其他设备(包括Windows主机),实现跨平台打印服务1。 -
用户权限管理
支持基于用户或组的访问控制,可设置不同用户对共享资源的读写权限。例如:[shared_folder] path = /home/share valid users = user1, user2 writable = yes
-
域名服务(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.1sudo 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中去查看,可以看到是一摸一样的
相关文章:

Ubuntu18.04搭建samda服务器
一.什么是Samba服务器? Samba服务器是一种基于开源协议实现的网络共享服务软件,主要用于在不同操作系统(如Windows、Linux、Unix)之间实现文件和打印机共享功能。其核心目标是解决跨平台资源共享的兼容性问题,尤其是在…...
K8S扩缩容及滚动更新和回滚
目录: 1、滚动更新1、定义Deployment配置2、应用更新 2、版本回滚1. 使用kubectl rollout undo命令 3、更新暂停与恢复1、暂停更新2、更新镜像(例如,使用kubectl set image命令)3、恢复更新 4、弹性扩缩容1、扩容命令2、缩容命令3…...
一文掌握 LVGL 9 的源码目录结构
文章目录 📂 一文掌握 LVGL 9 的源码目录结构🧭 顶层目录概览📁 1. src/ — LVGL 的核心源码(🔥重点)📁 2. examples/ — API 示例📁 3. demos/ — 综合演示项目📁 4. do…...

2025-05-10-FFmepg库裁切有水印的视频
裁后 代码 import subprocess# 文件路径 input_video_path "bg_video.mp4" output_video_path "output_video_cropped.mp4"# 裁剪视频下方的水印 def crop_video(input_video_path, output_video_path, crop_height):# 获取视频的分辨率def get_video…...
Vue3 路由配置与跳转传参完整指南
目录 一、路由配置 1. 基本路由配置 2. 动态路由配置 3. 可选参数配置 二、路由跳转与传参 1. 声明式导航 (模板中) 2. 编程式导航 (JavaScript中) 三、参数接收 1. 接收动态路由参数 2. 接收查询参数 3. 监听参数变化 四、高级用法 1. 路由元信息 2. 路由守卫控…...

opencv+opencv_contrib+cuda和VS2022编译
本文介绍使用OpenCV和OpenCV_Contrib源码及Cuda进行编译的过程,编译过程中会用到OpenCV、OpenCV_Contrib、CUDA Toolkit、cuDNN、Cmake、VS2022等工具,最终编译OpenCV的Cuda版本。 一、OpenCV下载地址 OpenCV官网下载地址:https://opencv.org/releases…...
《深挖Java中的对象生命周期与垃圾回收机制》
大家好呀!👋 今天我们要聊一个Java中超级重要的话题——对象的生命周期和垃圾回收机制。 一、先来认识Java世界的"居民"——对象 👶 在Java世界里,一切皆对象。就像现实世界中的人一样,每个Java对象也有自…...
C++中extern关键字详解:不同情况下的使用方式
在 C 中,extern 关键字主要用于声明变量或函数是在其他文件中定义的,从而可以在当前文件中使用这些变量或函数。下面详细介绍 extern 修饰全局变量、函数等的用法区别以及注意事项。 修饰全局变量 详细介绍 当 extern 用于修饰全局变量时,…...
【QT】深入理解 Qt 中的对象树:机制、用途与最佳实践
深入理解 Qt 中的对象树:机制、用途与最佳实践 在使用 Qt 编程时,你是否注意到很多对象可以设置“父对象”?比如: QPushButton* btn new QPushButton(parentWidget);这不是简单的层级结构,而是 Qt 强大而优雅的 对象…...
如何利用爬虫获得1688商品详情:实战指南
在电商运营和市场分析中,获取1688商品详情数据是一项重要任务。本文将详细介绍如何利用爬虫技术获取1688商品详情,包括准备工作、爬虫实现步骤以及注意事项。 一、准备工作 (一)注册1688开放平台账号 在1688开放平台注册开发者…...

网工实验——OSPF配置
网络拓扑图 配置 1.为每个路由器配置接口(略)(详细见RIP实验) 2.配置OSPF AR1 [AR1]ospf [AR1-ospf-1]area 1 [AR1-ospf-1-area-0.0.0.1]network 172.16.1.1 0.0.0.0 #精确配置网络,也可以像下面那条命令那样配置 …...

数据库系统概论-基础理论
数据库系统概述: 1、记录:计算机中表示和存储数据的一种格式或方法。 2、数据库(DataBase, DB):数据库是长期储存在计算机内、有组织、可共享的大量数据集合。可为各种用户共享。 3、数据库管理系统(Dat…...

从零开始学习人工智能(Python高级教程)Day6-Python3 正则表达式
一、Python3 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 在 Python 中,使用 re 模块来处理正则表达式。 re 模块提供了一组函数,允许你在字符串中进行模式匹配、搜索和替换操作。 r…...

Qt开发:项目视图(Item Views)的介绍和使用
文章目录 一、清单视图(List View)1.1 基本概念1.2 使用示例(文字列表)1.3 图标文字(图标模式)1.4 常用设置1.5 完整示例 二、树视图(Tree View)2.1 基本概念2.2 常用类简介2.3 快速…...
“ES7+ React/Redux/React-Native snippets“常用快捷前缀
请注意,这是一个常用的列表,不是扩展提供的所有前缀。最完整和最新的列表请参考扩展的官方文档或在 VS Code 中查看扩展的详情页面。 React (通常用于 .js, .jsx, .ts, .tsx): rfce: React Functional Component with Export Defaultrafce: React Arro…...

keepalived详细笔记
keepalived 是一种基于VRRP(虚拟路由器冗余协议)的高可用解决方案,主要是用于服务器的负载均衡和高可用性的保障,自动将服务切换到备份服务器上,确保业务的连续性。 工作原理: VRRP协议:一组路…...

xLua笔记
Generate Code干了什么 肉眼可见的,在Asset文件夹生成了XLua/Gen文件夹,里面有一些脚本。然后对加了[CSharpCallLua]的变量寻找引用,发现它被XLua/Gen/DelegatesGensBridge引用了。也可以在这里查哪些类型加了[CSharpCallLua]。 public over…...

一周学会Pandas2 Python数据处理与分析-Pandas2数据排序操作
锋哥原创的Pandas2 Python数据处理与分析 视频教程: 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili Pandas 2提供了多种灵活的数据排序方法,主要针对 DataFrame 和 Series 对象。 1. 按值排序:s…...
obj = null; 赋值null之前没有其他引用指向obj对象,那么,当obj=null时,会被垃圾回收机制立即回收吗?
不会立即回收。 具体原因是: 赋值 obj null; 后,对象变成“不可达”,符合垃圾回收条件,但垃圾回收器并不会立刻回收它。垃圾回收是CLR自动控制的非确定性过程,什么时候执行回收取决于系统内存压力、GC策略、分代情况…...

lvm详细笔记
LVM简介 逻辑卷管理器,是Linux 系统中用于管理磁盘储存的关键技术。 LVM 则打破了磁盘分区一旦确定,其大小调整往往较为复杂,且难以灵活应对业务变化这种限制,它允许用户将多个物理分区组合卷组。例如,系统中的多个物…...

250505_HTML
HTML 1. HTML5语法与基础标签1.1 HTML5特性1.1.1 空白折叠现象1.1.2 转义字符 1.2 HTML注释1.3 基础标签1.3.1 div标签1.3.2 标题标签1.3.3 段落标签1.3.4 title1.3.5 meta 1.4 html骨架1.4.1 DTD1.4.2 html标签1.4.3 head与body标签 1.5 div标签详解1.5.1 常见class类名 2. 列…...

【HarmonyOS NEXT+AI】问答05:ArkTS和仓颉编程语言怎么选?
在“HarmonyOS NEXTAI大模型打造智能助手APP(仓颉版)”课程里面,有学员提到了这样一个问题: 鸿蒙的主推开发语言不是ArkTS吗,本课程为什么使用的是仓颉编程语言? 这里就这位同学的问题,统一做下回复,以方便…...

【专家库】Kuntal Chowdhury
昆塔尔乔杜里 Kuntal Chowdhury 是 NVIDIA 的 6G 开发者关系经理和技术布道师。他致力于推动与 NVIDIA 平台和工具的开发者和早期采用者生态系统的联系,以促进 6G 研究社区的蓬勃发展。在此之前,他是 BlueFusion, Inc. 的创始人,这是一家创新…...

【代码优化篇】强缓存和协商缓存
强缓存和协商缓存 一、强缓存与协商缓存的区别二、Vue2 前端实现强缓存(静态资源)三、Spring Boot 后端实现协商缓存(动态接口)四、测试缓存效果五、注意事项 一、强缓存与协商缓存的区别 强缓存:浏览器直接读取本地缓…...

电路中的DGND、GROUND、GROUND_REF的区别,VREF、VCC、VDD、VEE和VSS的区别?
目录 1 DGND、GROUND、GROUND_REF的区别 1.1 DGND(Digital Ground) 1.2 GROUND(Ground) 1.3 GROUND_REF(Ground Reference) 1.4 区别 2 VREF、VCC、VDD、VEE和VSS的区别 2.1 VREF(Refere…...
使用AES-CBC + HMAC-SHA256实现前后端请求安全验证
AES-CBC HMAC-SHA256 加密验证方案,下面是该方案二等 优点 与 缺点 表格,适用于文档、评审或技术选型说明。 ✅ 优点表格:AES-CBC HMAC-SHA256 加密验证方案 类别优点说明🔐 安全性使用 AES-CBC 对称加密使用 AES-128-CBC 是可…...
Excel 数据 可视化 + 自动化!Excel 对比软件
各位Excel小能手们!你们有没有过要对比两个Excel表格数据差异,却看得眼睛都花了的经历?其实啊,现在有专门的Excel文件比较软件能帮咱解决这大难题。这软件就是用来快速找出两个或多个Excel表格数据不同之处,还能把修改…...

开始使用WebStorm
目录 开始使用WebStorm打开、检出或创建项目打开项目从版本控制系统检出项目的步骤创建一个空的WebStorm项目在项目中创建新文件的步骤 熟悉WebStorm用户界面找到你要找的代码查找项目符号的调用按名称查找项目符号搜索文本片段转到符号声明历史记录 补全代码实时检查并修复代码…...

【计算机视觉】Car-Plate-Detection-OpenCV-TesseractOCR:车牌检测与识别
Car-Plate-Detection-OpenCV-TesseractOCR:车牌检测与识别技术深度解析 在计算机视觉领域,车牌检测与识别(License Plate Detection and Recognition, LPDR)是一个极具实用价值的研究方向,广泛应用于智能交通系统、安…...

【MongoDB篇】MongoDB的聚合框架!
目录 引言第一节:什么是聚合框架? 🤔第二节:管道的“发动机”们——常用聚合阶段详解!⚙️第三节:聚合表达式——管道中的“计算器”和“转换器” 🧮✏️第四节:性能优化与考量——让…...