天翼云用户在云主机上架设FTP服务器后,在VPC 安全组里配置开放了21端口却发现仍然从外网连接不上FTP服务。

这是由于FTP协议有它的特殊之处,本文将介绍在天翼云云主机上配置FTP服务器的难点。

FTP协议的数据连接分为主动模式和被动模式两种方式,FTP默认使用主动模式。

在主动模式下客户端随机开启一个大于1024的端口N,这里我们假定是12345端口吧,向服务器的21端口发起连接,然后客户端将开放N+1号端口进行监听,在我们这个例子里则是12346端口了。服务器将使用数据端口20来主动连接客户端的12346端口进行数据传输。

如果客户端处在一个局域网内通过防火墙或路由器连接到公网,那服务器很可能将连接不上客户端的12346端口,除非客户的网管给客户端做了1对1的公网地址映射。因此主动模式有很大的局限性,大部分场景下都不适用。

既然主动模式连接不上,那就改为使用被动模式吧。被动模式下,FTP客户端随机开启一个大于1024的端口N,我们仍然假定是12345端口吧,向服务器的21端口发起连接,然后客户端会开启N+1号端口,在我们这个例子里则是12346端口,并且告诉服务器我俩使用被动模式来进行通讯。服务器收到命令后,会开放一个大于1024的随机端口进行监听,我们假定也是12345吧,然后服务器再告诉客户端,你来连接我的12345端口吧,我是云主机我有公网IP,你可以连得上。这样客户端的12346端口去连接服务器的12345端口进行数据通讯,就这样愉快地开始进行数据传输。

可是请注意,天翼云上有安全组在保护着我们的云主机,哪能随便让客户端去连12345端口。好吧,那就去配置安全组,允许访问12345端口吧。可是请注意,默认情况下服务器端开放的数据连接端口是个随机端口,每一次FTP连接都是一个随机端口。这次是12345端口,下一次可能就是54321端口了。

那怎么办呢?

这时候你可能想到,在安全组上配置把1024-65535这段端口全部放开嘛。很好,我很佩服你的思路。

这种方案并不是不可以,而是太不安全了,相当于云主机完全暴露在公网上。这好像在向告诉黑客,来呀来呀,来攻击我呀。

其实随机端口的问题最佳的解决方法是把被动模式的随机端口改为使用一个固定的端口范围,再把这个固定端口范围配置到安全组的允许端口列表里就行了。

至于端口范围使用哪个端口范围,就取于用户自己的业务需求了。大于1024的端口都可以使用,前提是不与其它业务冲突。端口的范围大于取决于FTP的并发数,如果有100个并发用户,那端口的范围大小至少要100个端口了。

本文就以被动模式端口范围设为30010-30020为例介绍Windows和Linux操作系统下FTP服务器的设置。

以Windows IIS FTP服务器中,找到【FTP防火墙支持】,配置数据通道端口范围为30010-30020。

Linux下常用的VSFTPD则是配置vsftpd.conf,加入以下配置,并且重启VSFTPD使配置生效。

pasv_enable=yes

pasv_min_port=30010

pasv_max_port=30020

当然云平台安全组的配置中,还需要开放TCP 21及TCP 30010-30020的访问。

最后,如果Windows云主机上配置了Windows防火墙或者Linux上配置了iptables防火墙,还需要在云主机防火墙上开放TCP 21端口及TCP 30010-30020端口。

终于FTP客户端又能从服务端愉快地上传下载数据了。

