Loading... ### FTP 是File Transfer Protocol(文件传输协议)的英文简称 本文原文地址:[ubuntu16.04下安装FTP](http://blog.csdn.net/oaix101125/article/details/74454826) <!--more--> 我们选择相对比较安全的`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如何使用。[原文地址](https://www.linuxidc.com/Linux/2015-12/126357.htm) ### 建立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 Last modification:March 18, 2018 © Allow specification reprint Like 0 If you think my article is useful to you, please feel free to appreciate