ftp 多网卡 pasv_ftp连接数量过多

详解ftp常见报错之Use PORT or PASV first解决思路和方法

概述

先介绍一下基础环境:ftp服务部署在公网环境,而客户端在内网电脑,需求是用内网电脑去下载ftp上的文件,在下载过程中提示了 Use PORT or PASV first报错,下面介绍下解决的思路和方法。


思路

先到CMD或者linux终端用命令行模式ftp命令测试一下,如果能登录,不能使用ls或者dir命令。说明你的客户端环境无法使用PORT模式,而CMD里的ftp客户端默认支持PORT模式。主要问题在端口被防火墙控住。


1、调整模式为PASV

在ftp下使用命令:

--修改为被动模式连接
quote PASV

一般DOS命令行下都是默认以PORT主动模式连接。即,端口监听,处理控制信息,再以端口连接客户端进行数据传送。而经常通过外网的NAT的,基本端口的数据连接都会被禁止掉。所以,如果想对外网开放ftp,最好使用PASV模式。

PASV被动模式是指,以端口监听,有连接请求时,随机开放一个比较大的端口号来处理数据传输。


2、修改配置

vsftp中,通过编辑 /etc/vsftp.conf 实现启用PASV连接。

sudo vi /etc/vsftp.conf
在配置文件中添加下面语句:
pasv_enable=YES
pasv_min_port=
pasv_max_port=

也即,启动PASV连接模式,开放端口号作为数据传送端口。此外,如果是对外网开放,必须在路由器的转发规则中,开放端口。

为了保险,可以将端口也写入到iptables中白名单中。这样设定后,一般就可以搞定了。

如果还不行,可以通过一下思路:

  • 1、防火墙(本机、客户机)
  • 2、FTP目录的权限
  • 3、客户机是否是IPv6网络
  • 4、客户机的网关限制了外网ftp

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

原文链接:,转发请注明来源!