FTP是个比较复杂的协议,其协议分为控制层和数据层,工作模式分为主动和被动两种模式。

在默认的Active模式下其工作原理如下:

可以看到,客户端发起FTP的请求道服务器端,FTP的端口是21。用户在控制层面通过认证后,会通知服务器其开放的随机端口号。随后服务器端将主动发起源端口为TCP 20目标端口为TCP 随机端口号的连接请求,进行数据连接。

在一般情况下,FTP的服务器和客户端都是在防火墙之后的,服务器端的防火墙要明确配置此服务器要对外提供哪些服务的端口,客户端的防火墙要求必须是客户端主动发起连接的TCP 连接才会通过。

因为数据连接是服务器端首先发起,如果FTP客户端在防火墙之后,防火墙会中断此数据连接,导致FTP可以登录,但不能传输数据。

被动模式的工作原理如下:

为解决客户端在防火墙后,FTP不能正常工作的情况,可以选择FTP的被动模式。其在控制层面的过程和主动模式相似,但在用户认证通过,客户端进入PASV模式后,服务器端会根据事先的配置,随机选择特定范围的TCP端口作为数据传输的端口,并开放这个端口等待用户数据的传输,同时并把这个信息发送给客户端,客户端会通过这个端口发起数据传输的请求。当FTP服务器的数据返回给客户端时,客户端前面的防火墙发现此TCP连接是客户端发起的TCP连接,所以服务器的数据会顺利的穿过防火墙,实现数据传输。

所以为能让所有的客户端能够访问FTP服务器,一般情况下,FTP服务器会同时支持主动模式和被动模式。

在Azure环境下,VM的endpoint相当于FTP 服务器前端的防火墙,需要在endpoint上打开所有可能的控制层面和数据层面的端口。所以:TCP 21(控制层面端口)、TCP 20(主动模式数据端口)、多个TCP端口(被动模式的数据端口)都要在endpoint上打开。

另外VM本身的防火墙也要做相应的设置,开放上述端口。

下面将通过安装vsftp为案例,在Azure上部署FTP服务。

共有三个部分:1. 安装vsftp, 2. 设置VM的endpoint ,3. 设置VM的防火墙,之后就可以测试了。

1.安装vsftp

yum install –y vsftpd

更改vsftpd的配置文件:

Vim /etc/vsftpd/vsftpd.conf

添加以下内容:

pasv_enable=YES

pasv_min_port=1120

pasv_max_port=1121

这三行表示:开启被动模式,其数据传输随机端口为1120-1121。

保存后启动vsftpd服务。

2.配置VM的endpoint

可以看到开放了FTP的控制层面端口:21,开放了FTP主动模式的数据端口:20,开放了FTP被动模式的数据端口(此端口是配置文件里配置的):1120、1121。

3.配置VM的防火墙

简化配置,关闭iptables:

iptables –F

service iptables save

至此配置都结束了。测试:

C:\Users\hengz>ftp hwcentos65.chinacloudapp.cn

Connected to hwcentos65.chinacloudapp.cn.

220 (vsFTPd 2.2.2)

200 Always in UTF8 mode.

User (hwcentos65.chinacloudapp.cn:(none)): anonymous

331 Please specify the password.

Password:

230 Login successful.

ftp> ls

200 PORT command successful. Consider using PASV.

150 Here comes the directory listing.

pub

226 Directory send OK.

ftp: 8 bytes received in 0.01Seconds 0.67Kbytes/sec.

可以成功显示内容。

转载于:https://www.cnblogs.com/hengwei/p/5257581.html

