FTP被动模式配置
非云服务器或未开启防火墙的服务器不需要设置
背景:
某些FTP客户端与FTP服务器进行数据交互时,客户端数据传输使用的是被动模式;
被动模式会导致服务端的数据通道端口随机变动,服务器的防火墙无法设置放行规则。
被动模式下FTP服务端数据通道的监听端口非20;
而是在每一次收到客户端的传输命令后,随机开启一个端口进行监听
并将端口号通知给客户端,被动等待客户端连接、传输数据)。
如linux FTP客户端使用 ls、get、put命令时,会收到服务端响应:
227 Entering Passive Mode (101,43,10,241,255,248).
此时FTP服务端数据通道监听端口即为 255*256+248 = 65528。
可以通过抓包软件直接查看。
解决办法:
通过配置服务端被动模式端口范围,让端口只能在一个固定范围内随机,这样服务端防火墙设置放行端口时就方便了。
vim /etc/vsftp/vsftp.conf
开启被动模式(默认未设置:就是开启状态)
pasv_enable=YES
设置数据传输可使用的端口范围
pasv_min_port=65500 pasv_max_port=65535
重启vsftp服务,然后防火墙放行端口65500-65535
如果FTP服务端将pasv_enable置为NO,客户端在交互数据时会报错:
550 Permission denied. Passive mode refused.
Tips:
FileZilla可设置传输模式: