开发者社区> 我爱的人玲> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

网路文件共享服务原理_学习笔记

简介: 实际需求和局域网内解决方案 SMABNFSFTP DAS NAS SAN 1、FTP 协议(File Transfer Protocol 文件传输协议) FTP报文格式 FTP有2种工作模式: 分为主动模式和被动模式,基于服务器角度而言 主动模式(port style): ...
+关注继续查看

实际需求和局域网内解决方案

SMAB
NFS
FTP

DAS NAS SAN

1、FTP 协议(File Transfer Protocol 文件传输协议)

FTP报文格式

FTP有2种工作模式:

分为主动模式和被动模式,基于服务器角度而言
主动模式(port style):
    命令:客户端:随机端口port1----> 服务器端:21
    数据:客户端:随机端口port2<—-------> 服务器端:20

客户端通过发送命令比如get,ls,等命令告诉服务器端需要访问的资源和操作等,然后客户端是以主动模式连接的服务器,客户端在发送get等命令后,还会告诉客户端这边的数据接收随机端口是多少,然后服务器通过20主动去发起tcp连接请求,然后建立数据连接后发送数据给客户端。
这样子存在的问题就是防火墙一般是对入方向的数据进行控制,因为服务器端的20并不是监听端口,所以当防火墙发现有往服务器20端口发送的报文就会拒绝,因此当windows去连接阿里云主机的时候需要对dport=20的数据进行放行。

被动模式(passive  style):
    命令: 客户端:随机端口port3-------> 服务器端:21
    数据: 客户端:随机端口port4<-------> 服务器端:随机端口port5

被动模式就是客户端发起命令比如get,我要获取数据了,要开启数据链接了,我是被动模式链接的服务器,服务器说我知道了,然后发送了一个响应报文告诉客户端你连这个端口就好了(还不如说你就连20就好了,我还是不知道为啥子要这么设计呢?,一个进程同时能接受用户的请求数,不能如80那样去,通过主进程调度,通过子进程或子线程的方式来响应,所以使用随机端口建立新的连接请求。这就是被动模式的原因,),然后客户端就向此dport5发送tcp连接请求,然后获取数据。这边就比较那啥了,因为客户端防火墙会开放ftp客户端的会话,所以没啥影响,服务器端的防火墙应该也能够识别这个是本地ftp服务自己的端口放行放行,才行。但是设置这种模式有啥好处就不得而知了,而且ftp独有的2个连接也不知孰好孰坏,反正就服务器而言,主动发起tcp请求,还是被动接受客户端发来的tcp请求,只要能传输数据就好了不是。

被动服务器端口port5为协商结果,
227 Entering Passive Mode (host_ip,xx,yy)
服务器数据端口为:xx*256+yy

linux默认是用被动模式,windows默认是用的是主动模式

实现工具

Server:常见的服务器端软件

windows:Serv-U,IIS

Serv-U多平台,可用于Linux,多用于windows    [https://www.serv-u.com/]

linux:wu-ftp(最早的ftp实现工具),pure-ftpd,proftpd,vsftpd

Linux下几款ftp软件的分析参看:[http://blog.chinaunix.net/uid-8874157-id-3729247.html]

proftpd更专业,功能强大

pure-ftpd更简单,部署简单

vsftpd更安全,性能好

Client:常见的客户端端软件

各种浏览器

windows:FileZilla,tftpd32

FileZilla多平台,多用于windows  [https://filezilla-project.org/]

linux:ftp,lftp,lftpget,wget,curl

ftp:软件包ftp

lftp和lftpget:软件包lftp

wget:软件包wget

状态码

1XX:信息 125:数据连接打开
2XX:成功类状态 200:命令OK 230:登录成功
3XX:补充类 331:用户名OK
4XX:客户端错误 425:不能打开数据连接
5XX:服务器错误 530:不能登录

用户账号

匿名用户
系统用户
虚拟用户
共享哪些文件资源
用户能够对这些文件资源进行什么的操作权限。如何对用户进行认证

nss:名称解析框架

/lib64/libnss
/usr/lib64/libnss

/etc/nsswitch.conf

pam:可插入认证模块

/lib64/security/pam
/etc/pam.d/

数据传输安全

sftp:ssh提供的基于ssh的协议的ftp

ftps:基于ssl/tls的ftp

2、RPC协议

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux学习笔记 23(Samba文件共享服务)
1、 Sa文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。2、 smaba服务主要有两个程序smb:提供对服务器中文件的共享访问,监听TCP 139端口nmb:提供基于netbios主机名称的解析,监听UDP 137、138端口3、 程序目录: /usr/lib/systemd/system/smb.service (Rhel7) 或 /etc/init.d/sm
73 0
json 文件的读取与储存| 学习笔记
快速学习 json 文件的读取与储存
90 0
Jsp 的原理|学习笔记
快速学习 Jsp 的原理
25 0
上传文件到服务器 | 学习笔记
快速学习上传文件到服务器。
110 0
Linux 学习笔记_12_文件共享服务_2_FTP应用--vsftpd
Wu-FTP:古老,配置复杂 Proftp:功能强大 vsftp: 安全,高速,稳定【系统默认的FTP软件】 VSFTP服务器配置 启动:/etc/rc.
771 0
C学习笔记(1)-结构体、预处理与多文件结构程序设计
一、结构体的定义与使用 #include //定义结构体(类似模板) typedef struct { char name[50]; int age; char address[100]; } nvgui; void main() { nvgui ...
766 0
+关注
我爱的人玲
不知说什么
53
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载