FTP 是File Transfer Protocol(文件传输协议)的英文简称
本文原文地址:ubuntu16.04下安装FTP
我们选择相对比较安全的vsftpd
安装:
sudo apt-get install vsftpd
安装完成后,进程的状态控制:
sudo service vsftpd start/restart/stop/status
配置:
vsftp
配置文件地址为:/etc/vsftpd.conf
# 设置为YES时vsftpd以独立运行方式启动,设置为NO时以xinetd方式启动
#(xinetd是管理守护进程的,将服务集中管理,可以减少大量服务的资源消耗)
listen=YES
# 同上,如果支持ipv6网络则有效
listen_ipv6=NO
# 是否支持匿名用户访问
anonymous_enable=NO
# 是否支持本地用户访问
local_enable=YES
# 是否开放本地用户写权限,即是否允许上传
write_enable=YES
# 本地用户上传文件的权限掩码
local_umask=022
# 是否允许匿名用户上传文件
#anon_upload_enable=YES
# 是否允许匿名用户创建目录
#anon_mkdir_write_enable=YES
# 用户进入目录时是否显示message_file指定的文件内容(需要添加message_file配置项)
#dirmessage_enable=YES
# 强制ftp数据传输使用20端口,默认YES
connect_from_port_20=YES
# 登陆后显示的信息(欢迎信息)
ftpd_banner=Horizon FTP.
# 为YES时,禁止所有用户访问上级目录,只能访问各自的家目录
chroot_local_user=YES
# 如果禁止所有用户访问上级目录,即chroot_local_user=YES,则该项需配置为YES
# 如果没有配置该项,则要求ftp根目录权限不可写,否则登录时报:500 OOPS错误
# vsftp2.3.5之后版本,该配置项需要手动添加
allow_writeable_chroot=YES
# 和前面同名配置项一样
chroot_local_user=YES
# 设置chroot_list_file是否有效
chroot_list_enable=YES
# 当chroot_list_enable=YES时,该文件生效,该文件需要手动添加,存放用户列表
# 如果所有用户被限制只能访问家目录,静止访问上级目录(即chroot_local_user=YES)
# 那么该文件内的用户为特权用户,可以不被限制地访问家目录之上的目录
# 反之,如果所有用户都不被限制,都可以访问上级目录,即(chroot_local_user=NO)
# 则该文件内部的用户为被限制的用户,只能访问各自家目录,禁止访问上级目录
chroot_list_file=/etc/vsftpd.chroot_list
# 设置vsftpd使用utf8编码的文件系统
utf8_filesystem=YES
以上列出的只是部分配置项,没列出的配置项保持默认即可
其他相关文件:
- /etc/ftpusers 文件
该文件内的用户一律禁止ftp连接,默认列表包括了root, daemon, nobody等。需要禁止某个用户,把用户名添加进来即可。 userlist_file 文件
该文件需手动创建和指定,一般设置成/etc/vsftpd.user_list,和以下三个配置项相关:# 是否使userlist_file配置的文件生效
userlist_enable=YES# 设置为YES时,userlist_file指定文件内的用户被禁止连接,类似于ftpusers
# 设置为NO时,只允许userlist_file指定文件内的用户连接,限制其他一切用户
userlist_deny=YES# 文件名和路径可自由指定
userlist_file=/etc/vsftpd.user_list# 新版vsftpd配置文件默认没有这三个配置项,要手动添加,个人认为一般不需要添加
# 需要限制连接使用/etc/ftpusers文件即可- chroot_list 文件
该文件需要手动创建和指定,文件名和路径可自由指定,相关配置项有chroot_local_user、chroot_list_enable和chroot_list_file,具体配置相关参考上面配置文件注释说明。
配置文件,我尚未做任何修改,这里只是提供修改的思路,还其他文件我野未修改。下面来介绍一下命令行模式的ftp如何使用。原文地址
建立ftp连接(用户名密码登录)
ftp user@IP Address or domain
连接成功则会返回下列信息:
230Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
目录操作
FTP 命令可以列出、移动和创建文件夹,如同我们在本地使用我们的电脑一样。ls可以打印目录列表,cd可以改变目录,mkdir可以创建文件夹。
- 使用安全设置列出目录
ftp>ls
服务器将返回:
200 PORT command successful.Considerusing PASV.
150Here comes the directory listing.
directory list
....
....
226Directory send OK. - 改变目录:改变目录可以输入
ftp>cd directory
服务器将会返回:
250Directory succesfully changed.
使用 FTP 下载文件
在下载一个文件之前,我们首先需要使用lcd命令设定本地接受目录位置。
lcd /home/user/yourdirectoryname
如果你不指定下载目录,文件将会下载到你登录 FTP 时候的工作目录。
现在,我们可以使用命令 get 来下载文件,比如:
get file
文件会保存在使用lcd命令设置的目录位置。
服务器返回消息:
local:file remote:file
200 PORT command successful.Considerusing PASV.
150Opening BINARY mode data connection forfile(xxx bytes).
226File send OK.
XXX bytes received in x.xx secs (x.xxx MB/s).
下载多个文件可以使用通配符及 mget 命令。例如,下面这个例子我打算下载所有以 .xls 结尾的文件。
mget *.xls
使用 FTP 上传文件
完成 FTP 连接后,FTP 同样可以上传文件
使用 put命令上传文件:
put file
当文件不再当前本地目录下的时候,可以使用绝对路径:
put /path/file
同样,可以上传多个文件:
mput *.xls
关闭 FTP 连接
完成FTP工作后,为了安全起见需要关闭连接。有三个命令可以关闭连接:
bye
exit
quit
任意一个命令可以断开FTP服务器连接并返回:
221Goodbye