Я настроил FTPS-сервер на Ubuntu с помощью vsftps.
Вот конфигурации FTP: Судо ВИМ /etc/vsftpd.conf
слушать = НЕТ
listen_ipv6 = ДА
анонимный_включить = НЕТ
local_enable = ДА
write_enable = ДА
dirmessage_enable = ДА
use_localtime = ДА
xferlog_enable = ДА
connect_from_port_20=НЕТ
# pasv_address=13.55.13.221 # <-- это общедоступный IP-адрес (обратите внимание, что эта строка закомментирована)
# pasv_promiscuous=ДА
idle_session_timeout = 1200
data_connection_timeout=3600
accept_timeout=500
connect_timeout=5000
allow_writeable_chroot = ДА
chroot_local_user = ДА
user_sub_token=$ПОЛЬЗОВАТЕЛЬ
local_root=/home/$USER/загрузки
pasv_enable = ДА
pasv_min_port=40000
pasv_max_port=50000
userlist_enable = ДА
userlist_file=/etc/vsftpd.userlist
userlist_deny = НЕТ
secure_chroot_dir=/var/run/vsftpd/пусто
pam_service_name = vsftpd
rsa_cert_file=/etc/ssl/частный/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable = ДА
allow_anon_ssl = НЕТ
force_local_data_ssl = ДА
force_local_logins_ssl=ДА
ssl_tlsv1 = ДА
ssl_sslv2 = НЕТ
ssl_sslv3 = НЕТ
require_ssl_reuse = НЕТ
ssl_ciphers=ВЫСОКИЙ
utf8_filesystem = ДА
Сервер — это экземпляр EC2 на AWS, и мы не используем блок NAT.
Когда я пытаюсь подключиться к FTP-серверу с помощью FileZilla, он работает нормально.
Когда я даю URL-адрес сервера клиенту, клиент получает следующую ошибку:
Вот файл журнала: Время ожидания соединения истекло - "connect(2) для
172.31.39.144:42176
Странно то, что IP-адрес, показанный в ошибке, является частным IP-адресом экземпляра EC2. Клиент подключается к ftp.mydomain.com, который разрешается в общедоступный IP-адрес экземпляра.Так что я не понимаю, что происходит с клиентом, который пытается подключиться к частному IP-адресу экземпляра EC2? Я также не уверен, почему клиент FileZilla может без проблем подключаться к тому же серверу?