边缘服务器 FTP/TFTP 服务搭建与使用(Docker 方式)

一、应用场景

本服务主要用于 边缘节点与中心节点之间的文件分发和同步,支持:

  • 边缘服务器远程部署程序与配置文件

  • 算法文件更新与 edge 端镜像同步

  • 运维团队内部临时文件传输与共享

  • Edge 系统日志、快照、调试包上传

通过标准 FTP / TFTP 协议实现轻量级文件传输,便于在受限网络环境下快速部署。

二、基础信息

项目 说明
地址 ftp://220.196.xx.xx:2121
用户名 hefu
密码 hefu123
文件存放路径 /home/ftp/hefu/

提示:为保证安全,请在生产环境修改默认用户名和密码,并限制外部访问来源网段。

三、FTP 服务部署(基于 Docker)

以下示例均基于 fauria/vsftpd 官方镜像。

1️⃣ 单机部署示例(内网地址)

docker run -d -t \ --name ftp \ --restart=always \ -p 2121:21 -p 2020:20 -p 21100-21110:21100-21110 \ -v /home/ftp:/home/vsftpd \ -e FTP_USER=write \ -e FTP_PASS=write@123 \ -e PASV_ADDRESS=10.10.0.135 \ -e PASV_ADDR_RESOLVE=YES \ -e PASV_PROMISCUOUS=YES \ -e PASV_MIN_PORT=21100 \ -e PASV_MAX_PORT=21110 \ fauria/vsftpd

2️⃣ 公网部署示例

docker run -d -t \ --name ftp \ --restart=always \ -p 2121:21 -p 2020:20 -p 21100-21110:21100-21110 \ -v /home/ftp:/home/vsftpd \ -e FTP_USER=write \ -e FTP_PASS=write@123 \ -e PASV_ADDRESS=173.248.225.186 \ -e PASV_ADDR_RESOLVE=YES \ -e PASV_PROMISCUOUS=YES \ -e PASV_MIN_PORT=21100 \ -e PASV_MAX_PORT=21110 \ fauria/vsftpd

3️⃣ 多用户示例(内部运维共享)

docker run -d -t \ --name ftp \ --restart=always \ -p 2121:21 -p 2020:20 -p 21100-21110:21100-21110 \ -v /home/ftp:/home/vsftpd \ -e FTP_USER=ftp \ -e FTP_PASS='Topnet@ftp.20@%' \ -e PASV_ADDRESS=10.11.0.101 \ -e PASV_ADDR_RESOLVE=YES \ -e PASV_PROMISCUOUS=YES \ -e PASV_MIN_PORT=21100 \ -e PASV_MAX_PORT=21110 \ fauria/vsftpd


四、TFTP 服务部署

TFTP 主要用于自动化批量更新、配置文件下发、设备固件写入等轻量场景。

部署方式同样简单:

docker run -d -t \ --name tftp \ -p 0.0.0.0:69:69/udp \ -v /home/tftp:/var/tftpboot \ pghalliday/tftp

目录 /home/tftp 即为根目录,可直接通过 tftp 客户端上传或下载文件。


五、常见问题与解决方案

1️⃣ FTP 连接正常但无法上传非 txt 文件

原因:FTP 容器目录权限或 SELinux 限制。
解决方案:

chmod -R 777 /home/ftp setenforce 0

或在 Docker 运行时加上:

--security-opt label:disable


2️⃣ 浏览器访问时出现旧文件或缓存

Windows 默认使用 IE 内核访问 FTP,会缓存目录。

临时清除:

打开 IE → 按 Ctrl + Shift + Del → 勾选"临时文件"清除。

永久禁用缓存:

控制面板 → 网络和 Internet → Internet 选项 → 常规 → 设置 → 选择"每次访问网页时检查较新版本"。


3️⃣ 连接超时或无法登录

检查:

  • 防火墙是否放行端口 20,21,21100-21110

  • PASV_ADDRESS 是否为真实可访问 IP(内外网需区分)

  • 是否使用 主动(Active)模式,某些客户端默认被动(Passive)


六、运维建议

  1. 安全建议

    • FTP 默认明文传输,推荐仅限内网使用或使用 FTPS 加密传输。

    • 可通过 firewalld 限制访问源:

      firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.0/8" accept' firewall-cmd --reload

    • 定期修改密码,限制匿名访问。

  2. 目录规划

    /home/ftp/ ├── hefu/ # 项目专用目录 ├── logs/ # 上传记录 ├── share/ # 运维共享区 └── temp/ # 临时文件缓存

  3. 容器更新

    docker pull fauria/vsftpd:latest docker restart ftp

  4. 备份与清理

    • 可使用 rsync 同步备份 /home/ftp

    • 定期清理过期文件或大文件,防止磁盘写满。

相关推荐
专注API从业者12 小时前
告别人工盯品!借助 Open Claw 搭建电商商品自动化监控与数据分析系统(完整可运行源码)
大数据·运维·数据库·数据分析·自动化
爱喝水的鱼丶14 小时前
SAP-ABAP:ABAP 用户出口参数传递与上下文获取:SAP 标准数据读取与交互逻辑实现
运维·性能优化·交互·sap·abap·经验交流·出口
IT大白鼠14 小时前
PentestGPT作为AI运维编排工作流自动化底座的技术架构与应用价值评估
运维·人工智能·自动化·pentestgpt
j7~15 小时前
【Git】《Git 系列指南(二):Git基本操作与 reset 三种模式》
运维·git·git安装·git基本操作·git配置·创建git仓库·git reset三种模式
zzzll111115 小时前
n8n 工作流自动化平台入门指南
运维·自动化
Hrain-AI15 小时前
Anthropic oncall-kit 开源拆解:运维 Agent 落地范式的四基石与权限边界
运维·人工智能·开源
HXDGCL15 小时前
从“转盘困局”到“直线破局”:华创力科技PTS精密分度输送系统如何重塑自动化产线
运维·科技·自动化
戴西软件16 小时前
国内有哪些智能化RPA工具?——从“录数据”到“做判断”,国产数字员工正在重新定义自动化
运维·自动化·rpa
Linux-lucky16 小时前
28-Linux学习之旅之Maven与Nexus制品库
linux·运维·学习·nginx·tomcat·maven
Zhu75818 小时前
在Docker环境离线部署最新版Harbor
运维·docker·容器