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

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

相关推荐
爱和冰阔落2 分钟前
【Linux网络】Socket 编程前要搞懂什么?从 IP、端口到字节序与 sockaddr,一次理清网络通信基础
linux·运维·网络·tcp/ip
晚风叙码19 分钟前
Linux 进程概念(上):从冯诺依曼到进程调度
linux·运维·计算机外设
Z21-X28 分钟前
云原生运维笔记:硬核拆解OpenStack计算与存储——从主机聚合到Cinder挂载全流程
运维·笔记·学习·云原生·openstack
开开心心就好33 分钟前
电脑语音实时转文字工具,会议记录很省事
运维·服务器·前端·c#·ocr·perl·1024程序员节
波力海苔夹心脆67542 分钟前
C# 固高 GTS 运动控制卡入门:伺服上下电、Jog 点动与二维插补(WinForms 实战)
服务器·开发语言·c#·运动控制·伺服电机·winforms·固高
一只鹿鹿鹿1 小时前
医院绩效管理体系方案
大数据·运维·安全·web安全·制造
java_logo1 小时前
Docker 部署 Portainer CE 中文版:轻松搭建容器管理平台
运维·docker·容器·portainer·容器管理·轩辕镜像·portainer ce
山东孙燕姿1 小时前
前端框架升级:不敢动的组件怎么办
大数据·运维·服务器·网络·人工智能·前端框架
古法老登瞎折腾9 小时前
大数据智能运维实战(十一):运维 MCP 的工程化——权限、限流、审计与错误处理
java·大数据·运维·spring ai·mcp
琥珀.9 小时前
mysql中json数组转列表查询
linux·运维·服务器