目录
准备
两台虚拟机(且保证互通)关闭防火墙和SeLinux。
关闭防火墙
systemctl stop firewalld
关闭SeLinux
setenforce 0
vi /etc/sysconfig/selinux
修改为:SELINUX=disabled
一台服务端,一台客户端。
本人IP地址:服务端 192.168.10.113
客户端 192.168.10.114
【保证互通可以使用其中一台虚拟机ping另一台虚拟机的IP地址】
ping+(另一台虚拟机IP地址)
显示如图所示内容,即表示可以互通。(用Ctrl键+c可以终止)
1 lftp介绍
lftp是一款高效的文件传输工具,支持FTP、SFTP、HTTP、HTTPS、HFTP、FISH、SMB、IMAP、POP3和FTP over HTTP等多种协议。它结合了FTP客户端和命令行工具的优点,支持多线程下载、断点续传、自动重试等功能。lftp还具有复制、移动、删除、重命名、压缩和解压缩等文件操作功能,支持批处理和脚本,可用于自动化文件传输任务。同时,lftp还支持远程目录同步,能够将本地目录与远程目录进行同步操作。lftp是一款功能强大、易于使用的文件传输工具,适用于各种操作系统平台。
lftp支持tab自动补全,进步的命令双击tab键,就可以看到可能的选项了。
2 lftp语法
lftp(选项)(参数)
3 lftp选项
-f: 指定lftp指令要执行的脚本文件。
-c:执行指定的命令后退出。
--help: 显示帮助信息。
--version: 显示指令的版本号。
4 下载
4.1 服务端
下载安装vsftp服务
yum -y install vsftpd
启动服务
systemctl start vsftpd
进入/var/ftp/目录
cd /var/ftp/
ls命令查看下
创建test目录
mkdir test
进入test目录创建haha文件。
cd test/
touch haha
授权
chmod 777 haha
4.2 客户端
yum -y install lftp
lftp + (服务端IP地址)
ls命令查看
进入test下
cd test/
【问题解决】
cd: Access failed: 550 Failed to change directory. (/pub/test)
原因:没有关闭selinux或者权限未打开。
下载文件
ls命令查看,发现有haha文件,使用get命令下载。
get haha
使用exit命令退出。
exit
ls命令查看
这样就成功在客户端下载了haha文件。
【如果想指定到哪个目录下,就使用 -o参数】注意是小o。
例如下载到/tmp目录下。
get haha -o /tmp
下载目录
mirror test/
(子目录也会自动下载)
5 上传
5.1 客户端
先创建一个1的文件
touch 1
使用put命令上传
put 1
【问题解决】
原因:
(1)没有关闭SeLinux
(2)linux默认安装vsftp服务之后只允许匿名用户的访问和下载,不支持上传。
解决方法:
进入服务端
修改文件vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
进入后会发现很多注释(带#的),需要修改如下内容,但是很麻烦,建议直接全部删除,直接输入如下内容。
write_enable=YES
anon_umask=022
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
编辑完成后保存退出,重新启动vsftp服务。
systemctl restart vsftpd
如果没有成功,使用下面方法。
getsebool -a | grep ftp
setsebool -P allow_ftpd_anon_write on
setsebool -P allow_ftpd_full_access on
好了,现在可以上传文件啦~
5.2 服务端
ls命令查看即可