问题描述:

在阿里云使用WINDOWS IIS搭建了FTP服务器,使用被动模式,指定了被动端口并且已经放行FTP的命令和数据端口。在实际使用时发现使用专用的FTP客户端(如WinSCP、lftp、浏览器等)一切正常,当使用FTP命令时可以登陆FTP服务器,但不能建立FTP数据连接,也就不能列出和传输数据文件。提示:ftp: connect: Resource temporarily unavailable。


分析:

通过抓包和返回的信息发现FTP服务器返回了数据端口号和服务器IP地址,但服务器IP地址是内网IP,而非实际使用的公网IP,此时FTP客户端会向该内网IP发起数据会话建立请求,因为路由不可达所以超时后提示ftp: connect: Resource temporarily unavailable。

经过测试,是由于该FTP服务器运行在阿里云的VPC内,而VPC默认不进行公网IP和内网IP的NAT转换。但是专用的FTP客户端和浏览器则可以根据返回的数据包,提取出FTP数据端口号向源公网IP发起数据会话请求,由此可见,传统的FTP命令还是不够“聪明”。

解决方法:

IIS:

在FTP服务器上手工指定公网IP即可,此时FTP服务器在返回被动模式数据端口时将返回带有指定公网IP的套接字信息。如下:

vsftpd:

对于Linux下的vsftpd,需添加:pasv_address=公网IP。

或者关闭PASV模式的安全检查,即:pasv_promiscuous=YES,该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO。

注意:当使用pasv_address指定公网IP时,必须将监听的IP地址改为IPv4,即:listen=YES,否则vsftpd将返回错误的被动套接字,如:227 Entering Passive Mode (0,0,0,0,34,198). 。而启用IPv4地址时则需要禁用IPv6地址的监听,因为两者互斥。

listen=YES        #指定被动模式时的公网IP地址时只能监听在IPv4地址
listen_ipv6=NO    #与listen冲突,默认监听IPv6地址,当监听在IPv4时IPv6必须禁用,否则vsftpd.service将无法启动pasv_enable=YES
pasv_min_port=8900
pasv_max_port=8909
pasv_address=47.95.120.253       #指定被动模式时的公网IP地址
#pasv_addr_resolve=YES
#pasv_promiscuous=YES

转载于:https://blog.51cto.com/yinkai/2345548

被动模式下FTP不能建立数据会话问题相关推荐

  1. 信息提示无法建立数据连接服务器,FileZilla 链接FTP服务器无法建立数据连接: ECONNREFUSED...

    今天想在服务器上下载 一个文件(宝塔面板 腾讯云), 有点大,就想用FTP断点的方式 来下载,以备 网络中断的错误. 无奈遇到了这样的错误: 命令: MLSD 错误: 无法建立数据连接: ECONNR ...

  2. fxp连接失败_FlashFXP使用PASV被动模式建立数据连接失败的问题解决

    FTP是常见的上传下载网络应用之一,虽然如今对于普通用户很少用到了,但在某些特殊场合还是会使用到的. 以Windows 2003中IIS自带的FTP功能为例,其服务端本身的配置是相对简单的,稍作设置后 ...

  3. FTP可以建立连接不能传输文件(FTP主被动模式)

    问题现象:客户在云主机安全组上加入了20/21入规则,客户端可以连接FTP服务器,但是无法传输文件等. 原因:默认FTP连接传输使用被动模式未使用主动模式,防火墙(安全组)未设置正确的出入站规则 解决 ...

  4. linux ftp 团队认证,linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建

    linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建 1.FTP协议:有命令和数据连接两种 命令连接,控制连接:21/tcp 数据连接: 主动模式,运行在20/tcp端口 和 ...

  5. linux ftp mysql_linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建

    命令连接,控制连接:21/tcp 数据连接: 主动模式,运行在20/tcp端口 和 被动模式,运行在随机端口 数据传输模式(自动模式):有二进制(mp3,jpg等)和文本(html)两种传输模式 ft ...

  6. linux下ftp虚拟账号创建2

    环境:CentOS 5.0 操作系统 一.安装: 1.安装Vsftpd服务相关部件: [root@CentOS ~]# yum install vsftpd*  或 [root@CentOS ~]# ...

  7. linux下ftp防火墙端口映射,centos6利用iptables用DNAT实现端口映射并解决ftp列表错误问题...

    之前写了centos7下利用firewall防火墙实现了端口映射的功能来达到加速80端口的目的,但是如果同时也要转发ftp流量的话就会一直出现ftp连接列表错误问题,查询了下相关资料,这是由于源IP通 ...

  8. solaris下ftp配置说明

    一.服务器端的设置 目前用的FTP类型是:wu-ftp                    vsftp FTP设置文件:/etc/ftpd svcs -a | grep ftp ps -e | gr ...

  9. linux下FTP命令详解

    FTP> ! 从 ftp 子系统退出到外壳. FTP> ? 显示 ftp 命令说明.? 与 help 相同. 格式:? [command] 说明:[command]指定需要帮助的命令名称. ...

最新文章

  1. SpringBoot非官方教程 | 第八篇:SpringBoot整合mongodb
  2. Kali Linux下运行Sniffjoke出错的解决
  3. PHP中的预定义常量和魔术常量
  4. 常用的分布式事务解决方案介绍
  5. Linux 文件与目录管理、ls、cd、pwd、mkdir、rmdir、cp、 rm
  6. 基于uCOSII的LCD驱动实验
  7. [译]JavaScript async / await:好处、坑和正确用法
  8. 在Windows平台使用SSH连接Linux服务器
  9. linux 查看端口是否被占用 解决端口占用问题 address already in use
  10. kali文件重命名_硬核教程,必看!「网络安全入门」四、文件上传漏洞
  11. JVM内存模型1.8
  12. 安装AdventureWorks2008R2
  13. ShuffleNet_v1论文阅读
  14. VMware Workstation 不可恢复错误: (vcpu-0)解决方法
  15. 软考网络工程师基础知识
  16. Educoder 数据库设计 - 博客系统
  17. 绪论 数据库系统工程师考试分析
  18. excel筛选排序从小到大_excel多条件筛选函数 用Excel函数实现排序与筛选的方法...
  19. 51单片机dds信号发生器 扫频 c语言,基于DDS正弦信号发生器设计.doc
  20. 淘宝轮播图片制作技巧

热门文章

  1. docker容器简介及安装
  2. 方舟编译器服务器端Java怎么用_方舟编译器可以运行Hello World了!
  3. 数据库下午怎么插入_2020/3/25 下午 数据库第四章 自连接(示例代码)
  4. m3u8地址_「波波带你手动提取网页视频」04讲 Network和Elements提取m3u8链接
  5. 英特尔核芯显卡控制面板没有了_「有趣」第41期:被英特尔取消发售的CPU长啥样?...
  6. android属性动画作用范围,Android开发之动画效果浅析(一)
  7. 嵌入式 linux 启动脚本 编写,[9构建嵌入式linux系统项目-启动脚本的编写.ppt
  8. java什么是网络接口_java接口和类的区别是什么?它们都有哪些作用呢?
  9. em oracle 安装,oracle-EM安装
  10. mysql8连接数据库显示cache_MySQL数据库之mysql 8.0 java连接报错:Unknown system variable 'query_cache_size'...