最近,公司要使用Ftp做附件上传功能,Ftp服务器需要外网端口映射。之前一位同事说只需要开一个端口,特意到网上搜了一下,没记住连接,只把内容复制了下来。(太对不住原来的作者了)
写道
FTP服务器需要开几个端口
由于前段时间公司新买了台服务器,只用来提供FTP和SQL Server服务(有固定公网IP并且对外服务),于是我就想用防火墙封住除开FTP和SQL Server之外的所有端口(也就是只开放21和1433啦),以保证服务器的安全,但是想不到的是开了21端口之后,FTP依旧不能访问,让我很纳闷,于是我就花了点时间研究了一下防火墙的日志和在网上找了些相关的资料,有了以下的总结。
1、完成一个FTP的传输过程不仅仅只需要21一个端口,而是2个端口,21端口只是一个命令端口,其实另外还有一个数据端口,我想这就是有些朋友在内网架设FTP并且在网关上做了21端口的映射之后外网还是不能访问的原因吧,另外一个数据端口是多少呢?这又牵涉到另外一个问题。
2、FTP具有两种模式,分别是port模式(也叫主动模式)和pasv模式(也叫被动模式),怎么来理解这两种模式呢?我来打个比喻吧,在主动模式下:客户端给服务器端的21端口发命令说,我要下载什么什么,并且还会说我已经打开了自己的某个端口,你就从这里把东西给我吧,服务器知道后就会通过另外一个数据端口把东西传给客户端,这就是主动模式,可以理解为服务端主动给客户端传输文件;在被动模式下:客户端给服务器端的21端口发命令说,我要下载什么什么,服务器端知道后,就打开一个端口,然后告诉客户端,我已经打开了某某端口,你自己进去拿吧,于是客户端就从那个端口进去拿文件了,这就是被动模式,可以理解为服务端被客户端拿走了东西,哈哈,可以看懂吧。
在FTP的历史中,本来只有主动模式的,但是为什么又出现了被动模式呢?这又牵涉到另外一个问题了,呵呵~
3、在很久以前(我也不知道多久),地球上还没有什么共享上网这种技术,但是后来出现了,所以也就有了下面的问题,大家都知道,共享上网就是很多台电脑共享一个公网IP去使用internet,再打个比喻吧,某个局域网共享210.33.25.1这个公网IP上网,当一个内网用户 192.168.0.100去访问外网的FTP服务器时,如果采用主动模式的话,192.168.0.1告诉了FTP服务器我需要某个文件和我打开了x端口之后,由于共享上网的原因,192.168.0.1在出网关的时候自己的IP地址已经被翻译成了210.33.25.1这个公网IP,所以服务器端收到的消息也就是210.33.25.1需要某个文件并打开了x端口,FTP服务器就会往210.33.25.1的x端口传数据,这样当然会连接不成功了,因为打开x端口的并不是210.33.25.1这个地址,在这种情况下被动模式就有用了,相信大家已经能够理解被动模式是怎么个连接法了吧。
好了,说了这么多,现在可以回到第一个问题了。
在主动模式中,FTP的两个端口是相对固定的,如果命令端口是x的话,那数据端口就是x-1,也就是说默认情况下,命令端口是21,数据端口就是20;你把命令端口改成了600,那么数据端口就是599。这样使用防火墙就很方便了,只要开通这两个端口就可以了,但是如果客户端是共享上网的话那岂不是不能正常使用FTP了,这样还是不行,一定需要被动模式。
在被动模式中就麻烦了些,默认情况下命令端口是21,但是数据端口是随机的,这个问题又让我头痛了一下,还好,我又找到了办法,因为被动模式中数据端口的范围是可以自定义的,在此我以Serv-U 6.1.0.5版为例,在/Local Server/Settings/Advanced/中,看图:
FTP服务器需要开几个端口 - Suncents - Suncents Blog
这下好了,我把被动模式中的端口范围也设置为20-20,那么不管客户端使用何种模式来访问我的FTP,都只需要开通这两个端口了,再加上 SQL Server的1433,一台服务器总共才开了3个端口,这下应该比较安全了。
分享到:
相关推荐
在实现FTP服务器时,有几个关键点需要注意: 1. **安全性**:考虑是否启用SSL/TLS加密,以保护传输的数据不被窃听。 2. **权限管理**:实现用户认证系统,允许或拒绝特定用户访问。 3. **并发处理**:设计服务器以...
构建Java FTP服务器涉及到几个关键步骤: 1. **初始化服务器**:设置服务器监听的端口,通常为21号端口,并创建一个线程来处理每个连接请求。 2. **处理客户端请求**:当客户端连接时,服务器需要解析客户端发送的...
C++ FTP服务器的核心功能可能包括以下几个部分: 1. **连接管理**:服务器需要监听特定端口(通常是21),等待客户端的连接请求,并建立TCP连接。 2. **命令解析**:服务器接收客户端发送的FTP命令,如`USER`(认证...
迷你FTP服务器的简易性体现在以下几个方面: 1. **安装与配置**:由于其体积小巧,通常不需要复杂的安装过程,可能只需运行提供的FtpServer.exe文件即可启动服务。配置也可能相当直观,可能只需要设置服务器的基本...
在安装"最小的FTP服务器[做个服务器只需要三秒].exe"这个程序时,需要注意以下几点: 1. 确认来源:确保下载的文件来自可信赖的源,以避免恶意软件或病毒。 2. 安装步骤:按照提示进行安装,通常只需几步简单的...
FTP服务的应用范围广泛,主要包括以下几个方面: - **软件下载服务**:FTP服务因其高效性,通常被专业软件下载站点用来提供下载服务。用户登录到FTP服务器后,可以直接查看文件夹和文件列表,并根据需要下载所需的...
FTP服务器主要由以下几个关键组件构成: 1. **监听器(Listener)**:FTP服务器的核心部分,负责监听特定端口(默认为21)上的连接请求。在MFC中,可以使用CAsyncSocket类来创建一个监听套接字,通过OnAccept函数...
FTP服务器的工作原理主要包括以下几个关键点: 1. **连接建立**:客户端通过TCP连接到服务器的21号端口,这是FTP协议的标准端口。服务器响应并建立控制连接。 2. **身份验证**:在控制连接上,用户需输入用户名和...
开发FTP服务器时,你需要关注以下几个步骤: 1. **设置服务器配置**:包括监听IP地址、端口号、最大连接数等。 2. **实现用户认证**:根据需求选择合适的认证方式,并编写对应的认证逻辑。 3. **处理FTP命令**:编写...
在本地创建FTP服务器,你可以选择以下几种常见的FTP服务器软件: 1. **FileZilla Server**:这是一个开源、免费的FTP服务器软件,适合个人和小型企业使用。它易于安装和配置,支持多用户访问控制,可以设置不同的...
配置FTP服务器通常涉及以下几个关键步骤: 1. **安装服务器软件**:如文中提到的`FTPSERVER.EXE`可能是一个FTP服务器的执行文件,用于安装或运行服务器程序。常见的FTP服务器软件有FileZilla Server、vsftpd、...
FTP服务器的实现主要涉及以下几个核心概念: 1. **连接管理**:FTP服务器通过监听特定端口(默认21)等待客户端连接。当客户端发起连接请求时,服务器会创建一个新的数据连接来处理文件传输。 2. **命令交互**:...
4. **权限控制**:FTP服务器通常需要验证用户身份,只允许授权的用户访问特定资源。这可以通过维护用户数据库或集成更复杂的认证机制如LDAP来实现。 5. **会话管理**:FTP会话可能包含多个文件传输,服务器需要跟踪...
在这个主题中,我们将探讨两款轻量级的FTP服务器软件——FTPServer和Ocean FTP Server,它们以其小巧的体积、无需安装和简单的配置特性,非常适合个人网站的FTP服务搭建。 FTPServer是一款简洁而高效的FTP服务器...
实现一个FTP服务器通常涉及以下几个关键部分: 1. **监听与连接**:服务器需要监听特定端口(通常是21号端口)上的连接请求。当客户端发起连接时,服务器会创建一个新的套接字连接来处理请求。 2. **命令交互**:...
"守望迷你ftp服务器"可能是指一个轻量级的FTP服务器软件,它简化了用户在本地或局域网内搭建FTP服务的过程。这种服务器通常具备易于配置、占用资源少等特性,适合个人或小型团队使用。 FTP服务器的核心功能包括: 1...
FTP服务器的核心组件包括以下几点: 1. **服务器软件**:如`ftpserver.exe`可能就是一个FTP服务器程序,负责处理来自客户端的连接请求,管理用户账户、权限以及文件传输。常见的FTP服务器软件有vsFTPd(Unix/Linux...
总之,守望迷你FTP服务器是一款功能强大、操作简便的FTP服务解决方案,对于需要快速搭建FTP服务器的用户来说,无疑是一个理想的选择。它集成了诸多实用功能,满足了不同用户的需求,且在安全性、稳定性和易用性方面...
FTP服务器的工作原理主要包括以下几个方面: 1. **连接建立**:客户端通过TCP连接到FTP服务器的21号端口,建立起控制连接。FTP协议使用TCP确保数据的可靠传输。 2. **身份验证**:用户在控制连接上发送用户名和...
在这个界面上,你需要配置以下几个关键参数: 1. **服务器信息**:设置FTP服务器的基本信息,如服务器的名称、端口号(默认是21,但可以自定义以避免冲突)以及监听的IP地址(可设置为所有网络接口或特定IP)。 2....