云服务器使用FTP,获取不到文件列表的解决办法
近期在写一个程序,里面包含了一些ftp的功能,本来我是在自己的ipv6的服务器上运行的,没有任何问题,但是当我迁移到云服务器上面就出现了问题。
其中,FTP的配置参考了这篇如何在Ubuntu 22.04上搭建FTP服务器 - sll0917 - 博客园 (cnblogs.com)。
当我使用FileZilla的时候提示“服务器回应不可路由的地址。使用服务器地址代替。”倒也能正常使用,用自己写的代码也可以登录ftp,但是,当我使用自己写的代码去获取文件列表的时候,发现数据诗空的,然后经过我的搜索排查,有说是需要设置被动模式的,但是我设置被动模式之后,ftp直接运行不了,报错,就是加上这一条“PASV_enable=YES”,好多文章都写了这一条,我不清楚是什么原因。
然后我就找到了一个博客说是需要把listen改为YES,把listen_ipv6 改为NO,经过测试,可行,可能是现在ftp默认使用了ipv6,但是使用的公有云还是ipv4的原因。