温馨提示×

Ubuntu vsftp数据传输

小樊
38
2025-11-14 18:06:09
栏目: 智能运维

Ubuntu 上使用 vsftpd 进行安全高效的数据传输

一 安装与基础配置

  • 安装 vsftpd
    • 执行:sudo apt update && sudo apt install vsftpd
  • 核心配置 /etc/vsftpd.conf(示例)
    • 启用本地用户与写入:local_enable=YESwrite_enable=YES
    • 日志与连接:xferlog_enable=YESconnect_from_port_20=YES
    • 目录限制:chroot_local_user=YESallow_writeable_chroot=YES
    • 访问控制:pam_service_name=vsftpduserlist_enable=YES
  • 生效与客户端连接
    • 重启服务:sudo systemctl restart vsftpd
    • 客户端(如 FileZilla)使用 FTP 协议连接服务器 IP/域名 与用户名/密码即可上传下载。

二 启用加密传输 FTPS

  • 生成自签名证书(测试用)
    • 执行:sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
  • 配置 /etc/vsftpd.conf
    • 启用 TLS:ssl_enable=YES
    • 强制加密:force_local_logins_ssl=YESforce_local_data_ssl=YES
    • 协议与证书:ssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NO
    • 证书路径:rsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pem
  • 防火墙放行
    • 执行:sudo ufw allow 21/tcpsudo ufw allow 990/tcp
  • 客户端连接
    • 使用 FTPS(显式 SSL),端口 990;或在客户端设置为“需要显式 FTP over TLS”。

三 被动模式与防火墙设置

  • vsftpd 被动模式
    • 配置:pasv_enable=YESpasv_min_port=40000pasv_max_port=50000
  • 防火墙放行
    • 执行:sudo ufw allow 40000:50000/tcp
  • 云服务器与 NAT 场景
    • 若服务器在 NAT 后,设置公网出口 IP:pasv_address=你的公网IP
  • 说明
    • 主动模式由客户端开数据端口,常受客户端 NAT/防火墙限制;被动模式由服务器开端口,更利于穿越防火墙。

四 性能优化与限速

  • 并发与速率控制
    • 并发连接:max_clients=50max_per_ip=10
    • 速率限制(Bytes/s):local_max_rate=0(不限制)、anon_max_rate=0
  • 模式与端口
    • 保持 pasv_enable=YES 并固定端口段,减少连接建立开销
  • 系统层面
    • 保障网络稳定与磁盘 I/O,避免其他进程抢占带宽/磁盘
  • 生效
    • 修改后重启:sudo systemctl restart vsftpd

五 常见问题与排查

  • 登录失败或目录不可写
    • 检查:local_enable=YESwrite_enable=YESchroot_local_user=YES 与目录权限;若启用 chroot 且需写,设置 allow_writeable_chroot=YES
  • 被动模式连接超时
    • 核对 pasv_min_port/pasv_max_port 与防火墙放行;NAT 下设置 pasv_address
  • 明文传输风险
    • 建议启用 FTPS(端口 990),客户端选择“显式 SSL/TLS”
  • 日志与验证
    • 查看日志:sudo tail -f /var/log/vsftpd.log
    • 语法检查:vsftpd -v,无误后重启服务

0