编辑:弄清楚了,我需要注释掉 SSL 内容才能使其成为 FTP。
问题:
我正在使用 vsftpd 运行带有 SSL 的 sFTP。
由于我无法在浏览器上访问 sFTP(没有扩展),现在我想让 FTP 再次工作。
清除并重新安装 vsftpd 后,我发现 FTP 以默认设置运行(可以连接但不显示目录),而 sFTP 仍以以前的设置运行。所以我决定同时让 FTP 和 sFTP 保持运行。
然后我将 vsftpd.conf 更改为如下:
listen=YES
listen_ipv6=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=NO
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd_FTP
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES
local_root=/home/upload/ftp/
force_local_data_ssl=NO
force_local_logins_ssl=NO
但是在更改 vsftpd.conf 之后,FTP 再次因“连接被拒绝”而死亡,而 sFTP 仍然正常工作。
sFTP 先前使用的设置如下:
listen=YES
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=NO
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
utf8_filesystem=YES
user_sub_token=$USER
local_root=/home/upload/ftp/ETC
allow_anon_ssl=YES
force_local_data_ssl=NO
force_local_logins_ssl=NO
listen_port=21
listen_port=22
问题:
[解决了]我的配置文件的哪部分导致“连接被拒绝”?
为什么 sFTP 在清除后仍能运行,它的设置文件在哪里?
[解决了]为什么“local_root=/home/upload/ftp/”选项没有任何作用?
答案1
唯一未解决的问题是#2:
为什么清除后 SFTP 仍能运行,其设置文件在哪里?
在 Ubuntu 中,sftp
服务器机制通常作为 SSH 服务器的一部分来完成。
如果您正在运行openssh-server
以获得 SSH 访问权限,那么这将处理 SFTP 协议连接。