
Linux服务器下:FTP主动、被动模式 详解
FTP(File Transfer Protocol)是一种用于在网络上传输文件的协议。在Linux服务器上,FTP可以通过vsftpd等软件实现。
1. FTP主动模式
FTP主动模式是FTP默认的传输模式,该模式下,客户端发起PORT命令告诉服务器自己的数据端口,并监听该端口,服务器通过该端口与客户端交换数据。
具体流程如下:
- 客户端连接服务器的FTP端口(默认为21端口)。
- 客户端发送USER、PASS等命令进行认证。
- 客户端进入主动模式,向服务器发送PORT命令,告诉服务器自己的数据端口。
- 服务器通过数据端口与客户端建立连接。
- 数据传输完成后,断开连接。
主动模式的优点是简单易懂,缺点是容易被防火墙拦截。
2. FTP被动模式
FTP被动模式是为了克服FTP主动模式被防火墙拦截的问题而提出的。在被动模式下,客户端发送PASV命令告诉服务器要进入被动模式,服务器端会打开一个固定的端口等待客户端的连接。
具体流程如下:
- 客户端连接服务器的FTP端口(默认为21端口)。
- 客户端发送USER、PASS等命令进行认证。
- 客户端进入被动模式,向服务器发送PASV命令。
- 服务端随机选取一个端口并告知客户端。
- 客户端通过该端口与服务器建立连接。
- 数据传输完成后,断开连接。
被动模式的优点是可穿越防火墙,缺点是相对于主动模式复杂一些。
3. vsftpd配置
在vsftpd中,主动模式和被动模式的设置都在vsftpd.conf文件中进行。
主动模式配置:
# 禁用被动模式
pasv_enable=NO
# 开启主动模式
port_enable=YES
被动模式配置:
# 开启被动模式
pasv_enable=YES
# 被动模式的连接端口范围
pasv_min_port=60000
pasv_max_port=60005
# 如果服务器在NAT之后,则需要添加以下两行配置
pasv_address=xxx.xxx.xxx.xxx
pasv_addr_resolve=YES
其中,pasv_address和pasv_addr_resolve用于解决服务器处于NAT环境下的问题。
4. 总结
通过本文,我们了解了FTP主动模式和被动模式的原理及配置方式,可以结合实际应用场景选择相应的配置方式,以便更安全、高效地进行文件传输。

© 版权声明
THE END
暂无评论内容