ArchLinux配置vsftp服务器

采用vsftpd配置archlinux为ftp服务器。

什么是xinetd模式和initd模式

像其它守护程序一样,vsftpd提供了standalone和inetd(inetd或xinetd)两种运行模式。简单解释一下, standalone一次性启动,运行期间一直驻留在内存中,优点是对接入信号反应快,缺点是损耗了一定的系统资源,因此经常应用于对实时反应要求较高的专业FTP服务器。inetd恰恰相反,由于只在外部连接发送请求时才调用FTP进程,因此不适合应用在同时连接数量较多的系统。此外,inetd模式不占用系统资源。除了反应速度和占用资源两方面的影响外,vsftpd还提供了一些额外的高级功能,如inetd模式支持per_IP(单一IP)限制,而 standalone模式则更有利于PAM验证功能的应用。

xinetd运行模式

大多数较新的系统采用的是xinetd超级服务守护进程。使用“vi /etc/xinetd.d/vsftpd” 看一下它的内容,如下:

disable = no 
socket_type = stream
wait = no
# 这表示设备是激活的,它正在使用标准的TCP Sockets。

如果“/etc/vsftpd.conf”中的有选项为“listen=YES”,注销它

最后,重启xinetd,命令如下:

$ /etc/rc.d/init.d/xinetd restart

需要注意的是,“/etc/xinetd.d”目录中仅能开启一个FTP服务。

standalone模式

 standalone模式便于实现PAM验证功能。进入这种模式首先要关闭xinetd下的vsftpd,设置

 “disable = yes”,或者注销掉“/etc/inetd.conf”中相应的行。然后修改“/etc/vsftpd.conf”中的选项为“listen=YES”如果是standlone模式,那么它是作为单独的一个服务启动的,不需要系统协作,不作为系统服务,如果要是成为xinetd模式,那么它的服务就要受系统服务的限制,比如创建一个新的服务进程,但是也有缺点,如果xinetd服务本身出了问题,那么相关的服务也是会受到影响的。

xinetd模式和standalone模式的区别

以xinetd模式运行的服务表示该服务进程并不以守护进程执行,以FTPD进程为例吧,以xinetd模式运行这个服务,情况是这样的,本身FTP服务是会监听21号端口的,但是以这种模式运行这个服务的话,21号端口则由xinetd进程来监听(此时FTPD服务并没有运行),如果你的网卡接收到有21号端口请求,则有xinetd进程会去调用FTPD程序,将在21号端口接收到的请求数据移交给FTPD进程去处理,处理完后FTPD进程退出,而xinetd进程继续监听21号端口,这有点类似windows的svhost进程;而以 standalone模式运行的服务则是服务进程,如ftpd以守护进程在内存中运行,接收到21号端口的请求后由FTPD进程fork出一个子进程进行处理,而原进程继续监听21号端口。

 

安装vsftpd

sudo pacman -S vsftpd

 

配置/etc/vsftpd.conf

sudo vim /etc/vsftpd.conf

允许匿名登陆

anonymous_enable=YES

vsftp匿名用户为ftp,其根目录为/srv/ftp

 

客户端登陆测试

 

响应:    227 Entering Passive Mode (10,0,2,15,104,175).
命令:    LIST
错误:    20 秒后无活动,连接超时
错误:    读取目录列表失败

 

数据端口无法读取。

今天看到有人说是内核与seccomp兼容问题,看看如何解决。

 

解决方案: 在vsftpd.conf中添加

seccomp_sandbox=NO

至此解决了vsftd.conf的问题。

 我的vsftpd.conf

vsftpd配置详解

 

 

FTP 数字代码的意义 

110 重新启动标记应答。 
120 服务在多久时间内 ready 。 
125 数据链路端口开启,准备传送。 
150 文件状态正常,开启数据连接端口。 
200 命令执行成功。 
202 命令执行失败。 
211 系统状态或是系统求助响应。 
212 目录的状态。 
213 文件的状态。 
214 求助的讯息。 
215 名称系统类型。 
220 新的联机服务 ready 。 
221 服务的控制连接端口关闭,可以注销。 
225 数据连结开启,但无传输动作。 
226 关闭数据连接端口,请求的文件操作成功。 
227 进入 passive mode 。 
230 使用者登入。 
250 请求的文件操作完成。 
257 显示目前的路径名称。 
331 用户名称正确,需要密码。 
332 登入时需要账号信息。 
350 请求的操作需要进一部的命令。 
421 无法提供服务,关闭控制连结。 
425 无法开启数据链路。 
426 关闭联机,终止传输。 
450 请求的操作未执行。 
451 命令终止 : 有本地的错误。 
452 未执行命令 : 磁盘空间不足。 
500 格式错误,无法识别命令。 
501 参数语法错误。 
502 命令执行失败。 
503 命令顺序错误。 
504 命令所接的参数不正确。 
530 未登入。   

532 储存文件需要账户登入。 

550 未执行请求的操作。

551 请求的命令终止,类型未知。 
552 请求的文件终止,储存位溢出.

553 未执行请求的的命令,名称不正确。

 

posted @ 2019-07-30 10:44  看不见的R  阅读(2000)  评论(0编辑  收藏  举报