Назад | Перейти на главную страницу

Почему я не могу получить доступ к своему FTP-серверу с помощью проводника Windows?

У меня есть экземпляр с Ubuntu 16.0.4 LTS на Google Compute Engine с открытым для него портом 21. Я установил на нем vsftpd, добавил пользователя для службы FTP и установил права доступа к каталогу на полный доступ для пользователя. Я могу подключиться к FTP-серверу через командную строку, используя ftp $IP_ADDRESS и войдите, используя имя пользователя и пароль.

После этого я могу загружать и выгружать файлы, а также создавать каталоги и управлять ими по мере необходимости. Однако, если я попытаюсь получить доступ к FTP-серверу с помощью проводника Windows, используя ftp://$IP_ADDRESS, Мне предлагается ввести имя пользователя и пароль, как и ожидалось, но когда я ввожу их, сервер немедленно сбрасывает соединение, и я получаю сообщение, в котором говорится:

Произошла ошибка при открытии этой папки на FTP-сервере. Убедитесь, что у вас есть разрешение на доступ к этой папке. Подробности: соединение с сервером было сброшено.

Ниже приведено содержание моих vsftpd.conf файл. Как сделать это доступным из проводника Windows?

listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=777
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=myftpuser
ftpd_banner=My FTP
ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

Я знаю, что этот вопрос был открыт очень давно, я надеюсь, что вы уже исправили это, если нет, я постараюсь добавить то, что я сделал и работал для меня. Надеюсь, это поможет вам как-нибудь.

Попробуйте добавить следующий в свой vsftpd.conf файл (или нужные порты):

pasv_min_port=40000
pasv_max_port=45000

Затем добавьте новое правило межсетевого экрана в FW проекта GCP

Вот тег, добавленный к экземпляру

После этого я смог использовать ftp://$IP_ADDRESS успешно.

На всякий случай вот мой полный vsftpd.conf файл:

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
pasv_min_port=40000
pasv_max_port=45000

Попробуйте следующие настройки:

local_umask=077
connect_from_port_20=NO
ascii_download_enable=YES
ascii_upload_enable=YES
nopriv_user=ftpuser