Samba服务

samba是一个网络服务器,用于Linux和Windows之间共享文件。

samba端口号

samba (启动时会预设多个端口)

数据传输的TCP端口 139、445

进行NetBIOS名称解析之类工作的UDP端口就 137、138

Samba的功能:

① 分享档案与打印机服务;

② 可以提供用户登入 SAMBA 主机时的身份认证,以提供不同身份者的个别数据;

③ 可以进行 Windows 网络上的主机名解析 (NetBIOS name)

④ 可以进行装置的分享 (例如 Zip, CDROM...)

Samba工作原理:

Samba服务功能强大,这与通信是基于SMB协议有大的关系。SMB协议不仅能够提供目录和打印机共享,还支持认证和权限设置等功能。在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP协议的137、138及TCP协议的139端口,但随着后期开发,它可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。

通过Samba服务,Windows用户可以通过【网上邻居】窗口查看到Linux服务器中共享的资源,同时Linux用户也能够查看到服务器上的共享资源。Samba服务的具体工作过程如图:

协议协商

客户端在访问Samba服务器时,首先由客户端发送一个SMB negprot请求数据报,并列出它所支持的所有SMB协议版本。服务器在接收到请求信息后开始响应请求,并列出希望使用的协议版本。如果没有可使用的协议版本则返回oXFFFFH信息,结束通信。

建立连接

当SMB协议版本确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送SesssetupX请求数据报实现的。客户端发送一对用户名和密码或一个简单密码到服务器,然后服务器通过发送一个SesssetupX请应答数据报来允许或拒绝本次连接。

访问共享资源

当客户端和服务器完成了协商和认证之后,它会发送一个Tcon或SMB TconX数据报并列出它想访问网络资源的名称,之后服务器会发送一个SMB TconX应答数据报以表示此次连接是否被接受或拒绝。

断开连接

连接到相应资源,SMB客户端能够open SMB打开一个文件,通过read SMB读取文件,通过write SMB写入文件,通过close SMB关闭文件。

配置文件详解参考教案。

FTP服务

FTP (File transfer protocol) 是传输协议之一,他最主要的功能是在服务器与客户端之间进行档案的传输。

vsftpd软件包:“very secure”的FTP服务器软件

ftp端口号

主动模式:消息端口21,数据端口20

被动模式:消息端口21,数据端口随机

ftp的工作原理

建立连接:

客户端发送连接请求,同时打开一个大于 1024 的端口,比如 1031 端口,若 FTP 服务器侦听到该请求,则会在 1031 端口和 FTP 的 21 端口之间建立起一个 FTP 会话连接。

传输数据:

当需要传输数据时,客户端再动态的打开一个大于 1024 的端口连接到 FTP 得 20 端口,并在这个两个端口之间进行数据传输。

FTP 协议中,控制连接均有客户端发起,而数据连接有两种工作方式:

PORT 主动方式和PASV 被动方式

主动

client              server

1024+ ---------------> 21

1024+N <-------------- 20

客户端使用1024 以上的端口连接服务器的21 号端口,并且会事先开启一个1024+N 的端口准备让服务器来连接,服务器得知客户端准备的端口后,用20 号端口与客户端连接,创建数据链路时server 端处于主动去连接客户端的状态固称为主动传输模式

被动

client               server

1024+ ---------------> 21 1024+M

1024+ <--------------

1024+N --------------->1024+M

客户端使用1024 以上的端口连接服务器的21 号端口,服务器接到连接请求后,开启一个1024+M 的端口等待客户端来连接,再通知客户端这个等待连接的端口号是1024+M,客户端接到服务器端的信息后,开启新的一个1024+N 的端口与1024+M 进行连接,创建数据连接时,server 端处于被客户端连接的状态,固称为被动传输模式.

vsftp 默认是根据客户端不同而使用不同模式,windows 客户端则使用主动,linux 客户端则使用被动

可以用 pasv_enable=NO 来强制使用主动

NFS服务

NFS即网络文件系统(NetWork File System),是使不同的计算机之间能通过网络进行文件和目录共享的一种网络协议,多用于类UNIX系统中的网络中。

windows网络共享服务或samba服务用于办公居于网共享,而护粮网中小型网站集群架构后端常用NFS进行数据共享,如果是大型网站,那么有可能还会用到更复杂的分布式文件系统(mfs,GlusterFS,FastDFS)。

RPC服务(使用的是固定端口111)最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,从而确保客户端可以链接到正确的NFS端口上去,达到实现数据传输交互数据目的。

NFS端口号

NFS的功能所对应的端口无法固定,它会随机取用一些未被使用的端口来作为传输只用。

一般nfs为udp 2049和其他挂载端口等,rpc为111端口。

NFS 服务配置过程中,其中 mountd, statd 和 lockd 进程可以使用固定端口号。

修改 /etc/sysconfig/nfs 文件

MOUNTD_PORT="4002"

STATD_PORT="4003"

LOCKD_TCPPORT="4004"

LOCKD_UDPPORT="4004"

NFS的工作原理

当访问程序通过NFS客户端向NFS服务器端存取文件时,其请求数据流程大致如下:

1)首先用户访问网站程序,由程序在NFS客户端上发出存取NFS文件的请求,这时NFS客户端(即执行程序的服务器)的RPC服务(rpcbind 服务)就会通过网络向NFS服务器端的RPC服务(rpcbind 服务)的111端口发出NFS文件存取功能的询问请求。

2)NFS服务器端的RPC服务(rpcbind服务)找到对应的已注册的NFS端口后,通知NFS客户端的RPC服务(rpcbind 服务)。

3)此时NFS客户端获取到正确的端口,并与NFS daemon联机存取数据。

