如何通过Ubuntu搭建并使用vsftpd服务器

来源:互联网 发布:linux sacc 编辑:程序博客网 时间:2024/06/05 09:44

什么是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服务:

dx@dx-virtual-machine:~$ sudo apt-get install vsftpd

查看服务运行情况:

dx@dx-virtual-machine:~$ sudo service vsftpd status

这里写图片描述

图1 安装vsftpd并查看运行情况

设置配置文件

主配置文件[vsftpd.conf]

dx@dx-virtual-machine:~$ vim /etc/vsftpd.conf

这里写图片描述

图2 vsftpd主配置文件

主配置文件的中文说明

#这些设置系统默认是开启的,可以不管listen=NOlisten_ipv6=YESdirmessage_enable=YESuse_localtime=YESxferlog_enable=YESconnect_from_port_20=YES#下面的就要自定义设置了,建议系统默认的不管,然后复制下面的#是否允许匿名访问,NO为不允许anonymous_enable=NO#是否允许本地用户访问,就是linux本机中存在的用户,YES允许local_enable=YES#是否开启写模式,YES为开启write_enable=YES#新建文件权限,一般设置为022,那么新建后的文件的权限就是777-022=755local_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接要创建的用户名):

dx@dx-virtual-machine:~$ sudo useradd -d /home/test -m testdx@dx-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

然后,直接在文件里输入用户名就可以了:

roottest

使用ftp服务

在另一台linux上使用ftp

系统信息:Cent OS x64

值得注意的是,vsftpd服务需要有客户端,即需要安装ftp服务:

yum install ftp

如果已经安装客户端,输入如下命令后,输入用户名,密码,即可登入vsftpd服务器:

ftp 192.168.253.131

这里写图片描述

图3 在linux中使用vsftpd

在Windows上使用ftp

文件资源管理器访问

在Windows的文件资源管理器地址栏中输入:ftp://192.168.253.131/

这里写图片描述

图4 在文件资源管理器中使用vsftpd

Xftp 连接

在Windows中,还可以使用Xshell 来连接到vsftpd,便捷地使用vsftpd服务:

和Xshell一样,Xftp也是一款图形化的管理工具,用于windows连接FTP服务器。新建一个连接,输入vsftpd服务器的地址,用户名及密码,即可连接到vsftpd服务器。

这里写图片描述

图5 使用Xftp连接vsftpd

在浏览器中访问vsftpd

这里写图片描述

图6 在浏览器中访问vsftpd

可能存在的问题及解决方案

想了解更多关于FTP服务器的知识,可以访问:鳥哥的 Linux 私房菜 第二十一章、檔案伺服器之三: FTP 伺服器

这里写图片描述

图7 鳥哥的 Linux 私房菜

原创粉丝点击