欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-09 21:27:43
...

什么是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

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

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

设置配置文件

主配置文件[vsftpd.conf]

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

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

图2 vsftpd主配置文件

主配置文件的中文说明

#这些设置系统默认是开启的,可以不管
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

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

图3 在linux中使用vsftpd

在Windows上使用ftp

文件资源管理器访问

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

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

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

Xftp 连接

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

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

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

图5 使用Xftp连接vsftpd

在浏览器中访问vsftpd

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

图6 在浏览器中访问vsftpd

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

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

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

图7 鳥哥的 Linux 私房菜