15 Linux之ftp nfs samba 认识和区别

FTP(File Transfer Protocol,文件传输协议),应用层协议,可跨平台。如其名,只能实现文件传输功能,不能实现一些其他的功能,例如文件系统挂载等功能。

NFS(Network File System,网路文件系统),工作在内核模式下的,故难以实现跨平台。由于基于文件系统实现,在linux下可实现挂载使用等功能。

win7已有NFS功能

    

win10暂时还没

    

SMB(Service Message Block,服务消息块协议),能够实现Windows和Linux主机之间的文件共享服务,可实现跨平台,在Linux上实现了CIFS(Common Internet File System)协议。

  1. FTP协议

      1. 工作模式

主动模式:

  1. 客户端请求服务端的21端口先建立命令连接
  2. 服务端响应客户端,并以5000+随机端口与客户端建立数据连接
  3. 开始数据传送
  1. 属于C/S(Client/Server)架构,基于套接字通信。
  2. FTP协议用到2种不同的tcp连接:一是命令连接,用于服务端与客户端命令的传达,监听在tcp/21端口;另一个是数据连接,用来传输数据,监听的端口是随机的。

注:考虑到客户端防火墙很可能将服务端建立连接产生随机的端口拒之门外,故被动模式产生了        被动模式:

  1. 客户端请求服务端的21端口先建立命令连接

  2. 客户端使用5000+随机端口用命令连接请求数据连接
  3. 服务端收到请求后随机产生端口,反馈给客户端。p1 p2
  4. 客户端使用5000+端口与服务端随机端口(p1*256+p2)之间传输数据
  1. 注:被动模式也会存在防火墙问题,但服务端防火墙有连接追踪功能以解决此问题。故被动模式用的较多
  2. 用户认证
  1. 匿名用户:登录名是anonymous,且不须密码
  2. 系统用户:FTP服务端本地用户和密码,默认访问的是用户家目录
  3. 虚拟用户:仅用于访问服务端特定资源。可指定用户文件或数据库来使用。最终会将虚拟用户映射为系统用户,所以默认访问的为系统用户家目录

常见FTP工具

    1. 服务端

      1. Linux端:vsftpd,pureftp....
      2. windows端:SerU,FileZilla-Server...
    2. 客户端
      1. Linux端:ftp,lftp,lftpget,wget,curl...
      2. windows端:FileZilla

NFS协议

  1. RPC(Remote Procedure Call Protocol)远程过程调用协议

    1. 一部分功能由本地程序完成 另一部分功能由远程主机上的函数完成。客户端挂载了nfs服务器的文件系统时,进行一些操作。但该协议是在内核级别上实现的协议,RPC正是处理该问题的协议,它会将客户端的操作的函数调用发送到服务器端,由服务器端执行这些函数调用。
  2. idmapd
    1. 想想这种情形,nfs客户端在挂载文件系统以后,在本地以某用户的身份创建了一个文件,在服务器端这个文件的属主和属组是哪个用户呢?早期是通过NIS(Network Information Services网络信息服务)来解决这个问题的,但是在传输账号和密码时,使用的是明文传输,现在使用LDAP+clbbler来实现的。但是,NFS使用的是idmapd这个服务,有rpc提供,将所有的用户后映射为nfsnobody,但是在访问的时候,还是以本地UID对应的本地用户来使用的。
  3. mounted
    1. NFS是通过什么来控制那些客户端可以访问,那些不可以访问的呢?NFS只支持通过IP来控制客户端,而这个功能是由守护进程mounted来实现的,它监听的端口是半随机的。所谓的半随机指的是,这个随机端口是由rpc服务来决定的,而rpc是通过随机的方式。作用等等同于小区大门保安的作用。
  4. NFS请求过程
    1. 请求过程:当客户端试这去挂载使用nfs共享的文件系统是,客户端首先回去与postmapper(tcp/111)端口去注册使用,此时postmapper会随机分配一个端口给mounted,然后mounted这个守护进程会来验证客户端的合法性,验证通过后,会把请求交给nfs服务,客户端此时可以挂载使用了,用户在创建文件时,会使用到idmapd的守护进程来映射属主。其实idmapd也是有rpc服务提供的,只不过在这里,nfs服务使用到用户映射的功能时,会自动的去调用此守护进程。

SAMBA协议

  1. SMB:Service Message Block

  2. CIFS:Common Internet File System 通用网络文件系统,windows系统之间共享的协议,samba实现了该协议,故可实现windows与linux之间的文件共享服务
  3. 监听的端口:
    1. tcp/137 udp/137 tcp/139 udp/139
    2. 137:是实现NetBIOS协议,实现解析windows之间主机名的解析,实现在windwos的网络邻居可看到的Linux主机名
    3. 139:是实现cifs协议
  4. 交互式数据访问;
    1. smbclient -L HOST -U USERNAME
  5. 获取共享信息后:
    1. smbclient //SERVER/shared_name -U USERNAME
  6. 基于挂载的方式访问;
    1. mount -t cifs //SERVER/shared_name  /mount_point -o uername=USERNAME,pasword=PASSWORD
