
monteops/vsftpd本镜像为VSFTPD的微服务镜像,基于Debian 11构建,支持SSL/FTPS。适用于需要轻量级FTP服务的场景,尤其适合对文件传输安全性有要求的环境。使用时需注意:需采用主机网络(--net host)或确保Docker容器与客户端之间存在直接路由网络,否则可能存在功能限制。
--build-arg FTP_UID=1000 --build-arg FTP_GID=1000(示例将UID/GID设为1000:1000)| 环境变量 | 说明 |
|---|---|
FTP_USER | 设置默认FTP用户 |
FTP_PASSWORD | 明文密码(不推荐使用) |
FTP_PASSWORD_HASH | 用户密码哈希值,需使用mkpasswd -m sha-512生成(依赖debian的whois包) |
FTP_USER_* | 添加多个用户,格式为username:hash,不可与FTP_USER和FTP_PASSWORD(_HASH)同时使用 |
FTP_USERS_ROOT | 若设置,vsftpd的local_root将设为/srv/$USER,每个用户将chroot到各自目录(而非共享目录) |
FTP_CHOWN_ROOT | 若设置,将对/srv目录执行chown,设置FTP用户和组为目录所有者(仅对根目录执行,非递归) |
bashdocker run --rm -it -p 21:21 -p 4559-4564:4559-4564 -e FTP_USER=ftp -e FTP_PASSWORD=ftp docker.io/panubo/vsftpd:latest
bashdocker run --rm -it \ -p 21:21 -p 4559-4564:4559-4564 -e FTP_USERS_ROOT=yes \ -e FTP_USER_1=foo:$6$kbj...sDm1 \ -e FTP_USER_2=bar:$6$/doix...kkk1 \ -v /www/foo:/srv/foo -v /www/bar:/srv/bar \ docker.io/panubo/vsftpd:latest
默认不启用SSL,配置SSL需挂载证书和密钥,并使用vsftpd_ssl.conf配置文件:
bashdocker run --rm -it \ -e FTP_USER=panubo -e FTP_PASSWORD_HASH='$6$XWpu...DwK1' \ -v `pwd`/server.pem:/etc/ssl/certs/vsftpd.crt:ro \ -v `pwd`/server.pem:/etc/ssl/private/vsftpd.key:ro \ docker.io/panubo/vsftpd vsftpd /etc/vsftpd_ssl.conf
如需获取FTP日志,需将/var/log目录挂载到容器外部:
bashdocker run --rm -it -v /var/log/ftp:/var/log [其他参数] docker.io/panubo/vsftpd:latest
当前默认启用allow_writeable_chroot=YES,这在安全角度不推荐。禁用此选项的主要影响是local_root目录不能被FTP用户写入。有关此设置的安全风险详情,请参考serverfault: vsftp: why is allow_writable_chroot=YES a bad idea?。未来可能会将此配置设为可调整选项。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务