1、安装ftp
sudo apt-get install vsftpd
2、创建工作目
mkdir /home/ftp
3、创建用户名和密码
sudo useradd -d /home/ftp -s /bin/bash yp
passwd yp
1
4、修改配置文件
vi vsftpd.conf
listen=YES
#listen_ipv6=YES 要注释掉
write_enable=YES
5、防火墙允许端口访问(可选)
ufw allow 20
ufw allow 21
6、启动ftp服务
- systemctl start vsftpd 或 service vsftpd start
- systemctl restart vsftpd 或 service vsftpd restart
7、用FileZilla访问
匿名访问和yp(密码1)访问,实际为myftp
8、用wget命令下载
ftp没有命令下载所有文件夹,所以用wget命令下载
wget -nH -m --ftp-user=your_username --ftp-password=your_password ftp://your_ftp_host/*
解释:
-nH:不创建以主机名命名的目录。
–cut-dirs:希望去掉原来的目录层数,从根目录开始计算。如果想完全保留FTP原有的目录结构,则不要加该参数。
-m:下载所有子目录并且保留目录结构。
–ftp-user:FTP用户名
–ftp-password:FTP密码
ftp://*.*.*.*/*:FTP主机地址。最后可以跟目录名来下载指定目录。
例子:
wget -nH -m --ftp-user=tom --ftp-password=123456 ftp://192.168.19.1/tom/
当然,如果FTP目录下文件数量特别多,效率最高的做法是先打个压缩包,然后再下载。实在没办法,就用上述方法自动下载吧。
ps:ftp有主动方式(PORT方式)和被动方式(PASV方式),wget默认是PASV方式,如果下载有问题,只需要再加一个选项:--no-passive-ftp
wget -nH -m --no-passive-ftp --ftp-user=yp --ftp-password=1 ftp://47.100.171.251/