linux服务器现在用的vsftpd,因为附件的路径有中文,导致平台无法读取到附件,所以想换成pure-ftpd。

linux服务器现在用的vsftpd,因为附件的路径有中文,导致平台无法读取到附件,所以想换成pure-ftpd。
请问一下,换成pure-ftpd需要把vsftpd卸载吗,因为vsftp设置了多用户,一个读,一个读写,pure-ftpd支持次功能吗。
或者不安装pure-ftpd的话,有更好的方法吗。

首先第一,是告诉你,将vsftpd换成pure-ftpd,需要先卸载vsftpd
其次第二,如果你不想卸载vsftpd,可以尝试修改vsftpd的配置文件 /etc/vsftpd.conf,以支持中文路径。
需要在配置文件中添加以下行:local_root=/home/users/,UTF-8,local_directory_from_command

如果您想从vsftpd切换到pure-ftpd,您需要先卸载vsftpd。这是因为vsftpd和pure-ftpd不能同时安装在同一台服务器上。

pure-ftpd支持多用户设置,并且可以使用不同的权限级别来限制不同用户的访问。您可以根据您在vsftpd中设置的用户和权限级别来配置pure-ftpd。
如果您不想卸载vsftpd并切换到pure-ftpd,您可以尝试在vsftpd中更改附件路径以匹配您的文件系统布局。这可以通过编辑vsftpd.conf文件中的“chroot_local_user”和“user_sub_token”选项来完成。
另一种选择是更改您的服务器上的文件系统布局,以便所有文件和文件夹名称都使用ASCII字符。这将使您能够在任何FTP服务器上访问所有文件和文件夹。

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
在 Linux 服务器上安装多个 FTP 服务器并不会冲突,你可以在同一台服务器上同时安装 vsftpd 和 pure-ftpd,并且它们可以共存。

要安装 pure-ftpd,你可以使用系统包管理器,例如对于 Ubuntu/Debian 系统,可以通过以下命令安装:

sudo apt-get update
sudo apt-get install pure-ftpd

安装完成后,启动 pure-ftpd 服务,并确保它在系统启动时自动启动:

sudo systemctl start pure-ftpd
sudo systemctl enable pure-ftpd

关于 pure-ftpd 是否支持多用户和不同权限的访问,答案是肯定的。你可以使用 pure-ftpd 的虚拟用户功能,为每个用户分配不同的权限。虚拟用户的认证信息可以保存在本地文件、数据库或 LDAP 等多种方式中,具体实现的方式可以根据你的需求进行选择。

另外,如果只是因为路径中包含中文字符导致文件无法正常传输,你也可以考虑使用其他的 FTP 客户端或者 SFTP(SSH 文件传输协议)等方式进行文件传输,这些方式都支持中文字符。具体来说,可以使用 FileZilla 等图形化 FTP 客户端,或者使用 scp 命令或 WinSCP 等 SFTP 客户端进行文件传输。这些工具都可以在 Windows、Mac 和 Linux 等多种操作系统中使用。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/679766
  • 这篇博客你也可以参考下:离线下载vsftpd安装包以及离线安装vsftpd服务器
  • 除此之外, 这篇博客: pure-ftpd管理FTP服务器,创建文件夹可以,但上传下载文件不行中的 两种原因 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1.因为pure-ftpd的防火墙端口问题

    # Port range for passive connections replies. - for firewalling.
    
    PassivePortRange          39000 40000
    

    看和安全组防火墙里的端口一样吗

    2.代码管理

    echo $res = ftp_pasv($this->conn, true);
    

    你的被动模式记得开启,验证返回值是否是1

    3.如果还不行,在文件资源管理器上打开FTP,查看是否可行,报错,修改这段conf

    # Force an IP address in PASV/EPSV/SPSV replies. - for NAT.
    # Symbolic host names are also accepted for gateways with dynamic IP
    # addresses.
    
    ForcePassiveIP               39.106.58.40
    

    肯定行了,要不就是你人品有问题

  • 您还可以看一下 吴光科老师的Linux应用软件服务篇-五剑客课程中的 Vsftpd原理介绍及安装匿名名用户访问控制小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    需要先卸载vsftpd才能安装pure-ftpd。具体步骤如下:

    1.停止vsftpd服务

    sudo systemctl stop vsftpd

    2.卸载vsftpd

    sudo apt-get remove vsftpd

    3.安装pure-ftpd

    sudo apt-get install pure-ftpd

    4.启动pure-ftpd服务

    sudo systemctl start pure-ftpd

    至于pure-ftpd是否支持vsftpd中的多用户设置,答案是支持的。具体配置方法可以参考pure-ftpd官网。另外,如果不想更换FTP服务器,也可以在vsftpd中使用UTF-8编码来解决中文路径的问题。具体方法如下:

    1.打开vsftpd配置文件

    sudo vi /etc/vsftpd.conf

    2.添加以下两行配置代码

    file_name_encoding=utf8 utf8_filesystem=YES

    3.保存并重启vsftpd服务

    sudo systemctl restart vsftpd

sftpd服务所在服务器的locale设置为zh_CN.UTF8试一下

先卸载vsftpd,然后安装stupid-ftpd试下~

【图文教程】云服务器上,Linux安装VSFTPD组件及遇到的问题

可以借鉴下
https://blog.csdn.net/kaizi_1992/article/details/128663738