如何通过Ubuntu搭建并使用vsftpd服务器
什么是FTP服务器
百度百科FTP服务器词条:
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。
什么是vsftpd服务器
百度百科vsftpd词条:
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
安装vsftpd软件包
系统信息:Linux dx-virtual-machine 4.10.0-28-generic #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:13 UTC 2017 i686 i686 i686 GNU/Linux
要使用FTP服务,就要安装服务,vsftpd是服务端程序,在联网的情况下输入如下命令,安装vsftpd服务:
aaa@qq.com-virtual-machine:~$ sudo apt-get install vsftpd
查看服务运行情况:
dx@dx-virtual-machine:~$ sudo service vsftpd status
设置配置文件
主配置文件[vsftpd.conf]
dx@dx-virtual-machine:~$ vim /etc/vsftpd.conf
主配置文件的中文说明
#这些设置系统默认是开启的,可以不管
listen=NO
listen_ipv6=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
#下面的就要自定义设置了,建议系统默认的不管,然后复制下面的
#是否允许匿名访问,NO为不允许
anonymous_enable=NO
#是否允许本地用户访问,就是linux本机中存在的用户,YES允许
local_enable=YES
#是否开启写模式,YES为开启
write_enable=YES
#新建文件权限,一般设置为022,那么新建后的文件的权限就是777-022=755
local_umask=022
#是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp(可以理解为userlist是一个白名单),NO的话,白名单失效,和下面一个参数配合使用
userlist_enable=YES
#是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效,我们已经让userlist作为一个白名单,所以无需使用黑名单功能
userlist_deny=NO
#指定哪个文件作为userlist文件,我们稍后编辑这个文件
userlist_file=/etc/vsftpd.user_list
#是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,当然要限制啦
chroot_local_user=YES
#是否启动限制用户的名单list为允许模式,上面的YES限制了所有用户,可以用这个名单作为白名单,作为例外允许访问ftp根目录以外
chroot_list_enable=YES
#设置哪个文件是list文件,里面的用户将不受限制的去访问ftp根目录以外的目录
chroot_list_file=/etc/vsftpd.chroot_list
#是否开启写模式,开启后可以进行创建文件夹等写入操作
allow_writeable_chroot=YES
#设置ftp根目录的位置,这个文件我们稍后自己创建
local_root=/var/myftp
值得注意的是,如果你修改了配置文件,那么需要重启服务后才能生效:
dx@dx-virtual-machine:~$ service vsftpd restart
增加用户
至此,你已经可以使用本地已经存在的用户登录并使用vsftpd了,但是作为一个ftp服务器,是不应该把本机所有的东西都共享给外面的,最好的方法就是创建不同的用户给予不同的文件权限。
创建一个新用户,并为其设置密码(-d是指定的用户主目录,-m接要创建的用户名):
aaa@qq.com-virtual-machine:~$ sudo useradd -d /home/test -m test
aaa@qq.com-virtual-machine:~$ sudo passwd test
这样,[test]用户在使用其账号、密码登录vsftpd服务器时就只能看到[/home/test]下的文件了。
可访问用户列表
在vsftpd的配置文件中提到过可访问用户列表,可设置黑/白名单。
userlist_enable=YES 意味着白名单生效,
userlist_file=/etc/vsftpd.user_list 指定哪个文件作为userlist文件,我们这里指定/etc/vsftpd.user_list
dx@dx-virtual-machine:~$ sudo vim vsftpd.user_list
然后,直接在文件里输入用户名就可以了:
root
test
使用ftp服务
在另一台linux上使用ftp
系统信息:Cent OS x64
值得注意的是,vsftpd服务需要有客户端,即需要安装ftp服务:
yum install ftp
如果已经安装客户端,输入如下命令后,输入用户名,密码,即可登入vsftpd服务器:
ftp 192.168.253.131
在Windows上使用ftp
文件资源管理器访问
在Windows的文件资源管理器地址栏中输入:ftp://192.168.253.131/
Xftp 连接
在Windows中,还可以使用Xshell 来连接到vsftpd,便捷地使用vsftpd服务:
和Xshell一样,Xftp也是一款图形化的管理工具,用于windows连接FTP服务器。新建一个连接,输入vsftpd服务器的地址,用户名及密码,即可连接到vsftpd服务器。
在浏览器中访问vsftpd
可能存在的问题及解决方案
想了解更多关于FTP服务器的知识,可以访问:鳥哥的 Linux 私房菜 第二十一章、檔案伺服器之三: FTP 伺服器
上一篇: nginx学习笔记-文件代理服务
下一篇: css盒子的浮动与定位