使用FileZilla搭建公网访问的ftp服务器(Frp/花生壳)

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: FTP 是一种基于 TCP 的应用层协议,它不支持 UDP 协议。 FTP 工作在一种特殊的服务机制上,它使用两个端口,一个 ‘数据’ 端口和一个 ‘命令’ 端口(也称为控制端口)。 通常情况下,端口 21 用作命令端口,端口 20 用作数据端口。一、主动模式和被动模式

FTP 是一种基于 TCP 的应用层协议,它不支持 UDP 协议。 FTP 工作在一种特殊的服务机制上,它使用两个端口,一个 ‘数据’ 端口和一个 ‘命令’ 端口(也称为控制端口)。 通常情况下,端口 21 用作命令端口,端口 20 用作数据端口。


一、主动模式和被动模式

1、主动模式

客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口(21端口),发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端开放N+1端口,发送 PORT N+1 命令到FTP服务器,告诉服务器客户端采用主动模式以及开放的端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口N+1连接,发送数据。

客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口(21端口),发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端开放N+1端口,发送 PORT N+1 命令到FTP服务器,告诉服务器客户端采用主动模式以及开放的端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口N+1连接,发送数据。

001ab7839c2593b7da36f444b042e7c2.png

2、被动模式

为了解决服务器主动发起到客户端连接会被阻止的问题。被动模式工作的前提是客户端明确告知 FTP 服务器它使用被动模式。FTP客户端使用N(N>1023)端口连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再通过N+1端口连接到服务器开放的端口进行数据传输。

c74c394735a12d124f3037dc8ede56f8.png

3、区别

显然两者的区别就在于建立数据传输连接的方式。


主动模式的连接发起方为服务器端,服务器使用20号端口主动去连接客户端的N+1端口建立数据连接;


然而当客户端位于NAT之后,服务器是无法主动与其建立连接的


被动模式连接发起方为客户端,在客户端与21端口建立联系之后服务器端告诉客户端自己使用的数据端口号,让客户端自己来连接,这样就解决了服务端无法主动连接客户端的问题。

二、搭建FTP服务器

首先我们需要先安装FileZilla Server

安装完成后界面中为出现警告

0d30368aeebb769cf3fa1f6c2903a4b3.png

这里的意思是当前环境位于NAT之后,所以需要使用被动模式(passive mode)运行并在路由器上设置端口转发;warning中的意思是FTP服务没有启用TLS模式,所以用户登录信息是不安全的。


在上文中我们讲到了被动模式解决了客户端位于NAT之后,服务器端无法直接连接其的情况下采用被动模式让客户端来连接服务器端即可。但是如果我们的服务器端也是位于NAT之后,那么其实客户端也无法连接到服务器端。(正如下图提示所说)那我们还需要将我们服务器FTP服务的端口暴露到公网中供客户端可以连接,这里我们就才用到内网穿透的方式来解决NAT的问题(相关知识可参考内网穿透7480dfa7971635ef5f1ea684f5c7c077.png的原理和实现方式)

这里我们需要设置自定义端口和填入外网IP的地址

端口即为进行内网穿透的端口号,ip地址则填写公网的ip

如果我们拥有公网ip,则可以使用frp进行端口转发,如果没有则可以使用花生壳等内网穿透工具。

三、使用FRP实现

关于Frp的使用可以参考文章使用frp端口实现内网穿透

在完成了基础的配置后,我们只需要在客户端的frpc.ini中增加两个配置

[ftp_cmd]
type = tcp
local_ip = 127.0.0.1
local_port = 21
remote_port = 6001
[ftp_data]
type = tcp
local_ip = 127.0.0.1
local_port = 15779
remote_port = 15779

第一个即为TCP服务所监听的21号端口及其在公网上的映射


由于我们使用被动模式,所以还需要另外设置一个进行数据通信的端口


local即内网进行数据通信的端口,remote即映射到公网的端口,此处与File Zilla中的端口都保持一致


之后使用公网IP+[ftp_cmd]中的remote_port即可连接TCP服务


记得需要在防火墙中放行这些端口!

四、使用花生壳实现

花生壳的使用同理,区别就是它会为你提供一个公网ip,不需要你自己拥有,而因此你也无法自定义使用哪个端口进行通信,而是尤其自动进行分配

我们同样创建两个映射,一个是21号端口的映射

1b07e8432741f7ba5d93761f065dfbee.png

另一个我们先随便现在内网端口中填写一个端口号,如下

ce10ae9839e3154a0d3eb5112dfefdd3.png

随后它会为我们分配公网的端口号

d992e333b49e328555427b7d239057dc.png

我们再对这个映射进行编辑,将内75c6e3d62bb72a5c0ff0b5e8bd2e00a4.png网端口与分配的外网端口保持一致

在得到这个端口号后再去file zilla中填写被动模式中的自定义端口范围。


即如果自己有公网ip则可以使用frp自己设置开放哪个端口进行数据通信,没有的话则用花生壳这样的工具提供的公网和分配的端口,得到端口和公网地址之后再返回去file zilla中设置ip和端口

五、其他设置

禁用ip检查bcb199d75bff82d35daf9984368e617b.png