时间: 2024-10-10 05:13:47

15 Linux之ftp nfs samba 认识和区别的相关文章

Linux之FTP服务器,NFS服务器,SAMBA服务器详解

本文介绍Linux中的三个网络文件共享服务:ftp,nfs,samba FTP服务 File Transfer Protocol 早期的三个应用级协议之一 基于C/S结构 ?双通道协议:数据和命令连接 数据传输格式:二进制(默认)和文本 两种模式:(服务器角度) 主动(PORT style):服务器主动连接 ??? 命令(控制):客户端:随机port ---> 服务器:tcp 21 ????数据:客户端:随机port <---服务器:tcp 20 被动(PASV style):客户端主动连接

在Linux下配置NFS服务器

网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作. 在嵌入式Linux 的开发过程中,开发者需要在Linux 服务器上进行所有的软件开发,交叉编译后,通用FTP 方式将可执行文件下载到嵌入式系统运行,但这种方式不但效率低下,且无法实现在线的调试.因此,可以通过建立NFS,把Linux 服务器上的特定分区共享到待调试的嵌

使用Linux搭建FTP服务器实现文件共享

使用Linux搭建FTP服务器实现文件共享... ---------------- Linux中的文件共享:FTPVSFTPDVSFTPD虚拟用户 FTP可以用在Linux与Linux 和Windows与Linux之间,跨平台使用 Samba可以用在Linux与Linux 和Windows与Linux之间,跨平台使用-----------------林那克斯FTp:File Transfer Protocol 文件传输协议的缩写,是基于网络来传输文件的应用层协议 FTp可以通过网络来传输文件,是

Linux下FTP虚拟账户配置

参考模版/usr/share/doc/vsftpd-2.0.5/EXAMPLE/VIRTUAL_USERS) 1.创建虚拟账户 [[email protected] ~]#yum install db4-utils [[email protected] ~]#vim /etc/vsftpd/vlogin tomcat #账户名称 123456 #密码 jerry #账户名称 654321 #密码 [[email protected] ~]#db_load -T -t hash -f /etc/v

linux系统ftp服务器详解

匿名FTP服务 1.检查并安装vsFTPD软件包在终端窗口输入命令:"rpm –qa|grep vsftpd 命令检查系统是否安装了VsFTPD软件包,如下图所示:如上图所示 vsftpd 软件包并没有安装,可以使用命令 yum install vsftpd –y 进行安装 查看是否已经安装成功使用命令 rpm –qa vsftpd 如上图所示已经成功下载安装了软件包vsftpd VsFTPD在安装时会自动创建FTP系统用户组ftp,和属于该组的FTP系统用户ftp, 该用户的主目录为/var/

初学linux网络服务之samba服务实验

实验拓扑: Linux Client -----RHEL5.9(vmnet1)----------(vmnet1) Win7 Client 实验一:Samba匿名共享 工作组为Tarena 将目录 /usr/src 共享给所有人 共享名设为 tools 允许所有人访问.无需密码验证 访问权限为只读 1.安装软件包 [[email protected] ~]# rpm -q samba-client samba samba-common  //查看安装包 package samba-client

linux的ftp服务器

ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux 进行ftp操作将会非常容易. Linux ftp命令的一般格式如下: $ ftp 主机名/IP 其中"主机名/IP"是所要连接的远程机的主机名或IP地址.在命令行中,主机名属于选项,如果指定主机名,ftp将试图与远程机的ftp服务程序进行连接:如果没有指定主机名,ftp将给出提示符,等待用户输入命

【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)

RAC在LINUX上使用NFS安装前准备(六) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体系的总结,一则进行回顾复习,另则便于查询使用.本图文文档亦源于此.阅读Oracle RAC安装与使用教程前,笔者先对这篇文章整体构思和形成进行梳理.由于阅读者知识储备层次不同,我将从Oracle RAC安装前的准备与规划开始进行整体介绍安装部署Oracle RAC.始于唐博士指导,对数据库集群进

Linux 下 FTP虚拟用户的使用配置

Linux下FTP虚拟用户的使用配置 Linux的FTP服务支持3种用户: 1.匿名帐户 2.本地帐户 3.虚拟用户 为什么要使用虚拟用户: 匿名帐户可以很好的保证FTP服务器的安全性,但是,对匿名用户的权限管理不够灵活.如果想对访问FTP的帐户给予更多的权限,就可以用本地帐户来实现.但是,本地帐户默认情况下是可以登陆Linux系统的,这样对Linux系统来说是一个安全隐患.那么怎么能在灵活的赋予FTP用户权限的前提下,保证FTP服务器乃至整个Linux系统的安全呢?使用虚拟用户就是一种解决办法