Muka FTP 服务端是一个简单但可配置的 FTP/FTPS 服务端,使用 Rust 与 libunftp 构建,支持 Windows、Linux 与 macOS。

功能特性

  • 零参数启动:在当前目录以默认端口 21 启动匿名 FTP 服务器,具有读写权限。
  • 指定端口:通过 --port 自定义监听端口。
  • 主动/被动模式:通过 --mode active|passive 切换。
  • 身份验证:通过 --username--password-env 设置登录凭证。
  • 指定根目录:通过 --root 指定 FTP 根路径。
  • TLS 加密:通过 --tls explicit --cert <证书> --key <私钥> 启用显式 FTPS。
  • 只读模式:通过 --read-only 禁止上传、删除、重命名等写操作。
  • 自动退出:通过 --auto-exit <秒数> 让服务器在指定时间后自动关闭。
  • 安全警告:启动时若检测到明文传输、匿名访问、空密码等高风险配置,会打印中文安全提示。
  • 跨平台:基于 Rust 标准库与 tokio,可在 Windows、Linux、macOS 上运行。

快速开始

编译

cargo build --release

编译完成后,可执行文件位于 target/release/muka-ftpserver

运行示例

1. 无参数启动(当前目录,默认端口,匿名访问)

muka-ftpserver

2. 指定端口

muka-ftpserver -p 2121

3. 设置用户名与密码

export MUKA_FTP_PASSWORD=mypass
muka-ftpserver -u myuser --anonymous=false

4. 指定 FTP 根目录

muka-ftpserver -r /path/to/ftp/root

5. 启用 FTPS 加密

muka-ftpserver --tls explicit --cert server.crt --key server.key

6. 只读模式

muka-ftpserver --read-only

7. 指定时间后自动退出

# 运行 60 秒后自动关闭
muka-ftpserver -t 60

命令行参数

-p, --port <PORT>              监听端口 [default: 21]
-b, --bind <BIND>              绑定地址 [default: 0.0.0.0]
-r, --root <ROOT>              FTP 根目录 [default: .]
-u, --username <USERNAME>      用户名(不提供则允许匿名访问)
    --password-env <VAR>       存放密码的环境变量名 [default: MUKA_FTP_PASSWORD]
    --anonymous <ANONYMOUS>    是否允许匿名访问 [default: true]
    --read-only                是否只读
-m, --mode <MODE>              主动/被动模式 [default: passive]
    --passive-ports <RANGE>    被动模式数据端口范围 [default: 49152-65535]
    --tls <TLS>                TLS 加密方式 [default: none]
    --cert <CERT>              TLS 证书文件路径(PEM 格式)
    --key <KEY>                TLS 私钥文件路径(PEM 格式)
-t, --auto-exit <SECONDS>      运行指定秒数后自动退出
-g, --greeting <GREETING>      连接欢迎消息
    --external-ip <IP>         被动模式对外通告的 IP 地址或主机名(用于 NAT 环境)
    --log-level <LEVEL>        日志级别 [default: info]
-h, --help                     Print help
-V, --version                  Print version

安全提示

  • 默认无参数启动会启用匿名访问且不使用加密,不适合直接暴露在公网
  • 建议在公网或生产环境中使用 --tls explicit 配合证书,并设置强密码、关闭匿名访问。
  • 服务器启动时会自动检测高风险配置并打印中文安全警告。

许可证

MIT License