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 等多种操作系统中使用。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
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
肯定行了,要不就是你人品有问题
需要先卸载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