Azure上部署FTP服务相关推荐

  1. linux:通过rpm包部署FTP服务

    需求:在内部环境中部署FTP服务,供其他人员通过公共路径下载数据 由于不能连接外网,不能使用大部分网友介绍的yum安装方法,且未找到一篇完整的介绍FTP服务部署到使用的文章,因此,整理了整个部署流程, ...

  2. Docker下部署ftp服务

    Docker下部署ftp服务 文章目录 Docker下部署ftp服务 前言 一. 查找vsftpd镜像 二.pull vsftpd最新版镜像到本地 二.配置vsftpd 1.创建vsftpd容器 2. ...

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

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

  4. cloudfoundry_在Cloudfoundry上部署RESTful服务

    cloudfoundry 在本文中,我们将使用Pivotal Cloud Foundry(PCF)开发人员在Cloudfoundry上部署RESTful服务. 由于创建静态Web服务不是本文的一部分, ...

  5. 在Cloudfoundry上部署RESTful服务

    在本文中,我们将使用Pivotal Cloud Foundry(PCF)Dev在Cloudfoundry上部署RESTful服务. 由于创建静态Web服务不是本文的一部分,因此我已经创建了employ ...

  6. 在 Windows Azure 上部署预配置 Oracle VM

    Microsoft 和 Oracle 近期宣布建立战略合作伙伴关系,基于此,我们将通过 Windows Azure 镜像库推出多种常用的 Oracle 软件配置.即日起,客户可以在 Windows S ...

  7. 在IIS上搭建FTP服务

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

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

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

  9. Linux服务器上部署springboot服务并测试

    1.在Linux服务器上部署Springboot服务 项目打jar包的操作流程: 在idea中的Maven视图中先clean,跳过test(按一下蓝色闪电的标志),再点击package打包. 2.此时 ...

  10. CentOS8上部署NFS服务端和客户端

    centos8上部署nfs服务端和客户端 文章目录 背景 服务端与客户端信息 配置服务端 安装软件包 编辑配置文件 验证并使配置生效 启动服务端服务 查看服务端状态: 配置客户端: 安装软件包 启动客 ...

最新文章

  1. 某阿里程序员女朋友吐槽男友整天玩失踪!早晨问候一声,晚上十一点才回信息!中间完全消失!阿里加班真的这么恐怖吗?...
  2. 「NLP」 NLP中应用最广泛的特征抽取模型-LSTM
  3. C# 连接数据库 Sql Server
  4. 快上车!2021次“网易云信号”回顾列车发车啦!
  5. Java的二十三种设计模式(适配器模式(Adapter)、对象的适配器模式)
  6. IBatisNet1.5学习--配置篇
  7. HDU - 2859 Phalanx(动态规划/哈希表)
  8. HTML学习笔记05-文本格式化
  9. python文本进度条94页_Python学习笔记 | 实例4:文本进度条
  10. 《江南》、乌镇、《似水年华》
  11. CentOS 7安装megacli
  12. jquery mobile 中文在线文档
  13. mac版本markdown编辑器工具:Typora 下载
  14. 【计算机网络微课堂】3.3 差错检测
  15. 宾州州立 计算机 硕士,宾州州立大学公园计算机
  16. 华为eNSP模拟器软件介绍和基础命令详解
  17. word2016 插入题注 交叉引用 记得更新域
  18. 英语学习打卡day1
  19. 《华为数据之道》-第7章 打造“数字孪生”的数据全量感知能力
  20. maya2018英文翻译_maya2018mac版如何改成英文?

热门文章

  1. 获取指定年份至今年分列表
  2. tomcat启动内存设置以及字符集设置
  3. QL Server 2008新特性:FILESTREAM
  4. 这样让你的采集内容变原创seo出来的伪原创
  5. oracle 图片数据复制,Oracle如何插入图片数据?
  6. mysql 安装问题汇总_Windows 10 下MySQL安装及常见问题
  7. wpf 切换搜狗输入法英文_搜狗输入法使用技巧整理,建议保存收藏
  8. 用于创建此对象的程序是package_21个最佳Flutter软件包,用于简化Flutter应用开发...
  9. php上搭建dvwa,使用phpstudy在windows上搭建DVWA
  10. idea中resources下的logback-spring的配置