温馨提示×

如何利用CentOS FTPServer进行文件传输

小樊
42
2025-11-21 23:18:10
栏目: 智能运维

在 CentOS 上使用 vsftpd 搭建 FTP 并进行文件传输

一 安装与基础配置

  • 安装 vsftpd(Very Secure FTP Daemon):执行命令:sudo yum install -y vsftpd
  • 启动并设置开机自启:sudo systemctl start vsftpd && sudo systemctl enable vsftpd
  • 基础安全与功能配置(编辑 /etc/vsftpd/vsftpd.conf):
    • 启用本地用户登录:local_enable=YES
    • 允许写入:write_enable=YES
    • 禁止匿名:anonymous_enable=NO
    • 将本地用户限制在其主目录:chroot_local_user=YES
    • 允许 chroot 目录可写(避免登录失败):allow_writeable_chroot=YES
  • 说明:FTP 使用控制连接端口 21/TCP,数据连接在主动模式由服务器从 20/TCP 发起;被动模式数据端口可自定义范围,便于防火墙放行。

二 防火墙与被动模式端口

  • 放行 FTP 控制端口与数据端口范围(推荐被动模式):
    • 放行控制端口:sudo firewall-cmd --permanent --add-port=21/tcp
    • 放行被动模式数据端口范围(示例为 5000–5500/TCP):
      • 配置 vsftpd:pasv_min_port=5000pasv_max_port=5500(写入 /etc/vsftpd/vsftpd.conf)
      • 防火墙放行:sudo firewall-cmd --permanent --add-port=5000-5500/tcp
    • 使规则生效:sudo firewall-cmd --reload
  • 如使用云服务器,还需在云平台安全组放行上述端口。

三 创建用户与目录权限

  • 创建专用 FTP 用户(禁止 shell 登录更安全):
    • 添加用户:sudo useradd -m -d /home/ftpuser -s /sbin/nologin ftpuser
    • 设置密码:sudo passwd ftpuser
  • 目录与权限示例:
    • 若需上传,确保目标目录对 ftpuser 可写,例如在 /var/ftp/pub 测试上传时,设置:sudo chmod 766 /var/ftp/pub;进入目录后再上传更易成功(如先执行 cd pub)。
  • 注意:被 chroot 的用户主目录应可写(或使用 allow_writeable_chroot)。

四 客户端连接与文件传输

  • 命令行 ftp(系统自带):
    • 连接:ftp 服务器IP
    • 登录后常用:
      • 切换本地目录:lcd /path/to/local
      • 切换远端目录:cd /remote/path
      • 查看:ls / dir
      • 传输模式:二进制传输(通用且安全)bin
      • 上传:put localfile;下载:get remotefile
  • 图形化客户端:使用 FileZilla/WinSCP,输入服务器 IP、用户名与密码即可拖拽上传/下载。
  • 命令行增强工具:安装并使用 lftp(支持断点续传、后台、镜像等):sudo yum install -y lftp,连接:lftp ftp://ftpuser@服务器IP

五 安全加固与常见问题

  • 启用 SSL/TLS 加密(FTPS):
    • 生成证书:sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/vsftpd.pem -out /etc/pki/tls/certs/vsftpd.pem
    • 配置 vsftpd:启用 ssl_enable=YESforce_local_data_ssl=YESforce_local_logins_ssl=YES,并指定证书与密钥路径;重启服务。
  • 常见故障排查:
    • 无法连接:检查 firewalld/安全组 是否放行 21/TCP 与被动端口范围。
    • 登录后无法上传:目录权限不足或未在可写目录;必要时设置 chmod 766 目标目录 并确认已进入该目录再上传。
    • SELinux 影响:如遇到权限问题,可临时 setenforce 0 验证,或按策略为 FTP 放行相关访问。
  • 安全建议:生产环境优先使用 FTPS 或改用更安全的 SFTP/SSH;定期审计日志与账户权限。

0