パッシブモード(PASV
)でAWS EC2(Ubuntu16.04)でFTPサーバーをセットアップしましたが、機能しません。しかし、それはEPSV
で動作しますが、理由はわかりません。私は周りを検索したが、答えが見つからない、どのような体はこれで私を助けることができますか?vsftpdがPASVへの応答で0,0,0,0を返します
1 vsftpdのコンフィグ
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
pasv_enable=YES
pasv_min_port=13000
pasv_max_port=13100
port_enable=YES
pasv_address=[public ip address of AWS EC2 instance]
allow_writeable_chroot=YES
seccomp_sandbox=NO
2. AWS EC2ファイアウォール
3.テストFireFTPスルー
220 (vsFTPd 3.0.3)
USER sensor
331 Please specify the password.
PASS (password not shown)
230 Login successful.
PWD
257 "/" is the current directory
TYPE A
200 Switching to ASCII mode.
EPSV
229 Entering Extended Passive Mode (|||13082|)
LIST
150 Here comes the directory listing.
226 Directory send OK.
:以下のようにログ、
220 (vsFTPd 3.0.3)
USER sensor
331 Please specify the password.
PASS (password not shown)
230 Login successful.
CWD/
250 Directory successfully changed.
TYPE A
200 Switching to ASCII mode.
PASV
QUIT
しかし、それは(IPV6]チェックボックスを選択して)EPSV
で動作して:PASV
モードでは
、私はログがあり、FTPサーバーに接続できません
from ftplib import FTP
contents = []
ftp = FTP(host=xxx, timeout=3000)
ftp.login(user=xxx, passwd=xxx)
ftp.set_debuglevel(2)
ftp.retrlines("NLST", contents.append)
ftp.quit()
ftplibのパイソンを介してテスト
ログ、次のように:
*cmd* 'TYPE A'
*put* 'TYPE A\r\n'
*get* '200 Switching to ASCII mode.\n'
*resp* '200 Switching to ASCII mode.'
*cmd* 'PASV'
*put* 'PASV\r\n'
*get* '227 Entering Passive Mode (0,0,0,0,50,245).\n'
*resp* '227 Entering Passive Mode (0,0,0,0,50,245).'
ConnectionRefusedError: [Errno 111] Connection refused
本当に 'PASV'レスポンスで' 0,0,0,0'を返しますか? –
マーティンありがとう! ftplibのログに示されているように、PASVモードが適用されている間は(0、0、0、0、..)を返します。 – codefluxer
次に、 'pasv_address'にIPv6アドレスを指定したと思います。 'PASV'が動作するためにはIPv4アドレスでなければなりません。 'PASV'はIPv6をサポートしていません。 –