使用 Delphi 的 TIdFTPServer 这个控件,做一个 FTP 服务器很简单。可以直接拿官方提供的 FTP Server 的那个 Demo 程序来修改。
本文主要描述如何配置服务器端防火墙
网络环境:
1. 客户端在路由器后面,局域网;
2. 服务器端在路由器后面的局域网上面。
FTP 配置原理
1. 主动模式:FTP 客户端连接上 FTP 服务器以后,客户端会打开一个 TCP 端口作为接收数据的TCP 服务器,然后 FTP 服务器主动发起 TCP 连接客户端。
1.1. 主动模式的问题:需要客户端所在网络,配置路由器开端口映射到客户端电脑。从实施来说,不方便。
2. 被动模式:FTP 客户端连接上 FTP 服务器后,FTP 服务器另外随机打开一个被动模式的 TCP 端口,将端口告诉客户端;然后,客户端用 TCP 连接这个端口,建立数据传输通道。
2.1. 被动模式:FTP 服务器端要设置防火墙,要设置路由器端口映射。
Indy TIdFTPServer 的用法
在上述描述中,如果使用 TIdFTPServer 这个控件来实现一个 FTP 服务器端程序,需要注意:
1. 路由器开端口映射到服务器端所在电脑 IP 地址的 21 端口;
1.1. 不幸的是,电信对于小端口,封掉。因此,需要映射路由器的 2121 端口,指向内网 FTP 服务器所在 IP 地址的 21 端口。
1.2. FTP 服务器所在电脑的防火墙,设置允许 21 端口的 TCP 连接。
2. IdFTPServer 的属性:PASVBoundPortMax 选择 5003, PASVBoundPortMin 选择 5000;
2.1. 上述设置的意思是被动模式下,TIdFTPServer 随机打开 5000 到 5003 之间的

本文详细介绍了如何使用Delphi的TIdFTPServer创建FTP服务器,涉及主动模式和被动模式的配置,强调了路由器端口映射、防火墙设置以及PASVBoundPort参数的调整,以确保在电信环境下通过FileZilla客户端成功连接。
最低0.47元/天 解锁文章
1158

被折叠的 条评论
为什么被折叠?