设置证书(点击生成新证书后填写相关信息即可)

a1a1166a2a86e6429259367b0fa169c0.png

配置用户组

添加用户,设置密

1766bc453b9cc0081c1b64ad69ee4310.png

设置共享文件夹和访问权限

0a6fa14a263088cb7468ab02d91e85f9.png

六、设置开机自启动

服务器端(linux)自启动

客户端(windows)自启动

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
3月前
|
安全 编译器 Linux
深入解析与防范:基于缓冲区溢出的FTP服务器攻击及调用计算器示例
本文深入解析了利用缓冲区溢出漏洞对FTP服务器进行远程攻击的技术,通过分析FreeFlow FTP 1.75版本的漏洞,展示了如何通过构造过长的用户名触发缓冲区溢出并调用计算器(`calc.exe`)。文章详细介绍了攻击原理、关键代码组件及其实现步骤,并提出了有效的防范措施,如输入验证、编译器保护和安全编程语言的选择,以保障系统的安全性。环境搭建基于Windows XP SP3和Kali Linux,使用Metasploit Framework进行攻击演示。请注意,此内容仅用于教育和研究目的。
102 4
|
5月前
|
网络协议 文件存储 Windows
Windows Server 2019 FTP服务器搭建
Windows Server 2019 FTP服务器搭建
156 0
|
5月前
|
安全 网络协议 网络安全
Windows Server 2003 FTP服务器搭建
Windows Server 2003 FTP服务器搭建
|
5月前
|
弹性计算 关系型数据库 网络安全
阿里云国际版无法连接和访问Windows服务器中的FTP服务
阿里云国际版无法连接和访问Windows服务器中的FTP服务
|
7月前
|
JavaScript Linux 应用服务中间件
【Azure 应用服务】FTP 部署 Vue 生成的静态文件至 Linux App Service 后,访问App Service URL依旧显示Azure默认页面问题
【Azure 应用服务】FTP 部署 Vue 生成的静态文件至 Linux App Service 后,访问App Service URL依旧显示Azure默认页面问题
|
7月前
|
安全 Ubuntu Linux
在Linux中,如何进行FTP服务器配置?
在Linux中,如何进行FTP服务器配置?
|
8月前
|
网络协议 Unix 网络安全
FTP服务器怎么搭建?Windows server搭建FPT服务器
FTP服务器是按照FTP协议提供文件传输服务的计算机。它用于在两台计算机间安全地传输文件,支持用户权限管理和跨平台操作。FTP使用控制连接处理命令,数据连接传输文件,有PORT和PASV模式。要搭建FTP服务器,首先在Windows Server 2008 R2上安装IIS,确保选中FTP服务。接着,创建FTP文件夹作为站点根目录,通过IIS管理器添加FTP站点,配置站点信息、身份验证和权限。测试客户端通过telnet和浏览器访问FTP服务器,确认能成功登录及浏览文件。FTP常用于文件共享和管理,可通过专用工具如FlashFXP上传下载文件。
249 0
FTP服务器怎么搭建?Windows server搭建FPT服务器
|
16天前
|
存储 机器学习/深度学习 人工智能
2025年阿里云GPU服务器租用价格、选型策略与应用场景详解
随着AI与高性能计算需求的增长,阿里云提供了多种GPU实例,如NVIDIA V100、A10、T4等,适配不同场景。2025年重点实例中,V100实例GN6v单月3830元起,适合大规模训练;A10实例GN7i单月3213.99元起,适用于混合负载。计费模式有按量付费和包年包月,后者成本更低。针对AI训练、图形渲染及轻量级推理等场景,推荐不同配置以优化成本和性能。阿里云还提供抢占式实例、ESSD云盘等资源优化策略,支持eRDMA网络加速和倚天ARM架构,助力企业在2025年实现智能计算的效率与成本最优平衡。 (该简介为原文内容的高度概括,符合要求的字符限制。)
|
17天前
|
存储 弹性计算 人工智能
2025年阿里云企业云服务器ECS选购与配置全攻略
本文介绍了阿里云服务器的核心配置选择方法论,涵盖算力需求分析、网络与存储设计、地域部署策略三大维度。针对不同业务场景,如初创企业官网和AI模型训练平台,提供了具体配置方案。同时,详细讲解了购买操作指南及长期运维优化建议,帮助用户快速实现业务上云并确保高效运行。访问阿里云官方资源聚合平台可获取更多最新产品动态和技术支持。
|
8天前
|
人工智能 负载均衡 数据可视化
阿里云出手了,DeepSeek服务器拒绝繁忙,免费部署DeepSeek模型671B满血版
阿里云推出免费部署DeepSeek模型671B满血版服务,通过百炼大模型平台,用户无需编码,最快5分钟、最低0元即可完成部署。平台提供100万免费Token,支持DeepSeek-R1和DeepSeek-V3等多款模型调用,有效解决服务器繁忙问题。新手零基础也能轻松上手,享受高效稳定的API调用和自动弹性扩展功能。教程涵盖开通服务、获取API-KEY及配置Chatbox客户端等步骤,详细指引助您快速实现DeepSeek自由。
91 18