天翼云云主机上搭建FTP服务最佳实践相关推荐

  1. 在Win7的IIS上搭建FTP服务及用户授权

    FTP服务 FTP是文件传输协议(File Transfer Protocol)的简称,该协议属于应用层协议(端口号通常为21),用于Internet上的双向文件传输(即文件的上传和下载).在网络上有 ...

  2. 在IIS上搭建FTP服务

    FTP服务 FTP是文件传输协议(File Transfer Protocol)的简称,该协议属于应用层协议(端口号通常为21),用于Internet上的双向文件传输(即文件的上传和下载).在网络上有 ...

  3. 在阿里云ECS服务器上搭建FTP服务

    在阿里云ECS服务器上搭建FTP服务 一.简介 二.环境简介 三.搭建FTP服务器步骤 1.配置ECS服务器的安全组策略 2.服务器安装vsftpd软件 3.修改配置文件 4.启动FTP服务 5.Wi ...

  4. CentOS7上搭建ftp服务

    目录 ftp网络协议的两种模式 ftp后台和前端 服务器vsftpd服务的安装 vsftpd服务的三种模式 匿名开放模式 本地用户模式 虚拟用户模式 配置vsftpd服务全过程 关闭防火墙 备份配置文 ...

  5. 小米路由硬盘版搭建ftp服务和博客

    想入手NAS很久了,元旦时看了看群晖,还是一如既往的贵.想想还是觉得肾疼,还是想办法把家里的小米路由器折腾折腾,之前买了个硬盘版本(1T硬盘).所以决定先获取一下路由器的高级管理权限. 对了,我的路由 ...

  6. 【华为云技术分享】华为云弹性云服务器ECS搭建FTP服务实践

    摘要:在使用华为弹性云服务器ECS搭建FTP服务的时候,经常会遇到搭建完成后无法访问的问题.本篇通过演示windows IIS搭建FTP方法,讲解ftp主动模式.被动模式原理来说明无法访问的原因及解决 ...

  7. 使用 Docker 搭建 FTP 服务并设置用户的指定目录上传,下载,删除

    ** 使用 Docker 搭建 FTP 服务 ** 1.准备一个服务器,安装好docker并且是联网状态. 2.创建用户并有自己的家目录 adduser mqq #mqq是我的用户名称Enter th ...

  8. 在Linux4.1.15上使用vsftpd搭建FTP服务问题解析

    在Linux4.1.15上使用vsftpd搭建FTP服务问题解析 BUG1:在windows系统登陆arm Linux FTP时,显示"服务器不允许匿名登录,或者不接受该电子邮件地址&quo ...

  9. Centos搭建FTP服务

    前言: Centos 搭建FTP服务学习记录 FTP简介 FTP简称"文件传输协议",用于Internet上的控制文件的双向传输. 在FTP中常遇到两个概念: 下载和上传 &quo ...

最新文章

  1. Redux 入门教程(一):基本用法
  2. 安装Live communication server 2005存档服务
  3. iOS学习笔记2-微博cell界面的实现
  4. 绝对经典的滑动门特效代码
  5. 数据结构与算法专题——第十二题 Trie树
  6. C语言解力扣461.汉明距离
  7. 深度剖析Java数据结构之表(二)——List接口
  8. thinkphp3 页面跳转外部链接_PPT超链接使用全攻略,你必懂的基本技巧!
  9. ubuntu16.04 apt-get update出错:由于没有公钥,无法验证下列签名
  10. Java HttpUtils 请求工具类
  11. 串口_波特率计算字节
  12. DevExpress VCL Subscription 版本:21.1.5
  13. c语言图形界面切换,「分享」C语言如何编写图形界面
  14. 32位w7怎么升64位|w7系统32位升级64位教程
  15. matlab四元一次非线性方程求解,[转载]MATLAB求解非线性方程(转)
  16. 51GIS学院|分享大数据项目架构思考(一)
  17. IDL学习:语法基础-数组
  18. 亚马逊CPC认证审核通不过什么是什么原因
  19. var returncitysn = {cip ajax,js原生请求远程ip库url得到的数据如何处理?
  20. php h5 调用摄像头_html5实现调用摄像头并拍照功能

热门文章

  1. Navicat连接mysql报1129错误
  2. layer.open参数;layer.open关闭事件;layer.open关闭刷新;layer.open获取子页的值;layer.open调用子页面的方法
  3. 面具busybox模块_利用busybox制作initramfs
  4. 股票实时数据 python_Tushare 获取股票实时数据
  5. linux复制文件夹全部文件夹里,Linux系统怎么复制文件夹下的全部文件到另外文件夹?...
  6. 初识Oracle-关于Oracle
  7. 优思学院|质量人应拿什么证? 知道这三个足矣。
  8. 【个性化推荐系统】推荐算法
  9. 嵌入式开发需要架构设计吗?
  10. Hanoi 塔问题(Java实现)