4)NFS客户端把数据存取成功后,返回给前端访问程序,告知用户存取结果,作为网站用户,就完成了一次存取操作。

因为NFS的各项功能都需要向RPC服务( rpcbind服务)注册,所以只有RPC服务才能获取到NFS服务的各项功能对应的端口号(portnumber)、PID、NFS在主机所监听的IP等信息,而NFS客户端也只能通过向RPC服务询问才能找到正确的端口。也就是说,NFS需要有RPC服务的协助才能成功对外提供服务。从上面的描述,我们不难推断,无论是NFS客户端还是NFS服务器端,当要使用NFS时,都需要首先启动RPC服务,NFS服务必须在RPC服务启动之后启动,客户端无需启动NFS服务,但需要启动RPC服务。

Samba与nfs与ftp的更多相关文章

  1. [转帖]使用Gnome文件管理器连接到服务器:FTP/SFTP、Samba、NFS的方法

    使用Gnome文件管理器连接到服务器:FTP/SFTP.Samba.NFS的方法 2019-05-09 16:28:44作者:雷增线稿源:云网牛站 https://ywnz.com/linuxyffq ...

  2. 第12章 使用Samba或NFS实现文件共享

    章节简述: 本章节为读者讲述文件共享系统的作用,了解Samba与NFS服务程序的开发背景以及用法. 详细逐条讲解Samba服务配置参数,演示安全共享文件的配置策方法,并使用autofs服务程序自动挂载 ...

  3. 《linux就该这么学》第十三节课:第11章和第12章,vsftpd服务与samba和nfs服务

    第十一章 (借鉴请改动) 11.1.文件传输协议 FTP文件穿数协议,端口20用于数据传输,21端口用于传输相关FTP命令 ftp协议的两种工作模式: 主动模式:ftp向客户端发起 被动模式(默认): ...

  4. 《Linux就该这么学》培训笔记_ch12_使用Samba或NFS实现文件共享

    <Linux就该这么学>培训笔记_ch12_使用Samba或NFS实现文件共享 文章最后会post上书本的笔记照片. 文章主要内容: SAMBA文件共享服务 配置共享资源 Windows挂 ...

  5. linux入门系列16--文件共享之Samba和NFS

    前一篇文章"linux入门系列15--文件传输之vsftp服务"讲解了文件传输,本篇继续讲解文件共享相关知识. 文件共享在生活和工作中非常常见,比如同一团队中不同成员需要共同维护同 ...

  6. [转载]SELinux 环境下网络服务设置,配置 Apache 、Samba、NFS

    原文地址:http://www.ibm.com/developerworks/cn/linux/l-cn-selinux-services1/index.html?ca=drs- 引言 SELinux ...

  7. MPSOC之9——host、embeded间tftp、nfs、ftp环境搭建

    tftp 可传输单个文件,不能传文件夹 需要通过命令传输文件,略显复杂 ==一般调试kernel时,用uboot通过tftp方式启动,不用每次都烧写存储介质== nfs 在host linux(ubu ...

  8. NFS、FTP介绍

    第二十五课 NFS.FTP介绍 目录 一. NFS介绍 二.NFS服务端安装配置 三.NFS配置选项 四.exportfs命令 五.NFS客户端问题 六.FTP介绍 七.使用vsftpd搭建ftp 八 ...

  9. 配置samba和NFS共享服务

                            配置samba和NFS共享服务 1案例1:配置SMB文件夹共享 1.1问题 本例要求在虚拟机server0上发布两个共享文件夹,具体要求如下: 此服务器 ...

随机推荐

  1. MySQL 其它基本操作

    索引 所谓索引,就是类似于书的目录,目的也类似,都是为了提高检索速度.ALTER TABLE <表名> ADD INDEX <索引名(列名)>;或者CREATE INDEX & ...

  2. PHP 的异步并行 C 扩展 Swoole

    PHP的异步.并行.高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列, ...

  3. Qt:正确判断文件、文件夹是否存在的方法

    一直对Qt的isFile.isDir.exists这几个方法感到混乱,不知道到底用哪个,网上搜了下资料,也是用这几个方法但是都没有对其深究,经过测试发现会存在问题,先看看下面的测试代码 { QFile ...

  4. ring3下利用WMI监视进程创建(vc版)

    #include "stdafx.h" #define _WIN32_DCOM #include <iostream> using namespace std; #in ...

  5. c# 叫号小程序

    写个叫号的小demo 长相如下 代码如下 using System; using System.Collections.Generic; using System.ComponentModel; us ...

  6. 使用 docker 搭建 nginx+php-fpm 环境 (两个独立镜像)

    :first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdow ...

  7. Android-小小设置永久解决程序因为未捕获异常而异常终止的问题

    (一) 前言各位亲爱的午饭童鞋,是不是经常因为自己的程序中出现未层捕获的异常导致程序异常终止而痛苦不已?嗯,是的.. 但是,大家不要怕,今天给大家分享一个东东可以解决大家这种困扰,吼吼! (二) Un ...

  8. Java---使用EWS 写个ExchangeMailUtil

    依赖包: commons-httpclient-3.1.jar commons-codec-1.10.jar commons-logging-1.2.jar jcifs-1.3.17.jar 代码示例 ...

  9. mybatis以及预编译如何防止SQL注入

    SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中(例如,为了转储数据库内容给攻击者).[摘自] SQL injection - Wikipedia SQL ...

  10. CSS中属性的详细运用(新手必看)

    =不同的浏览器有不同的默认字体大小font-size 这里以谷歌浏览器为准字体大小为10px   (其他浏览器是12px) 1.这里强调一个备注:属性继承 a 是特殊的,要改变a里面的颜色,必须在它后 ...