用docker创建ftp:
docker run -d -v /tmp/ftp:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=test -e FTP_PASS=test \
-e PASV_ADDRESS=127.0.0.1 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd
键入ftp 127.0.0.1
,然后键入用户名test
,密码test
,登入ftp。
230 Login successful.
ftp>
然后输入ls
命令,却报错:
ftp> ls
500 Illegal PORT command.
500 Unknown command.
425 Use PORT or PASV first.
键入passive
,将ftp由active模式转到passive模式:
ftp> passive
Passive mode on.
现在可以正常用ls和dir命令啦。
ftp> ls
227 Entering Passive Mode (127,0,0,1,82,108).
150 Here comes the directory listing.
drwx------ 3 ftp ftp 96 Aug 23 08:03 reconcile
226 Directory send OK.
更多关于ftp active和passive模式的信息可参考:
Active FTP vs. Passive FTP, a Definitive Explanation