Linux之文件共享服务FTP与NFS

文件共享服务FTP介绍

  • FTP(File Transfet Protocol):文件传输协议

  • FTP是一种在互联网中基于TCP协议端到端的数据传输协议

  • 基于C/S架构,默认使用20、21号端口

  • 端口20(数据端口)用于数据传输

  • 端口21(命令端口)用于接收客户端发出的相关FTP命令

FTP工作模式

  • 主动模式:FTP客户端从本机的非特殊端口(>1023)连接FTP服务器的命令端口21,服务端通过本地的20号端口主动向客户端的随机端口发起连接请求,开始传输数据

  • 被动模式:FTP客户端通过向FTP服务器发送PASV命令进入被动模式,FTP服务器会另开一个随机端口,客户端主动连接到随机端口后,开始传输数据

  • 可以实现ftp功能的软件:

    • WU-ftpd:华盛顿大学研发的一款FTP软件

    • proftpd:专业的FTP软件

    • pureftp:纯粹的FTP软件

    • vsftpd:非常安全的ftp软件

    • ServU:windows里的一款FTP软件

    • FileZilla:windows里的一款FTP软件,Linux系统也可以使用

  • 客户端访问ftp服务器工具:

    • ftp

    • lftp、lftpget

    • wget

    • curl

    • FileZilla:windows客户端工具,可从软件商店直接下载

    • 浏览器

vsftpd介绍

  • vsftpd(very secure ftp daemon)非常安全的FTP守护进程

  • 是一款运行在Linux操作系统上开源且免费FTP服务程序

vsftpd用户访问模式

  • 本地用户:用户需要在服务端存在

  • 匿名用户:不需要用户认证

  • 虚拟用户:数据库映射机制

vsftpd服务相关参数

  • /var/ftp #匿名用户共享目录

  • /etc/vsftpd #配置文件所在目录

  • /etc/vsftpd/vsftpd.conf #主配置文件

  • /usr/sbin/vsftpd #主程序文件

  • /etc/vsftpd/ftpusers #黑名单

  • /etc/vsftpd/user_list #控制名单(配置文件控制白名单与黑名单)

  • /var/log/xferlog #日志目录

vsftpd匿名用户模式

