当前位置: 首页 > news >正文

用 Delphi 做 FTP 服务器以及如何配置防火墙

使用 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 的那两个端口属性,我一开始设置的是 5000,6000,结果导致它打开的被动模式端口是在这个区间随机,总是不会刚好是路由器上映射的 5000,5001;我又不可能在路由器上设置 1000 个端口映射。所以干脆改为 5000,5003;也就是让 TIdFTPServer 在被动模式下只打开有限的几个端口,然后在路由器端口映射上,映射这几个端口。

http://www.lryc.cn/news/325600.html

相关文章:

  • 《SQL必知必会第五版》第十四章(组合查询)挑战题
  • elasticsearch+kibana安装部分问题:
  • Python---常用的web框架
  • Jenkins Docker 部署指南
  • 海外媒体宣发:商务视频推广数字化变革全解析-华媒舍
  • 文件服务: 功能介绍
  • php 快速入门(二)
  • java面试题|(1)多线程如何停止一个线程?
  • 使用阿里CICD流水线打包Java项目到阿里的docker镜像私仓,并自动部署到服务器启动服务
  • Mybatis的核心配置文件
  • 四川易点慧电子商务抖音小店:安全可靠,购物新选择
  • 基于数据沙箱与LLM用例自愈的UI自动化测试平台
  • 面试算法-117-组合总和 III
  • 邮件接口与第三方平台的集成的方式有哪些?
  • qrcode插件-生成二维码
  • 基于JavaSpringmvc+myabtis+html的鲜花商城系统设计和实现
  • [论文笔记] Dual-Channel Span for Aspect Sentiment Triplet Extraction
  • 【C语言】linux内核pci_enable_device函数和_PCI_NOP宏
  • 网络: 套接字
  • Day57-Nginx反向代理与负载均衡初步应用
  • 【PHP】通过PHP开启/暂停Apache、MySQL或其他服务
  • JAVA中spring介绍
  • latex下载与安装
  • JavaParser 手动安装和配置
  • 再次度过我的创作纪念日
  • 云电脑火爆出圈,如何选择和使用?--腾讯云、ToDesk云电脑、青椒云使用评测和攻略
  • webpack原理之-打包流程热更新HMR
  • SELinux详解
  • Go语言实现SSE中转demo
  • 国内IP修改软件下载指南