边缘服务器 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

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

相关推荐
@卞6 小时前
从0到1:Linux 系统编程 --- 冯·诺依曼体系结构
linux·运维·服务器
Full Stack Developme6 小时前
Python Calendar 模块教程
java·服务器·python
橙狮科技6 小时前
大厂MongoDB开发运维规范
运维·数据库·mongodb
数智顾问6 小时前
自动驾驶软件系统基石:RTOS操作系统与Framework框架的协同机制解析
服务器·unix
九河云7 小时前
传统数据安全措施与云计算数据安全的区别
运维·服务器·数据库·云计算
刘某的Cloud10 小时前
SSH命令建立隧道
linux·运维·ssh·系统·shell
weixin_4715257813 小时前
【gdb/sqlite3移植/mqtt】
linux·运维·服务器
Guheyunyi16 小时前
消防管理系统如何重构现代空间防御体系
大数据·运维·人工智能·安全·信息可视化·重构
我是好小孩17 小时前
【Android】六大设计原则
android·java·运维·服务器·设计模式