建设银行河南分行网站,岳阳网站开发网站运营,万网建网站流程,深圳网站建设开发需要多少钱文章目录前言一、FTP概述二、FTP工作原理2.1 FTP的作用与模式2.2 FTP工作流程2.2.1 主动模式#xff08;PORT模式#xff09;2.2.2 被动模式#xff08;PASV模式#xff09;2.2.3 对比表格2.2.4 如何选择#xff1f;2.2.5 补充#xff1a;现代FTP服务器的常见做法三、FTP…
文章目录前言一、FTP概述二、FTP工作原理2.1 FTP的作用与模式2.2 FTP工作流程2.2.1 主动模式PORT模式2.2.2 被动模式PASV模式2.2.3 对比表格2.2.4 如何选择2.2.5 补充现代FTP服务器的常见做法三、FTP服务搭建与配置3.1 安装前准备3.1.1 关闭防火墙与SELinux3.1.2 安装VSFTPD3.1.3 备份配置文件3.2 匿名用户配置3.2.1 修改配置文件3.2.2 设置目录权限3.2.3 匿名访问测试3.3 本地用户配置3.3.1 修改配置文件3.3.2 用户登录测试3.3.2.1 测试上传下载3.3.3 修改默认根目录3.3.4 用户列表控制四、总结前言
FTPFile Transfer Protocol作为经典的文件传输协议至今仍在许多场景中发挥着重要作用。无论是网站维护、数据备份还是内部文件共享FTP都因其简单、稳定而备受青睐。本文基于教学实践系统梳理了FTP的基本概念、工作原理、服务搭建与配置方法旨在帮助读者快速掌握FTP服务的核心知识与实操技能。 一、FTP概述
FTPFile Transfer Protocol文件传输协议是一种典型的C/S架构的应用层协议通过服务端和客户端软件共同实现文件传输功能。FTP使用TCP协议端口20和21确保连接可靠且面向连接。
21端口用于传输控制指令。20端口用于传输数据。
FTP支持两种传输模式
主动模式Standard/Active客户端发送PORT命令服务器主动连接客户端进行数据传输。被动模式Passive/PASV客户端发送PASV命令服务器开放随机端口等待客户端连接。 二、FTP工作原理
2.1 FTP的作用与模式
FTP用于在Internet上传送文件常见服务端软件包括
WindowsServ-U、FileZilla ServerLinuxVSFTPVery Secure FTP、ProFTPD
FTP使用TCP协议的20和21端口进行通信
20端口用于数据传输21端口用于控制命令传输。
2.2 FTP工作流程
FTP会话包含两个通道控制通道和数据传输通道。
2.2.1 主动模式PORT模式
控制连接由客户端Client向服务器的21端口发起。数据连接由服务器Server向客户端的指定端口发起。 客户端连接到服务器的21端口发送用户名和密码客户端开放一个随机高位端口1024以上并通过PORT命令告知服务器服务器使用20端口主动连接客户端的指定端口进行数据传输。 优点 对服务器网络环境要求低服务器只需要开放21控制和20数据端口即可正常工作。客户端负责接收来自外部的连接这在纯服务器内网环境中是优点。 缺点 客户端防火墙/NAT不友好这是最大的缺点。在现代网络环境中客户端通常位于防火墙或NAT路由器之后。 问题当服务器外网尝试主动连接到客户端告知的那个内部随机端口1025时客户端的防火墙会认为这是一个未经请求的入站连接从而将其阻断导致连接失败。现象客户端能列出目录LIST 命令使用控制连接但无法传输数据RETR STOR 命令需要数据连接。 安全性较差服务器需要主动向外连接从安全策略上讲这意味着服务器需要信任客户端增加了潜在的攻击面。
2.2.2 被动模式PASV模式 控制连接由客户端向服务器的21端口发起与主动模式相同。 数据连接由客户端向服务器的一个随机端口发起。 工作过程 客户端连接到服务器的21端口发送用户名和密码客户端发送PASV命令服务器开放一个随机高位端口1024以上并告知客户端客户端连接该端口进行数据传输。 优点 对客户端防火墙/NAT友好这是被动模式成为现代默认选择的主要原因。连接建立的方向与HTTP等普通网络请求一致都是客户端主动“出站”连接。客户端的防火墙只会检查出站连接通常都会放行因此成功率高。客户端安全性更好客户端不再需要开放大量随机端口来接收外部入站连接减少了暴露给外部的风险。 缺点 服务器防火墙/NAT配置复杂 问题服务器需要在防火墙上开放一个范围的高位随机端口例如 30000-35000而不仅仅是一个20端口并将这些端口转发到FTP服务器上。这增加了服务器端的维护复杂度和安全风险开放端口范围越大潜在风险越高。现象服务器能正常接受控制连接但在建立数据连接时失败。 对服务器端网络环境要求高如果服务器位于NAT网关后面配置会非常麻烦需要将控制端口和数据端口范围都正确地进行NAT映射。 注主动与被动是相对于服务器而言的。服务器主动连接客户端为主动模式客户端连接服务器为被动模式。 2.2.3 对比表格
特性主动模式 (Active)被动模式 (Passive)数据连接发起方服务器客户端服务器端口控制21 数据20控制21数据一个随机高位端口客户端端口控制随机 - 21数据随机 - 20控制随机 - 21数据随机 - 服务器随机端口防火墙友好性对客户端防火墙极不友好对客户端防火墙非常友好适用场景客户端没有防火墙如机房内部网络现代通用场景客户端在NAT/防火墙后如家庭/公司网络服务器配置简单只需开放20、21端口复杂需开放21端口一个随机端口范围安全性较差服务器需主动向外连接较好连接方向符合常规出站请求
2.2.4 如何选择
绝大多数情况下应使用被动模式PASV。因为现在的用户几乎都处于路由器NAT和防火墙的保护之下被动模式是保证FTP可用的唯一选择。只有在你知道客户端网络环境非常开放没有防火墙且追求服务器简单配置时才考虑使用主动模式。例如在两个内部服务器之间进行数据传输。
2.2.5 补充现代FTP服务器的常见做法
为了解决被动模式的服务器端防火墙问题现代FTP服务器软件如 vsftpd, FileZilla Server通常提供以下配置选项
指定被动模式端口范围在服务器配置中限定一个较小的端口范围如 50000-55000然后在服务器的防火墙中只开放这个特定的端口范围。被动模式外部IP地址如果服务器 behind NAT需要设置 pasv_address 为服务器的公网IP地址这样客户端才能连接到正确的地址。 三、FTP服务搭建与配置
3.1 安装前准备
3.1.1 关闭防火墙与SELinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 03.1.2 安装VSFTPD
yum install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd3.1.3 备份配置文件
cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.bak3.2 匿名用户配置
3.2.1 修改配置文件
编辑 /etc/vsftpd/vsftpd.conf
anonymous_enableYES #开启匿名用户访问。默认已开启
write_enableYES #开放服务器的写权限(若要上传必须开启)。默认已开启
anon_umask022 #设置匿名用户所上传数据的权限掩码(反掩码)。 022--》755
anon_upload_enableYES #允许匿名用户.上传文件。默认已注释需取消注释
anon_mkdir_write_enableYES #允许匿名用户创建(上传)目录。默认已注释需取消注释
anon_other_write_enableYES #允许删除、重命名、覆盖等操作。需添加3.2.2 设置目录权限
chmod 777 /var/ftp/pub/3.2.3 匿名访问测试
在Windows命令行中
ftp 192.168.10.120 #ip为服务端ip
用户名ftp
密码直接回车在Windows的传输过程中需要先进入pub目录否则会因为没有权限而无法上传下载。 3.3 本地用户配置
3.3.1 修改配置文件
编辑 /etc/vsftpd/vsftpd.conf
local_enableYES
anonymous_enableNO
write_enableYES
local_umask077
chroot_local_userYES
allow_writeable_chrootYES注释以下行若存在
# anon_mkdir_write_enableYES
# anon_other_write_enableYES重启服务
systemctl restart vsftpd3.3.2 用户登录测试
ftp 192.168.10.12
用户名zhangsan
密码输入对应密码或使用浏览器访问
ftp://zhangsan192.168.10.1203.3.2.1 测试上传下载
ftp pwd #匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp ls #查看当前目录
ftp cd pub #需要进去才能有效因为仅设置了/var/ftp/pub目录的777权限
ftp get文件名 #下载文件到当前Windows本地目录
ftp put 文件名 #上传文件到ftp目录
ftp quit #退出3.3.3 修改默认根目录
anon_root/var/www/html # 匿名用户根目录
local_root/var/www/html # 本地用户根目录3.3.4 用户列表控制
编辑 /etc/vsftpd/user_list添加用户
zhangsan编辑 vsftpd.conf
userlist_enableYES
userlist_denyNO # 设置为白名单模式四、总结
FTP作为一种经典的文件传输协议在内部网络和特定场景中仍有广泛应用。通过本文的介绍我们可以了解到
FTP的两种工作模式主动/被动及其区别VSFTPD的安装与基本配置方法如何配置匿名访问和本地用户访问如何通过用户列表实现黑白名单控制。
掌握FTP服务的搭建与配置不仅有助于理解传统网络服务的运作方式也能为实际工作中的文件传输需求提供可靠解决方案。尽管如今SFTP、HTTP等方式逐渐普及FTP仍在某些环境中保持着不可替代的地位。 最后希望大家多多实践夯实基础聚沙成塔与君共勉之