思路
先到CMD或者linux终端用命令行模式ftp命令测试一下,如果能登录,不能利用ls或者dir命令。解释你的客户端环境无法利用PORT模式,而CMD里的ftp客户端默认支持PORT模式。紧张问题在端口被防火墙控住。
PASV
在ftp下利用命令:

--修正为被动模式连接quote PASV
一样平常DOS命令行下都是默认以PORT主动模式连接。即,端口21监听,处理掌握信息,再以端口20连接客户端进行数据传送。而常常通过外网的NAT的,基本端口20的数据连接都会被禁止掉。以是,如果想对外网开放ftp,最好利用PASV模式。
PASV被动模式是指,以端口21监听,有连接要求时,随机开放一个比较大的端口号来处理数据传输。
2、修正配置vsftp中,通过编辑 /etc/vsftp.conf 实现启用PASV连接。
sudo vi /etc/vsftp.conf在配置文件中添加下面语句:pasv_enable=YESpasv_min_port=6000pasv_max_port=7000
也即,启动PASV连接模式,开放6000-7000端口号作为数据传送端口。此外,如果是对外网开放,必须在路由器的转发规则中,开放21端口。
为了保险,可以将6000-7000端口也写入到iptables中白名单中。这样设定后,一样平常就可以搞定了。
如果还弗成,可以通过一下思路:
1、防火墙(本机、客户机)2、FTP目录的权限3、客户机是否是IPv6网络4、客户机的网关限定了外网ftp以为有用的朋友多帮忙转发哦!
后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~