一、应用场景
本服务主要用于 边缘节点与中心节点之间的文件分发和同步,支持:
-
边缘服务器远程部署程序与配置文件
-
算法文件更新与 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)
六、运维建议
-
安全建议
-
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
-
定期修改密码,限制匿名访问。
-
-
目录规划
/home/ftp/ ├── hefu/ # 项目专用目录 ├── logs/ # 上传记录 ├── share/ # 运维共享区 └── temp/ # 临时文件缓存
-
容器更新
docker pull fauria/vsftpd:latest docker restart ftp
-
备份与清理
-
可使用
rsync
同步备份/home/ftp
。 -
定期清理过期文件或大文件,防止磁盘写满。
-