关于xinetd模式和standalone模式
xinetd模式:由xinetd作为FTP的守护进程,负责21端口的监听,一旦外部发起对21端口的连接,则调用FTP的主程序处理,连接完成后,则关闭FTP主程序,释放内存资源。好处是资源占用少,适合ftp连接数较少的场合。
standalone模式:直接使用FTP主程序作为FTP的守护进程,负责21端口的监听,由于无需经过xinetd的前端代理,响应速度快,适合连接数 较大的情况,但由于FTP主程序长期驻留内存,故较耗资源。
在xinetd下运行FTP(以下均以vsftpd作为ftp的主程序)
1、首先,在xinetd服务配置目录编辑vsftpd文件,将 disable = yes这行注释掉,或者改为 disable = no
vi /etc/xinetd.d/vsftpd
service ftp
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/vsftpd
# server_args =
# log_on_success += DURATION USERID
# log_on_failure += USERID
# nice = 10
# disable = yes
}
2、编辑 /etc/vsftpd.conf ,将
listen=YES 注释掉 ,否则会出现类似以下500错误
500 OOPS: could not bind listening IPv4 socket
3、停止vsftpd服务,然后重启xinetd
service vsftpd stop
service xinetd restart
4、查看当前打开21端口的进程,已确认FTP服务运行在xinetd模式下
Suse-test:~/Desktop # lsof -i :21
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xinetd 17812 root 5u IPv4 170952 0t0 TCP *:ftp (LISTEN)
在standalone模式下运行FTP
1、编辑/etc/xinetd.d/vsftpd 文件,添加 disable = yes ,不允许ftp从xinetd启动
2、编辑vsftpd的配置文件 /etc/vsftpd.conf 取消注释 listen=YES,以允许监听。
3、重启xinetd服务 ,然后重启vsftpd
注意: 如果/etc/xinetd.d目录下的各个服务都设置成了 disable = yes ,重启xinetd后会提示启动失败,这是因为没有一个服务指定由xinetd来启动,所以才会报错,此时报错是可以忽略的
4.检查21端口,以确认FTP运行于standalone模式。
Suse-test:~/Desktop # lsof -i :21
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vsftpd 20325 root 3w IPv4 177586 0t0 TCP *:ftp (LISTEN)