vsftpd提供了standalone和inetd(inetd或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模式便于实现PAM验证功能。进入这种模式首先要关闭xinetd下的vsftpd,设置
“disable = yes”,或者注销掉“/etc/inetd.conf”中相应的行。然后修改“/etc/vsftpd.conf”中的选项为“listen=YES”。
参考官方:The difference between "standalone mode" and "xinetd mode" is who will accept the initial connection request. The "standalone mode" will accept the request by itself, but "xinetd mode" will use xinetd to accept the request, fork a server process, and redirect the connection to the new process.
如果是standlone模式,那么它是作为单独的一个服务启动的,不需要系统协作,不作为系统服务,如果要是成为xinetd模式,那么它的服务就要受系统服务的限制,比如创建一个新的服务进程,但是也有缺点,如果xinetd服务本身出了问题,那么相关的服务也是会受到影响的。
以xinetd模式运行的服务表示该服务进程并不以 守护进程执行,以FTPD进程为例:
以xinetd模式运行这个服务,情况是这样的,本身FTP服务是会监听21号端口的,但是以这种模式运行这个服务 的话,21号端口则由xinetd进程来监听(此时FTPD服务并没有运行)。
如果你的网卡接收到有21号端口请求,则有xinetd进程会去调用 FTPD程序,将在21号端口接收到的请求数据移交给FTPD进程去处理,处理完后FTPD进程退出,而xinetd进程继续监听21号端口。这有点类似 windows的svhost进程;
而以 standalone模式运行的服务则是服务进程,如vsftpd以守护进程在内存中运行,接收到21号端口的请求后由FTPD进程fork出一个子进程进行 处理,而原进程继续监听21号端口。
Vsftpd运行的两种模式-xinetd运行模式和 standalone模式
原文:https://www.cnblogs.com/passzhang/p/12063965.html