设为首页 收藏本站
查看: 1486|回复: 0

[经验分享] ftp协议基础

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-7 08:40:18 | 显示全部楼层 |阅读模式
文件共享服务
ftp:应用层,可以跨平台,但对数据的编辑难以实现;
nfs(Sun):内核,跨平台困难;
samba:跨平台,在Linux或Unix实现CIFS(SMB)协议--即Unix通用文件系统协议;

现有的三类存储模型
DNS:直接附加存储,例如机箱内的硬盘;
NAS:网络附加存储,通过网络文件服务器提供文件级别的共享存储,工作于应用空间,nfs和samba的CIFS就是NAS的实现;
SAN:网络附加存储,通过网络文件服务器提供块级别的共享存储,工作于内核空间;

ftp:Flie Transfer Protocol,文件传输协议

基础知识点

应用层协议
有多个连接,默认刚启用时监听于21/tcp,基于socket完成跨主机通信

C/S架构
Server:
wu-ftpd(华盛顿大学研发),proftpd,pureftp,vsftp,ServU
Client:
ftp,lftp,lftpget,wget,curl,filezilla(Windows、Linux),gftp(Linux GUI),flashfxp(Windows),cuteftp(Windows)

响应码
1xx:提示信息
2xx:成功类状态码
3xx:提示用户需进一步提供补充类信息的状态码
4xx:客户端错误
5xx:服务端错误
详见最下示例图

用户认证
虚拟用户:仅用于访问某种特定服务中的资源
nsswitch
network  server switch,网络名称转换,是一种名称解析框架
配置文件:/etc/nsswitch.conf
模块:/lib64/libnss*,/usr/lib64/libnss*
pam
pluggable authentication module,插入式认证模块,是一种用户认证框架
配置文件:/etc/pam.conf,/etc/pam.d/*
模块:/lib64/security/
wKiom1VJ3XCCZcANAAFzdSshkiQ529.jpg
系统用户
匿名用户

ftp服务器的两种数据连接模式
命令连接
传输文件管理类命令,完成整个数据的发送控制;持久连接,直到用户终止才拆除;
数据连接
传输用户请求的数据;非持久连接,每次传输数据前建立,传输完成后连接自动拆除

示例说明:用户要到ftp服务器上下载某个文件

wKioL1VJ3wXDXXApAAEgA54zrvM730.jpg
数据传输格式
支持文本传输和二进制传输,通常基于数据原生编码格式选择传输格式

数据传输模式
主动:由服务器创建连接
命令连接:
Client:50000 -->Server:21
数据连接:
Server:20/tcp -->Client:50000+1
客户端用一个随机端口(如50000)向服务器的21/tcp端口发起命令连接,连接成功后,服务器用(21-1)/tcp端口向客户端的随机端口(50000-1,若被占用就50000-2)主动发起数据连接,此即主动模式
由于客户端大多装有防火墙,服务器主动建立的数据连接会被防火墙阻挡,由此催生了被动连接。

被动:由客户端创建连接
命令连接:
Client:50000 -->Server:21
121,23:121×256+23
数据连接:
Client:50000+1--> Server:随即端口
当服务器接收到客户端的命令连接后立即启动一个子进程,该子进程监听于一个随机端口;然后服务器通过命令连接通知客户端该子进程及其监听端口号(如121,23),从而客户端即可向此端口发起主动的数据连接,详见下示例图。
wKioL1VJ3yCAhavDAAFG0GzL-TI024.jpg
服务器防火墙有连接追踪(connectiontrack)功能,可以识别与客户端发起的命令连接相关的数据连接,从而对其开放相应的端口

示例图
wKiom1VJ3ciwkLyWAAEjmMpdky8795.jpg

ftp和lftp命令
使用lftp命令连接ftp服务器时,匿名用户会直接登录
要想使用特定用户登录,需用到以下命令:
lftp -u USERNAME[,PASSWORD] ftpIP
wKioL1VJ30iiEUz4AAD1wjFjkvM574.jpg

lftp支持断点续传和多线程下载,依赖于axel工具,需编译安装
1、下载源码包
wKiom1VJ3fGx1kZxAARMtHovKMk803.jpg

2、编译安装,生成axel工具
wKioL1VJ33XRq5I4AARiDzRJFIw495.jpg

3、复制到/bin目录下即可使用
wKiom1VJ3hSR0H5GAAGTZyjAHXE272.jpg

4、axel语法格式
-n:指明启用的下载线程数
-o:指明下载文件的保存位置
最后指明下载资源的路径

补充
ftp协议是明文的,出于安全考虑,可使用下列协议代替
ftps:基于SSL
sftp:基于SSH


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-64442-1-1.html 上篇帖子: vsftp服务配置及应用 下篇帖子: FTP基本工作原理,以及vsftpd虚拟用户的实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表