关于FTP服务相关的端口配置

      关于FTP服务相关的端口配置无评论

FTP有主动模式和被动模式,平常使用都是被动模式,而且各种FTP客户端默认也都是被动模式

被动模式的数据连接端口号不是21,20,所以还需要开通相应端口才可以。

相应端口是什么端口?先看下原理

一、FTP的两种连接

FTP(文件传输协议)是最典型的双连接协议,需要用到控制连接和数据连接。

顾名思义,控制连接用于控制指令,比如协商ftp的验证方式(是否允许匿名,允许的话用什么代表身份,不允许的话要传用户名密码等),这里没有进行真正的文件传输。

数据连接用于真正的文件传输,包括列出文件列表,上传下载文件等。

二、FTP的两种模式及端口号

FTP的主动和被动两种模式,最关键的区别在于两点

1、数据连接谁发起

2、数据连接的端口号是什么

主动FTP,数据连接由服务器发起,也就是三次握手的第一次是服务器先来的,端口号服务器端20,客户端随机,这时按题主的操作,只要放行20和21就可以。其中21是控制连接的端口号。

下图为主动FTP的工作过程

被动FTP,数据连接由客户端发起,也就是三次握手的第一次是客户端先来的,端口号服务器端和客户端都是随机,下图为被动FTP的工作过程

但是,端口都是随机这怎么放行??总不能放行所有吧

三、解决方案

也是腾讯云推荐的解决方案,在Linux的ftp配置中,设置被动FTP的端口号范围,比如39000到40000,那么接下来在安全组放行这个端口范围及可。

以vsftpd为例,当然vsftpd也是最常用的ftp软件

在配置文件(默认位置/etc/vsftpd/vsftpd.conf)里加入以下内容,并重启vsftpd服务就可以了。

pasv_enable=YES

pasv_min_port=39000

pasv_max_port=40000

那么问题来了,为什么不改成主动??

因为主动是服务器主动,对客户端来说是被动,被动就是别人进来,别人进来对客户端来说就是入站连接,防火墙是默认禁止陌生的入站连接的,所以经常会导致无法成功连接ftp

阿里云、腾讯云安全组设置

首先登录阿里云(或腾讯云)网站,进入控制台,进入服务器实例列表,找到想要增加端口的实例,到安全组配置,增加配置 39000/40000端口放行

文章转摘自链接:https://www.zhihu.com/question/62312887/answer/1296199208

发表评论

电子邮件地址不会被公开。 必填项已用*标注