最近计网课设要做一个ftp服务端,所以先在自己服务器搭一个来了解一下。
首先在默认情况下连接,227 Entering Passive Mode (192,168,*,*,227,175).
显示连接错误,网上说是阿里云安全组的问题,于是我去打开了,可还是不行。我用java实验了服务器的这些要用的端口,的确是打开了,能连上的。
网上查的教程都是教我怎么把ftp客户端的被动模式禁止掉的,我觉得很莫名奇妙,明明服务端出现了问题,不在服务端解决,却去搞客户端。
了解了一下这个错误信息,括号里面6个数字,前4个是ip地址,后两个是端口号(前一个乘于256再加上后一个)。那么错误原因就知道了。是我服务器发送了一个错误的ip,它把阿里云里面的内网IP给了出去,按道理是应该给外网ip的。
在/etc/vsftpd/vsftpd.conf 里加上 pasv_address=(外网ip),根据网上的教程。按道理应该是行了的。可是还是错了,不过错误信息改变了。
227 Entering Passive Mode (0,0,0,0,227,175).
似乎在给外网ip时发生了错误。
后来终于在两个英语网站找到了案。这里只贴出一个http://www.it1352.com/776839.html
我的理解是:vsftpd默认使用ipv6,我在上面加的那个属性地址,在使用IPv4时会发生错误。
解决方法:
listen=NO -> listen=YES
listen_ipv6=YES ->listen_ipv6=NO
这两处要一起改,单独改一处会发生错误,重启不了。
原文:https://www.cnblogs.com/jasonLiu2018/p/10946465.html