我们需要使用 Ubuntu ec2 实例作为“主动模式”的 ftp客户在远程非 ec2 ftp 服务器上。
不幸的是,我们不能使用 sftp 功能。我们可以使用被动模式进行连接,但我们只需要使用“主动模式”。我知道主动模式在 NAT 级别(私有-公共 IP)存在问题,但有办法克服这个问题吗?
在客户端(ec2 实例)上,使用主动模式我们得到:
#ftp 11.11.11.11
Connected to 11.11.11.11.
220 (vsFTPd 3.0.2)
Name (11.11.11.11:ubuntu): ftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd files
250 Directory successfully changed.
ftp> ls
500 Illegal PORT command.
ftp: bind: Address already in use
ftp 服务器(不是 ec2 实例)配置如下:
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=ftp
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
seccomp_sandbox=NO
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=10024
pasv_max_port=10048
port_enable=YES
pasv_address=11.11.11.11
入境和出境向世界敞开大门!