彻底解决容器化部署ftp

本文记录了在容器化环境中部署FTP服务遇到的挑战,包括主动模式和被动模式的理解,以及如何在Docker和Kubernetes中进行配置。在Kubernetes中,通过阿里云负载均衡服务解决端口问题,并分享了使用FileZilla和mac自带客户端连接FTP时遇到的问题及其解决思路。最后,介绍了公司的服务优势,提供服务器代理解决方案。
摘要由CSDN通过智能技术生成

背景

我们的项目要接管各种容器化中间件服务,之前容器化sftp相当顺利,在dockerhub上找了一个most popular image 通过kubernetes deployment 一部署分分钟搞定。这次部署ftp本以为更加简单,结果遇到一些坑,费了些劲。在此记录一下。

ftp核心要点

磨刀不误砍柴工,用好一个中间件,或者我们这里容器化之前需要先对它有个大致的了解,不然不同的搜索答案然后尝试,盲人摸象,反而浪费时间,也不利于自己的进步。

FTP是基于TCP协议的服务,而在FTP服务器和客户端建立连接时,有两种模式主动模式(Active)和被动模式(Passive)。
通过以下两张图就可以了解ftp两种模式的工作流程
在这里插入图片描述
在这里插入图片描述

容器化部署

镜像相关信息及获取方式参见dockerhub
这里我对该镜像稍微进行了改动,主要在ftp配置文件中增加了以下配置,关于配置的解释我已经加到注释中,因为涉及安全问题,请根据自己情况评估

#If the pasv_promiscuous is off (the default), the vsftpd server checks that the client (IP address), which is connecting to the transfer port is the same, as the client connected to the FTP control connection (which requested the transfer).

#When the pasv_promiscuous is on, no check is done. So if a potential attacker guesses the random port number (which may not be random, but incremental, hence easy to guess), he/she can connect to the transfer port before a legitimate client does and steal the data (in case of a download) or sneak in his/her own data (in case of an upload).
pasv_promiscuous=YES

以上配置主要是避免一些安全检测使连接失败的问题,比如如下提示

425 Security: Bad IP connecting

需要镜像及改动后的镜像请留言

docker

docker run -d -v /my/data/directory:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=myuser -e FTP_PASS=mypass \
-e PASV_ADDRESS=127.0.0.1 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd

在本地运行以上命令可以快速启动ftp服务,注意修改一下本地的挂载目录,另外环境变量PASV_ADDRESS如果是在本地无需修改,如果部署在其他服务器或者暴露在公网,要修改为对应的host ip 或 公网ip
有些文章中说需要进入到容器容器去修改或者增加一些用户信息,其实这里通过环境变量就已经搞定。docker部署方式相对简单很多。

kubernetes

今天主要遇到的问题就是我们是基于阿里云的kubernetes服务来部署的,service服务暴露是基于阿里云的负载均衡方式实现。

先说一下最终实现方案:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-ftp
  namespace: default
spec:
  progressDeadlin
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值