阿里云服务安装FTP服务器报200 227 entering passive mode(被动模式)错误

ftp切换被动模式,走内网Ip

Linux的FTP服务器搭建
先描述下场景,用ftp搭建服务器,作为公司内部的一个下载站使用 
看下下方报错截图linux上搭建的FTP服务器,用windows访问出现报错 
先分析200,227的的意思
200访问成功(可能是没有权限,所有还是报错)
227进入被动模式(ip地址(内网IP)。id端口)
报错原因
1.ftp分为主动与被动模式俩种(passive command令进行切换)
2.如果是阿里云服务器,切记配置安全组端口(ftp默认20/21);

原理:

虚拟主机在传输数据的过程中,采用被动模式,可能由于端口无法打开导致传输失败,尝试切换工作模式,可解决这个问题。
 

因为FTP有两种工作模式,主动式和被动式 :
 

· 主动方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时, 客户端在命令链路上用PORT命令告诉服务器:我打开了***X端口,你过来连接我。于是服务器从20端口向客户端的***X端口发送连接请求,建立一条数据链路来传送数据。  
 

· 被动方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时, 服务器在命令链路上用PASV命令告诉客户端:我打开了***X端口,你过来连接我。于是客户端向服务器的***X端口发送连接请求,建立一条数据链路来传送数据。

图片所述:客户端向服务器的8888 端口发送链接请求,服务器在命令链路上用PASV命令告诉客户端:

我打开了6010端口 :计算端口 倒数第二个数字 23 * 256 + 最后一个数字122 = 6010 你过来连接我。于是客户端向服务器的***X端口发送连接请求,建立一条数据链路来传送数据。注意 前面的IP的内网ip 172.31.54.133,内网IP根本不可能外网连通的,所以这个问题的根本原因在于,被动模式ftp链接用的内网IP,这个只有在阿里云上会遇到这种情况(据说腾讯云等其他这个问题)。所有重点是需要在ftp的配置文件主动将 被动模式链接的服务器外网IP配置上去,问题即可解决。

 

如果不是默认端口,像本人 修改了etc/services文件的data-ftp 8887(替换原20) ftp 8888(替换原21)和文件vsftp.config(ftp的配置文件) listen_port=8888;由于切换被动模式需要开启如下 :

,

关闭listen_ipv6(注释掉或者NO); allow_writeable_chroot=YES ;pasv_enable=YES pasv_min_port=1024 pasv_max_port=65535

pam_service_name=vsftpd  userlist_enable=YES  ;listen_port=8888;pasv_address= 服务器的外网IP(这个是最重要的解决227问题)
linux防火墙规则,没有添加ftp的规则(不想配置规则,防火墙关掉也可以,不建议这么做);将 以上涉及的端口防火墙 开放

(8888,8887,1024,65535);

 

重启ftp:systemctl restart vsftpd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值