MyFTP — 功能介绍

一款 Windows 桌面 FTP 客户端:双栏浏览本机与远程目录,支持 FTP / FTPS / SFTP 上传下载,站点凭证本地 DPAPI 加密保存。基于 Electron + 自研 C++ 协议栈,不依赖第三方 FTP SDK。

一款 Windows 桌面 FTP 客户端:双栏浏览本机与远程目录,支持 FTP / FTPS / SFTP 上传下载,站点凭证本地 DPAPI 加密保存。基于 Electron + 自研 C++ 协议栈,不依赖第三方 FTP SDK。


一、软件概览

MyFTP 面向日常文件传输与内网运维场景:左侧浏览本机文件,右侧浏览远程服务器,选中后一键上传/下载,或直接拖拽到另一栏。连接、列表、传输、站点管理均在本机完成,密码不上传云端。

核心能力:

工作区双栏浏览

工作区:连接栏 + 双栏文件浏览 + 底部传输面板;明文 FTP 时会显示安全警告


二、工作原理(简述)

MyFTP 分两层:Electron 界面负责展示与交互;C++ 动态库(sdtech_myftp) 负责真实的网络协议。界面通过 IPC 调用 DLL 的 C ABI,DLL 内部自研 TCP、FTP 命令通道、LIST 解析,以及 FTPS(OpenSSL)和 SFTP(libssh2)会话。

协议 说明 适用场景
FTP 控制通道 + 数据通道;默认明文 可信内网、老设备
FTPS 在 FTP 上叠加 TLS(AUTH TLS 或隐式 SSL) 公网或需加密的 FTP
SFTP SSH 子系统,与 FTP 无关 现代 Linux 服务器、云主机

被动模式(PASV)默认开启,适合 NAT/防火墙后的客户端。若列表或传输异常,可在设置中切换 PASV/PORT(见 3.5 设置)。


三、主要功能

3.1 页面导航

左侧竖栏可在五个页面间切换;标题栏显示当前页名称,支持最小化/最大化/关闭。

页面 说明
工作区 快速连接、双栏文件浏览、传输面板
站点管理器 保存/编辑/删除站点,一键连接并跳转工作区
帮助 上手步骤、协议说明、PASV 与防火墙提示
设置 并发数、速度限制、PASV、代理等
关于 版本与产品信息

3.2 工作区

  1. 填写主机、端口、协议、用户名、密码,或从站点管理器带入
  2. 点击连接;成功后右侧列出远程目录,左侧列出本机目录
  3. 选中文件后点上传/下载,或将本机文件拖拽到远程栏
  4. 底部传输队列查看进度;日志 Tab 查看连接与命令摘要

右键菜单(本机/远程)支持:打开目录、上传、下载、删除、重命名、CHMOD(远程)等。

明文 FTP 警告:连接 FTP(非 FTPS/SFTP)时,连接栏下方显示黄色安全提示,建议改用 FTPS 或 SFTP。

3.3 站点管理器

站点管理器

站点管理器:左侧分组列表 + 右侧编辑表单;支持新建、复制、删除与一键连接

3.4 传输与日志

功能 说明
并发传输 默认最多 3 个任务并行(可在设置中调整)
进度与速度 后端 SIZE + 字节计数;前端约 200ms 轮询刷新
取消 单任务取消
清除已完成 从队列移除已完成/失败/已取消项
日志 连接、登录、PASV、LIST 等命令摘要

传输队列进度

传输队列:方向图标、源/目标路径、进度条、速度、剩余时间与状态;支持全部暂停与清除已完成

3.5 帮助

帮助页汇总三步上手、FTP / FTPS / SFTP / FXP 协议说明、PASV 与防火墙提示,以及当前版本支持/不支持能力清单。

帮助页

帮助页:协议说明与 MyFTP 支持范围;底部为隐私与明文 FTP 提示

3.6 设置

选项 说明
最大并发传输 同时进行的 upload/download 任务数
上传/下载限速 0 表示不限速
被动模式 (PASV) NAT 后客户端建议开启
冲突策略 覆盖、跳过、重命名或询问
代理 HTTP / SOCKS5(可选)
证书策略 FTPS 严格校验或允许自签

设置页

设置页:传输、网络与 FTPS 证书相关选项;本机默认路径在此配置

3.7 关于

关于页显示产品名称、版本号与 SDTech 客户端工程信息。

关于页

关于页:MyFTP 版本与 06_MyFTP 工程标识

3.8 隐私与安全


四、使用示例

示例 1:快速连接内网 FTP

  1. 打开 工作区,协议选 FTP,填写主机 192.168.x.x、端口 21、用户名与密码
  2. 点击连接,确认右侧出现远程目录列表
  3. 选中远程文件,点下载;或选中本机文件,点上传
  4. 在底部队列查看进度,完成后本机目录自动刷新

示例 2:保存站点并重复连接

  1. 进入 站点管理器,新建站点,填写连接信息
  2. 输入密码,点保存;再次编辑时密码栏留空表示沿用已保存密码
  3. 连接,自动跳转工作区并发起连接

示例 3:SFTP 连接 Linux 服务器

  1. 协议选 SFTP,端口通常 22
  2. 连接成功后,远程列表为 SSH 文件系统视图
  3. 支持上传、下载、删除、重命名、新建文件夹、CHMOD

五、安装与运行

运行环境

从安装包运行

下载并安装发布包后,从开始菜单或桌面快捷方式启动 MyFTP 即可。首次运行会在程序目录下创建 data 目录存放站点配置。

从源码构建(开发者)

cd Self/2026/06_MyFTP/Frontend
npm install
npm run backend      # 编译 C++ DLL 并复制到 Frontend/dll
npm run dev          # Vite + Electron 开发调试
npm run dist         # 打包 NSIS 安装程序

构建依赖 prebuilt/x64-windows 中的 vcpkg 预编译库(OpenSSL、libssh2、SDTech::Net 等)。

生成博文配图:

cd Self/2026/06_MyFTP
pip install -r scripts/requirements-screenshot.txt
python scripts/auto_screenshot.py --dev

截图保存至 Content/posts/2026/myftp-feature-intro/。详见源码 scripts/auto_screenshot.py


六、技术概要


七、结语

MyFTP 把「连上服务器、看目录、传文件」做成一个本地、可控的桌面工具:站点一次保存、双栏拖拽传输、队列看进度。若您在使用中遇到某类服务器 LIST 格式异常、PASV 端口被拦等问题,欢迎反馈服务器类型日志摘要,便于后续兼容扩展。