当前位置 博文首页 > 支持ipv6的ftp客户端,配置支持ipv6的vsftpd服务

    支持ipv6的ftp客户端,配置支持ipv6的vsftpd服务

    作者:xiaoyingying 时间:2021-07-29 13:07

        最近需要配置一个支持ipv6的vsftpd服务,但只有ipv4的服务能正常工作。ipv6的客户端连上后,除了pwd命令可以执行外,其他命令都报550Permissiondenied.Passivemoderefused.的错误。经过一番琢磨后发现了问题的所在。下面我来描述下我遇到的问题及解决方法。希望能够帮助到有同样困扰的朋友。
        1.本来在/etc/vsftpd/目录下创建两个配置文件,同时监听ipv4和ipv6。
        vsftpd.conf
        vsftpdv6.conf
        按照提示,分别配置如下:
        listen=YES
        #listen_ipv6=YES
        及
        #listen=YES
        listen_ipv6=YES
        然后在两个配置文件中cmds_allowed都是支持这些命令:
        FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,RETR
        但是这些配置虽然能使客服端使用ipv6的地址连接上服务端,却无法使用除了pwd之外的命令。报错信息如上。
        2.后来在客服端中打开debug模式,发现了两个命令,EPSV,LPSV
        搜了下,原来cmds_allowed中的PASV只支持ipv4协议。EPSV才能同时支持ipv4及ipv6。可以参考:
        https://superuser.com/questions/801514/in-ftp-what-are-the-differences-between-passive-and-extended-passive-modes
        3.最后在listen_ipv6的配置文件的cmds_allowed配置项中添加了EPSV及LPSV。然后就能成功使用ls,cd这样的命令,能成功上传文件了。(我觉得把PASV换成EPSV就能解决问题了,但还没有尝试。)
        原文链接:https://blog.csdn.net/endeavor_99/article/details/82951453