简单介绍一下FTP文件传输协议在linux系统中的应用。
目录
- 0. 基本概念
- 1. FTP Server
- 1.1 安装FTP Server
- 1.2 FTP Server开启和关闭
- 1.3 查看FTP Server是否开启
- 1.4 FTP服务器配置
- 2. FTP Client
- 2.1 lftp
- 2.2 ftp
- 2.3 sftp
- 2.4 文件资源管理器集成的ftp和sftp
- 3. ftp常用命令
0. 基本概念
FTP (File Transfer Protocol):文件传输协议。
FTP是一种用于在TCP/IP网络上进行通信和文件传输的协议。FTP大概可以分为两部分:FTP Server
和FTP Client
。用户可以在FTP服务器(也称为FTP主机/站点)上接收和传输文件。FTP客户端通过TCP协议连接到FTP服务器,并使用FTP指令与其进行通信。FTP客户端可以浏览远程FTP服务器中的文件和目录,并从FTP服务器下载文件或将文件上传到FTP服务器。
FTP数据传输可以使用两种模式:主动模式和被动模式。在主动模式下,FTP服务器向FTP客户端发送数据;而在被动模式下,FTP客户端向FTP服务器发送数据。
FTP通常使用标准的21号端口进行通信。但是,FTP协议不支持加密,因此在传输敏感信息时需要采取其他安全措施。例如,SFTP (Secure File Transfer Protocol)是一种基于SSH(Secure Shell)协议的加密协议,用于在安全网络上进行文件传输。
1. FTP Server
1.1 安装FTP Server
sudo apt install vsftpd
1.2 FTP Server开启和关闭
#启动服务
sudo service vsftpd start
#关闭服务
sudo service vsftpd stop
#重启服务
sudo service vsftpd restart
1.3 查看FTP Server是否开启
sudo service vsftpd status
开启状态:
关闭状态:
1.4 FTP服务器配置
vsftpd的配置文件为/etc/vsftpd.conf
,下面讲一下必要的配置选项。
1.使用本地用户登录ftp服务器
参数 | 说明 |
---|---|
local_enable=YES | 允许本地用户登录。 |
write_enable=YES | 允许写,如果不设置或者为NO,则不能上传或删除文件。 |
local_umask=077 | 本地用户的权限掩码,不设置的情况下默认为八进制数077。 |
注:要保证登录ftp的用户或者该用户所在组对目标目录有读写权限,反例如下
2.使用匿名用户登录ftp服务器
参数 | 说明 |
---|---|
anonymous_enable=YES | 允许匿名登录。 |
anon_root=/home/sun/anondir | 匿名用户的根目录,自定义路径。必须设置,否则匿名登录后,没有目录可用。 |
write_enable=YES | 允许写,如果不设置或者为NO,则anon_other_write_enable,anon_upload_enable的设置都会无效。 |
anon_other_write_enable=YES | 允许匿名用户写操作,不设置或者为NO,则无法删除文件。需要 write_enable=YES ,否则无效。 |
anon_upload_enable=YES | 允许匿名用户上传文件,需要 write_enable=YES ,否则无效。 |
anon_mkdir_write_enable=YES | 允许匿名用户创建文件夹,需要 write_enable=YES ,否则无效。 |
anon_umask=077 | 匿名用户的权限掩码,不设置的情况下默认为八进制数077。 |
关于匿名用户登录有两个注意点:
(1) 和本地用户登录ftp服务器情况的注意点类似,ftp匿名用户就相当于other用户,保证other用户对目标目录拥有读写权限。
(2) 在ftp服务器上,匿名用户根目录
的其他人权限
不能设置可写权限,如果设置了可写权限,那么ftp匿名登录会报错。
2. FTP Client
2.1 lftp
lftp比ftp多了tab键补全,命令行显示当前路径,推荐用这个。
安装命令:
sudo apt install lftp
基本用法:
lftp ip地址
例:用administrator登录192.168.1.7主机
例:匿名登录192.168.1.7主机
需要ftp服务器配置了匿名登录。如何配置ftp服务器匿名登录,linux系统可以看上面FTP Server的部分。
sun@sun-pc:~$ lftp 192.168.1.7
lftp 192.168.1.7:~>
2.2 ftp
ubuntu自带,明文传输,没有tab补全功能,命令行不显示当前路径。
安装命令:
sudo apt install ftp
基本用法:
ftp ip地址
例:用户administrator登录192.168.1.7主机
例:匿名登录192.168.1.7主机
需要ftp服务器配置了匿名登录。如何配置ftp服务器匿名登录,linux系统可以看上面FTP Server的部分。
2.3 sftp
sftp也是ubuntu自带的,和ftp客户端类似,多了一个ssh加密传输,这里就不细讲了。
2.4 文件资源管理器集成的ftp和sftp
ubuntu的文件资源管理器自带了ftp和sftp等客户端,如下
3. ftp常用命令
ftp的命令基本都和linux内建命令相同,但是没有linux命令多。登录ftp服务器后,就可以使用下面命令了。
# 上传文件到当前ftp服务器,put的时候可以按tab键会提示本地机器当前目录有哪些文件
put 文件
# 从当前ftp服务器下载文件
get 文件
# 查看有哪些文件,文件夹
ls 或 ls -l
# 查看文件内容
cat 文件
# 切换目录
cd 路径
# 创建文件夹
mkdir 文件夹
# 删除文件或目录
rm 或 rm -r
# 退出登录,其中exit只有linux系统的ftp客户端有效
bye 或 quit 或 exit