德国世界杯_2012年世界杯 - fyycdq.com

德国世界杯_2012年世界杯 - fyycdq.com

被动模式ftp能连接,但是不能上传文件

问题:

在本地往ftp服务器上传文件成功(需要跳板机)。测试环境只能连接ftp,可以切换目录,上传文件却超时。

ftp使用的是21端口

测试环境中,在客户端 telnet ftp服务端的21端口是通的。

原因:

因为使用的是被动模式

参考资料:主动和被动模式https://www.codenong.com/cs106853176/

以上关于主动和被动FTP的解释,可以简单概括为以下两点:

1、主动FTP:

命令连接:客户端 >1024端口 -> 服务器 21端口

数据连接:客户端 >1024端口 <- 服务器 20端口

2、被动FTP:

命令连接:客户端 >1024端口 -> 服务器 21端口

数据连接:客户端 >1024端口 -> 服务器 >1024端口

客户端使用大于1024的随机端口访问服务端的21端口,网络是通的,所以可以建立连接

当传输文件时,需要客户端访问服务端的大于1024的随机端口

因为环境限制,服务端并不是所有端口都对该客户端开放,所以传输文件失败

参考资料:https://blog.csdn.net/xurening/article/details/125097368

咨询了网络组同事,ftp的服务器不允许开放所有端口给该客户端

所以设置了2个参数限制了端口范围(端口尽量大一点,避免被占用。端口数量需要考虑ftp的并发量,我这里是测试环境,所以随意设置)

在etc/vsftpd/vsftpd.conf 文件里添加2个参数并重启ftp

pasv_min_port=40071 #pasv连接模式时的最小端口

pasv_max_port=40099 #pasv连接模式时的最大端口

这样客户端那边只需要打通客户端到服务端的40071-40099端口就可以正常传输文件了。