#修改FTP服务端主机名
[root@ftp-server ~]# hostnamectl set-hostname ftp-server
​
#安装软件
[root@ftp-server ~]# yum -y install vsftpd
​
#启动服务
[root@ftp-server ~]# systemctl start vsftpd
​
#查看服务运行状态
[root@ftp-server ~]# systemctl status vsftpd
​
#客户端下载连接工具
[root@client ~]# yum -y install ftp lftp
​
#客户端访问FTP服务端
[root@client ~]# ftp 192.168.0.80
[root@client ~]# lftp 192.168.0.80
​
#匿名用户权限介绍
[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf 
...
12 anonymous_enable=YES          #是否允许匿名用户访问,yes允许,no不允许
29 #anon_upload_enable=YES       #是否允许匿名用户上传,yes允许,no不允许
33 #anon_mkdir_write_enable=YES  #是否允许匿名用户创建目录,yes允许,no不允许
...
anon_other_write_enable=yes     #是否允许匿名用户写权限,yes允许,no不允许(手动添加)

vsftpd本地用户模式

#创建本地用户
[root@localhost ~]# useradd ftpuser
[root@localhost ~]# passwd ftpuser
​
#修改主配置文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
...
 12 anonymous_enable=NO      #关闭匿名用户访问
 16 local_enable=YES         #是否允许本地用户访问,yes允许,no不允许
 19 write_enable=YES         #是否允许本地用户有写权限,yes允许,no不允许
 23 local_umask=022          #本地用户上传文件默认权限为755
 37 dirmessage_enable=YES    #当用户第一次进入新目录时显示消息(了解)
 40 xferlog_enable=YES       #启动xferlog日志记录,该文件记录传输数据
 53 #xferlog_file=/var/log/xferlog  #日志文件位置,需删除注释
 43 connect_from_port_20=YES     #启用数据传输端口
 49 #chown_username=whoever      #改变上传文件的属主与属组
 60 #idle_session_timeout=600    #客户端连接超时时间
 63 #data_connection_timeout=120 #数据连接超时时间
101 chroot_local_user=YES   #是否允许本地用户切换目录,yes不允许,no允许
115 listen=NO  #是否开启监听IPV4的连接,默认没开启,改为yes
126 pam_service_name=vsftpd #启用pam认证的文件名称,路径为/etc/pam.d/vsftpd
127 userlist_enable=YES     #是否启用控制名单文件,yes启用,no不启用,文件为/etc/vsftpd/user_list,如果启用控制名单功能,需要指定该文件为黑名单|白名单
128 userlist_deny=no       #yes拒绝user_list文件中用户登录ftp服务器(黑名单),no允许登录(白名单)
max_clients=    #限制最大并发连接数量

vsftpd虚拟用户模式

需要数据库支持!

NFS网络文件系统

  • NFS(Network File System)网络文件系统 , 是一种基于TCP/UDP传输协议的文件共享服务

  • NFS基于C/S架构,服务端启用协议将文件共享到网络上,然后允许本地NFS客户端通过网络挂载服务端共享的文件。

  • NFS基于RPC 远程过程调用机制, 支持在异构系统之间数据的传送 , RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作

  • NFS协议:端口号 2049

  • 软件包:nfs-utils

  • 服务名:nfs

  • 配置文件:/etc/exports

  • RPC协议:端口号 111

  • 软件包:rpcbind

  • 服务名:rpcbind

  • NFS服务端配置

#安装nfs服务端软件包
[root@localhost ~]# yum -y install nfs-utils
​
#启动nfs服务
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl enable nfs
​
#查看服务端口信息
[root@localhost ~]# ss -anptul | grep 2049
udp    UNCONN     0      0         *:2049                  *:*                  
udp    UNCONN     0      0        :::2049                 :::*                  
tcp    LISTEN     0      64        *:2049                  *:*                  
tcp    LISTEN     0      64       :::2049                 :::* 
​
#查看RPC服务端口信息
[root@localhost ~]# ss -anptul | grep rpcbind
udp    UNCONN     0      0         *:111 
tcp    LISTEN     0      128       *:111 
​
#创建共享目录
[root@localhost ~]# mkdir /nfs-upload
​
#修改nfs主配置文件:/etc/exports
[root@localhost ~]# vim /etc/exports
/nfs-upload       192.168.0.27(rw)   192.168.0.28(ro)
/test 192.168.0.0/24(rw)  #共享给指定网段
共享文件夹路径  客户机地址(权限)      客户机地址(权限)  
​
#重启nfs服务
[root@localhost ~]# systemctl restart nfs

  • 客户端访问NFS

#列出有哪些NFS共享资源:showmount -e  服务器地址,如果客户端没有该命令需安装nfs-utils
[root@client ~]# showmount -e 192.168.0.26
Export list for 192.168.0.26:
/upload 192.168.0.28,192.168.0.27
​
#手动挂载NFS共享:mount  
[root@client ~]# mkdir /opt/upload
[root@client ~]# mount 192.168.0.26:/upload /opt/upload
                        服务器地址:文件夹路径  挂载点
​
[root@client ~]# df -h
文件系统                容量  已用  可用    已用% 挂载点
...
192.168.0.26:/upload   17G  1.2G   16G    7% /opt/upload
​
#客户端验证是否可以是否共享目录
[root@client ~]# cd /opt/upload/
[root@client upload]# touch xx.txt
touch: 无法创建"xx.txt": 权限不够
#解释:默认客户端是以nfs用户身份访问远端的nfs服务器,如果nfs服务端共享的目录属主为root用户,那客户端默认是没有写权限
​
#服务端开放允许以root身份访问
[root@localhost ~]# vim /etc/exports
/upload 192.168.0.27(no_root_squash,rw) 192.168.0.28(ro)
解释:no_root_squash 不挤压root用户身份(允许以root身份访问)
​
[root@localhost ~]# systemctl restart nfs
​
#客户端验证
[root@client upload]# touch xx.txt
[root@client upload]# ls
xx.txt
​
#为普通用户授权访问nfs共享目录(通过ACL实现,nfs通过用户UID辨别用户身份)
[root@localhost ~]# setfacl -m u:lisi:rwx /upload
​
#设置SBIT权限
[root@localhost ~]# chmod o+t /upload/
​
#客户端lisi用户验证授权
[lisi@client upload]$ touch lisi.txt
[lisi@client upload]$ ls
lisi.txt  xx.txt
​
[lisi@client upload]$ rm -rf xx.txt 
rm: 无法删除"xx.txt": 不允许的操作
​
#客户端实现开机挂载配置:/etc/fstab
[root@localhost]# vim /etc/fstab 
192.168.0.26:/xxx  /mnt/xxx nfs     defaults,_netdev   0 0
服务器地址:文件夹路径   挂载点  文件系统   defaults,_netdev   0 0 
#解释:_netdev:指定nfs是网络设备

NAS(网络附加存储)存储模式中的文件共享服务:

  • samba文件共享服务:支持跨平台

  • FTP文件共享服务:支持跨平台

  • NFS文件共享服务:支持跨平台

DAS存储(直连存储):直接附加在电脑主板上的硬盘

SAN存储(存储区域网络):块级别存储,把自己电脑上的硬盘共享给其他主机

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: FTPNFS和Samba都是用于文件共享的协议,但它们的实现方式和适用场景有所不同。 FTP是一种基于TCP/IP协议的文件传输协议,用于在网络上传输文件FTP服务器可以在Linux系统上使用,允许用户通过FTP客户端上传和下载文件NFS是一种网络文件系统协议,用于在网络上共享文件系统。它允许多个计算机通过网络访问同一个文件系统,就像它们在本地访问一样。NFSLinux系统上使用较为广泛,特别是在大型网络环境中。 Samba是一种开放源代码的软件套件,用于在Linux系统上实现Windows文件共享服务。它允许Linux系统作为文件服务器,与Windows系统进行文件共享。Samba还支持其他协议,如FTPNFS。 总的来说,FTP适用于简单的文件传输,NFS适用于多个计算机访问同一个文件系统,而Samba适用于Linux系统与Windows系统之间的文件共享。 ### 回答2: FTPNFS 和 Samba 都是用来实现文件共享的协议,但是它们在实现上有一些不同。 FTP(File Transfer Protocol)是一个用来传输文件的协议,通常被用来将文件从一个计算机上传到另一个计算机。它使用客户端-服务器模型,即客户端从服务器端下载或上传文件。使用 FTP 必须有一个 FTP 服务器,并且需要使用 FTP 客户端才能访问服务器。FTP 是基于 TCP/IP 协议的,支持用户名和密码验证,可以使用加密的 SSL 层进行安全传输。 NFS(Network File System)是一种分布式文件系统,允许不同的计算机通过网络共享文件。它基于客户端-服务器模型,其中服务器端负责管理和存储文件,客户端可以通过网络访问这些文件NFS 是 UNIX 和 Linux 等操作系统之间共享文件的首选方式之一。使用 NFS 时,需要在服务器端配置 NFS 服务器,并在客户端上安装 NFS 客户端,使用 NFS文件共享不需要用户名和密码认证。 Samba 是一种开放源代码软件,用于在 Linux 和 Unix 系统上实现 SMB/CIFS 协议,它可以使 Linux 和 Unix 系统与 Windows 系统间共享文件和打印机。Samba 允许 Linux 和 Unix 系统作为 SMB/CIFS 服务器或客户端使用,在 Linux 系统上可以使用 Samba 服务器来共享文件夹和打印机,也可以使用 Samba 客户端来连接 Windows 共享资源。Samba 支持基于用户身份验证的文件和打印机共享,可以为不同的用户提供不同级别的访问权限。 总体而言,在轻量级的文件共享中,FTP 是一个不错的选择,但在文件系统级别的共享中,NFS 是更好的选择,而在 Linux 和 Windows 平台之间的文件共享方案中,Samba 可以充分发挥其优势。这三个协议每个都有其优点和应用场景,使用时应根据具体需求进行选择。 ### 回答3: ftpnfs和samba都是在Linux系统中用于实现文件共享服务,但具体实现方式和应用场景有所不同。 ftp,全称为文件传输协议(File Transfer Protocol),是一种标准化的协议,用于将文件从一个主机传送到另一个主机。它可以通过命令行或者ftp客户端进行操作,是一种跨平台的文件传输方法。 nfs,全称为网络文件系统(Network File System),是Linux系统中一种常见的文件共享方式,它可以让计算机通过网络访问到另一台计算机上的共享文件。它也可以通过命令行或者图形化工具进行操作,主要应用于局域网内的文件共享。 samba,是一种开源软件,用于在Linux系统上与Windows系统之间共享文件和打印机。它支持各种Windows文件共享协议,包括SMB/CIFS协议,可以让Linux系统与Windows系统无缝交互。 总的来说,ftpnfs和samba都可以用于在Linux系统中实现文件共享,但具体应用场景和操作方式有所不同。ftp是一种跨平台传输方式,适用于需要将文件从一个主机传输到另一个主机的场合;nfs适用于同一局域网内多台计算机之间的文件共享;samba则主要用于Linux系统与Windows系统之间的文件共享

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小禹先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值