FTP服务器
一、FTP服务
什么是FTP协议?
File Transfer Protocol文件传输协议是互联网中使用最广泛的文件传输协议。FTP使用交互式的访问,允许客户指定文件的类型和格式(比如知名是否使用ASCLL码),并允许文件具有存取权限
文件传输协议有基于TCP的FTP和基于UDP的简单文件传输协议TFTP。
FTP的传输模式
针对传输的文件类型不同,FTP可以采用不同的传输模式:
ASCLL模式:传输文本文件时会对文本内容进行编码方式转换,提高传输效率。当传输网络设备配置文件,日志文件时推荐使用该模式。
Binary模式:传输非文本文件,如图片,可执行程序等,以二进制直接传输原始文件。
ftp传输的弊端
1.FTP不具备安全性:普通的FTP没有针对数据传输中或存储时的本地加密,潜在地暴漏了保密信息,通过FTP发送的用户名和密码,也暴露在外。因此,可以通过任意上百个FTP客户端访问FTP服务器
2.FTP缺少足够的管控功能:比如数据审核功能,不能保证发送的数据是否合规,数据流向不可控,存在数据泄露风险。
3.FTP追溯功能弱
4.FTP不可靠:在传输过程中,尤其是传输大规模文件时,容易出现错误传输,文件丢失等
FTP通信接口:
21端口:控制连接
- FTP服务端监听21端口等待建立连接,只有身份验证通过,才可顺利建立连接
- 在FTP连接期间,控制连接始终保持连接状态,在数据连接存在期间,控制连接必须存在,一旦连接断开,数据连接自动关闭
20端口:数据连接
- FTP服务端监听20端口来等待数据连接
- 数据连接依赖于控制连接
FTP工作过程
1.客户端向服务器发送申请建立连接
2.服务器21端口监听到客户端请求,做出响应,建立会话连接
3.客户端程序打开一个控制端口,连接到FTP服务器的21端口
4.需要传输数据时,FTP客户端打开一个数据端口,连接到FTP服务器的21端口,文件传输完毕后断开会话连接,释放窗口
5.当空闲时间超过规定后,FTP会话自动终止
二、客户端程序
Linux:ftp,lftp
lftp默认以匿名用户方式访问,可以批量进行文件传输,而且可以下载目录。
ftp以“用户名+密码”的方式访问
Windows:Xftp,Chrome,Firefox
三、主动模式和被动模式
模式是从服务器角度来看的,FTP服务器主动与客户端建立连接就是主动模式,客户端主动连接服务器就是被动模式。
FTP服务器默认为被动模式,主动模式下可能被客户端防火墙拦截。
主动模式:
由客户端向服务器端的TCP 21号端口发起TCP三次握手,建立控制连接,用户登录认证后客户端通过FTP PORT命令,通知服务器端自身开放端口(大于1024的随机端口),服务器端向客户端的TCP PORT P发起三次握手,建立传输连接,其中服务器端的源端口为20
被动模式
由客户端向服务器端的TCP PORT 21发起TCP三次握手,建立控制连接,用户登录认证后客户端发送PASV命令;服务器端通过ENTER PASV命令告知客户端自身开放端口,由客户端向服务器TCP PORT N发起TCP三次握手,建立传输连接。
四、搭建过程
1.检查服务器环境
关闭防火墙:systemctl stop firewalld;systemctl disable firewalld
关闭selinux:setenforce 0;
设置selinux永久关闭:vim /etc/selinuxconfig 修改SELINUX=disabled
2.安装软件
yum install -y vsftpd
3.开启服务并设置开机自启
systemctl start vsftpd
systemctl enable vsftpd
4.本机访问服务器测试
ftp://本机ip
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?