温馨提示×

Ubuntu FTP Server如何实现文件传输

小樊
43
2025-12-27 01:06:15
栏目: 智能运维

Ubuntu FTP Server 实现文件传输

一 安装与基础配置

  • 安装 vsftpd(Very Secure FTP Daemon):sudo apt update && sudo apt install vsftpd
  • 备份并编辑配置文件:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak;sudo nano /etc/vsftpd.conf
  • 常用基础配置(允许本地用户登录与写入,按需开启匿名):
    • local_enable=YES
    • write_enable=YES
    • anonymous_enable=NO(或 YES 允许匿名,注意风险)
    • local_umask=022(上传文件默认权限掩码)
  • 创建专用 FTP 用户(可选):sudo adduser ftpuser,按需设置家目录与权限
  • 使配置生效:sudo systemctl restart vsftpd;建议同时启用开机自启:sudo systemctl enable vsftpd

二 防火墙与端口开放

  • 主动模式(PORT):放行控制通道与数据通道端口
    • sudo ufw allow 21/tcp
    • sudo ufw allow 20/tcp
  • 被动模式(PASV,推荐穿越 NAT/云厂商安全组):放行控制通道与被动端口区间
    • sudo ufw allow 21/tcp
    • sudo ufw allow 40000:50000/tcp(示例区间,需在配置中同步设置 pasv_min_port/pasv_max_port)
  • 启用防火墙:sudo ufw enable
  • 如使用 FTPS,还需放行:sudo ufw allow 990/tcp
  • 云服务器请在安全组对应开放上述端口

三 客户端连接与传输

  • 图形化客户端(FileZilla)
    • 主机:服务器 IP
    • 端口:21
    • 协议:FTP - 明文(或 FTP over SSL/TLS 若启用 FTPS)
    • 登录类型:正常,输入用户名与密码
    • 连接后即可在左右面板间拖拽完成上传/下载
  • 命令行示例(ftp)
    • 连接:ftp <服务器IP>
    • 登录后常用命令:ls、cd、put <本地文件> <远程文件>、get <远程文件> <本地文件>、bye
  • 命令行示例(lftp,支持断点续传与后台)
    • 安装:sudo apt install lftp
    • 连接与传输:lftp ftp://用户名:密码@服务器IP;get/put/mirror 等

四 安全与常见问题

  • 安全建议
    • FTP 明文传输,建议启用 FTPS(配置 ssl_enable=YES,指定证书)或直接使用 SFTP/SSH(系统自带 OpenSSH,通常无需额外 FTP 服务)
    • 限制用户目录:chroot_local_user=YES;若需可写,配置 allow_writeable_chroot=YES(或采用虚拟用户/专用目录方案)
    • 精细化访问控制:userlist_enable=YES、userlist_deny=NO 与 /etc/vsftpd.userlist 白名单
  • 常见故障排查
    • 无法列出目录或传输失败:检查是否为 被动模式 且已放行被动端口区间(如 40000:50000/tcp),并在客户端设置为被动模式
    • 登录被拒绝:核对本地/匿名开关、用户是否存在与密码是否正确、PAM/家目录权限
    • 上传失败:确认 write_enable=YES,且用户对目标目录具备写权限
    • 云环境不通:除系统防火墙外,还需在 云安全组 放行 21/tcp 与被动端口区间

0