阿里云ftp连接遇到的错误,entering passive mode失败(一个并不成熟的产品?)

####禁止自行转载

####违者必究

####需要转载请联系我

因为最近用python写了一个自动上传的脚本,想通过FTP把数据上传到我的服务器。

于是,

兴高采烈地打开我一直信任的阿里云,yum install vsftpd。

bing!成功安装好,修改配置文件开始

想通过本地模式登录,先把匿名访问模式给关了。

anonymous_enable=NO

再把 /etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list 两个文件中的root删掉,保证root用户可以登录ftp,没毛病了吧?

systemctl start vsftpd
systemctl enable vsftpd

再重启,加入开机启动项!没毛病了吧?

阿里云安全组放行全部端口,防火墙关了,SELINUX禁用,没毛病了吧?

打开python脚本上传资料,why?错误?肯定是python脚本有错!不可能是我的阿里云有错的!

先在脚本加入两行ftp调试代码,然后一看!咦!怎么一直在entering passive mode?然后就 ftp:connect:Connect timed out。

好吧,我知识量不够,那我学!

百度搜一遍,谷歌搜一遍。

百度搜到的全部都是先解释一下主被动模式,然后叫你关闭passive mode的。。。。。。但是为什么entering passive mode就不行?我不服!

然后谷歌了一番(边看还要开着个翻译软件真的苦啊!~)

最后在某个问答贴看到entering passive mode后边几个数字的含义。

附上原帖地址,感谢!

172.18.144.104就是ftp客户端要连接的ip

139*256+147=35731的意思就是服务端开启35731端口,然后让客户端连接。

我看了一下这个IP,不对啊?!这不是内网ip么?

上阿里云服务器 ifconfig 看下,原来真的是内网IP。(后来才了解到弹性服务器的真正意义。有兴趣的童鞋请百度吧,这里不多说了哦)

然后接下来又是漫长的搜索与学习,以及后来的请阿里云服务支持。

最终阿里云给我的答复是,在vsftpd配置文件下添加下面几行配置。

pasv_enable=YES
pasv_address=#我的外网IP
pasv_min_port=1024
pasv_max_port=2048
pasv_promiscuous=YES  #关闭PASV模式的安全检查

配置好之后我在阿里云服务器本身 ftp 连接到本身服务器,成功了!终于能进入passive mode了!

兴奋!欣喜若狂!赶紧结束工单,给了个五星好评!

然后回到宿舍,运行一下python自动上传脚本。、

what?又进入passive mode失败?entering passive mode(0,0,0,0,xxx,xxx)

肯定是python脚本哪里写错了!

检查一遍又一遍,没毛病啊!

后来在自己的 linux 备用机 ftp 尝试连接一下阿里云的 vsftpd 。

还是不行!我还不死心,借了朋友的服务器连接,还不行!!!

此时我已经折腾了几天了,天天搜索,问题出在哪里。睡醒就开始搜,舍友睡觉了我也还在搜,天天都是头发蓬乱,双眼通红的状态。

终于不堪劳累,把问题记好,我放弃了。

直到今天,看到腾讯云搞年中活动耶,买个玩玩,搭搭服务。

腾讯云也是两个IP,一个公网,一个私有。

心里想,FTP服务肯定又没戏了。肯定和阿里云一样。

不过都买了,搭来试试。配置文件:

anonymous_enable=NO

一样的,/etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list 两个文件中的root删掉。

启动试试?

开阿里云 ftp 连接,???,连上了???

不信!用linux备用机 ftp 连接,也连上了???

不信!运行python脚本,ftp l连接,连上了???

那一刻很懵逼,彷佛多年以来我觉得很牛逼的东西只是别人的冰山一角。上腾讯云 ifconfig 看看,居然是内网IP?

为什么同样 ifconfig 都是内网IP,同样都是私有IP映射公网IP,腾讯云可以 ftp 连接,而你阿里云连这点东西都做不到?

还修改了一大堆配置文件,依然于事无补。而腾讯云只要简简单单的常规配置就可以连接了。

令我有点失望了,阿里云。

猜你喜欢

转载自www.cnblogs.com/chichung/p/9136540.html