西安专业做网站的的公司,有哪些公众号是小黄油的,怎么自己改自己做的网站的图片,品牌营销理论有哪些使用 Delphi 的 TIdFTPServer 这个控件#xff0c;做一个 FTP 服务器很简单。可以直接拿官方提供的 FTP Server 的那个 Demo 程序来修改。
本文主要描述如何配置服务器端防火墙
网络环境#xff1a;
1. 客户端在路由器后面#xff0c;局域网#xff1b;
2. 服务器端在路…使用 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 之间的端口。
3. 路由器上把 TCP 端口 5000, 5001, 5002, 5003 映射到 FTP 服务器电脑所在的 IP 地址。
4. 客户端我选用 FileZilla 这个开源的 FTP 服务器设置如下
4.1. 服务器地址输入服务器端的公网 IP 或者动态域名地址
4.2. 端口输入 2121如果不输入则是默认的 21电信不开放
4.3. 传输设置 -- 传输模式选择【被动】模式。
5. 防火墙设置上述所有端口在 FTP 服务器所在的电脑的防火墙上设置为允许连接。
以上设置测试通过。
调试说明
TIdFTPServer 的 PASV 的那两个端口属性我一开始设置的是 50006000结果导致它打开的被动模式端口是在这个区间随机总是不会刚好是路由器上映射的 50005001我又不可能在路由器上设置 1000 个端口映射。所以干脆改为 50005003也就是让 TIdFTPServer 在被动模式下只打开有限的几个端口然后在路由器端口映射上映射这几个端口。