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

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

相关推荐
qq_297574674 小时前
Linux 服务器 Java 开发环境搭建保姆级教程
java·linux·服务器
聆风吟º5 小时前
CANN开源项目实战指南:使用oam-tools构建自动化故障诊断与运维可观测性体系
运维·开源·自动化·cann
神梦流5 小时前
ops-math 算子库的扩展能力:高精度与复数运算的硬件映射策略
服务器·数据库
NPE~5 小时前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化
神梦流5 小时前
GE 引擎的内存优化终局:静态生命周期分析指导下的内存分配与复用策略
linux·运维·服务器
凡人叶枫5 小时前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++
Lsir10110_6 小时前
【Linux】进程信号(下半)
linux·运维·服务器
skywalk81636 小时前
unbound dns解析出现问题,寻求解决之道
运维·服务器·dns·unbound
酉鬼女又兒6 小时前
零基础入门Linux指南:每天一个Linux命令_pwd
linux·运维·服务器
云飞云共享云桌面6 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能