У меня есть экземпляр с 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