温馨提示×

Ubuntu FTPServer如何进行远程访问

小樊
32
2025-11-23 14:23:00
栏目: 智能运维

Ubuntu FTPServer 远程访问实操指南

一 安装与基础配置

  • 安装 vsftpd: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)
    • 禁锢用户到主目录:chroot_local_user=YES;允许可写:allow_writeable_chroot=YES
  • 创建专用 FTP 用户:sudo adduser ftpuser;按需设置密码与家目录权限(如:sudo chown ftpuser:ftpuser /home/ftpuser;sudo chmod 755 /home/ftpuser)
  • 使配置生效:sudo systemctl restart vsftpd;建议设为开机自启:sudo systemctl enable vsftpd

二 启用加密传输 FTPS

  • 生成自签名证书(示例有效期 365 天):
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.crt
  • 在 vsftpd.conf 中启用 SSL/TLS:
    • ssl_enable=YES
    • rsa_cert_file=/etc/ssl/private/vsftpd.crt
    • rsa_private_key_file=/etc/ssl/private/vsftpd.key
  • 重启服务:sudo systemctl restart vsftpd
  • 客户端连接建议:使用显式 FTPS(FTP over SSL/TLS),端口 990;若使用隐式 FTPS,端口 990 并在客户端启用隐式模式

三 防火墙与被动模式端口

  • UFW 放行(示例范围 40000–50000,可按需缩小):
    • 控制通道:sudo ufw allow 21/tcp
    • 数据通道(主动模式):sudo ufw allow 20/tcp
    • 被动模式端口段:sudo ufw allow 40000:50000/tcp
    • 启用防火墙:sudo ufw enable
  • vsftpd 被动模式配置(与防火墙端口段保持一致):
    • pasv_enable=YES
    • pasv_min_port=40000
    • pasv_max_port=50000
  • 云服务器安全组/NACL:放行 21/TCP990/TCP(若启用 FTPS)以及上述被动端口段

四 客户端远程连接步骤

  • 显式 FTPS(推荐):
    • 主机:服务器公网 IP 或域名
    • 端口:990
    • 协议:FTP – Explicit over TLS
    • 登录:输入 ftpuser 与密码
  • 普通 FTP(明文,不推荐公网使用):
    • 主机:IP
    • 端口:21
    • 协议:FTP
  • 命令行测试:ftp your_server_ip(明文);或 lftp -u ftpuser -p 990 your_server_ip(FTPS,需客户端支持)
  • 图形化工具:FileZilla 选择相应协议与端口即可连接

五 安全与排错要点

  • 安全建议:
    • 禁用匿名:anonymous_enable=NO;必要时仅在内网开放
    • 限制用户目录:chroot_local_user=YES;若需写入,使用 allow_writeable_chroot=YES 或改为不可写并配置专用可写目录
    • 日志与审计:xferlog_enable=YESxferlog_std_format=YES
    • 更安全的替代:SFTP(基于 SSH,系统自带 OpenSSH 即可,默认启用)
  • 常见排错:
    • 无法登录:检查用户是否存在、密码是否正确、家目录权限与 chroot 设置
    • 数据连接失败:核对被动端口段与防火墙/安全组是否一致,云厂商安全组常漏放被动端口
    • 证书不受信任:自签名证书首次连接需手动确认;生产环境建议使用受信任 CA 签发证书

0