本文为大家介绍如何设定vsftpd工作于"standalone"模式,即使其在不使用任何inetd(如inetd,xinetd,tcpserver)情况下工作。
v1.1.0版本以上的vsftpd均支持该模式。v1.1.3版本增强了该模式使大型站点也可无需使用inetd。
在此前,如果需要使用一些重要的特性,比如"限制来自同一IP的最大并发连接",大型站点必须借助于xinetd。
但是xinetd本身存在稳定性的问题,其会话统计功能(session counting)可能出错从而错认为FTP站点达到最大连接数而踢出用户。
vsftpd本身即可处理最大连接会话统计和每个IP的最大会话统计。甚至于它可以结合tcp_wrappers和per-connect-IP配置进行访问控制。
具体操作如下:
1) 复制 vsftpd.conf 到 /etc/vsftpd.conf;
2) 启动vsftpd服务;
vsftpd &
3) 配置应该已生效
本例子中的vsftpd.conf是基于INTERNET_SITE的同名文件,这里我们只着重看看其不同的地方:
# Standalone模式
listen=YES
这将告诉vsftpd工作于standalone模式。
不要从inetd中运行该设定下的vsftpd,否则将不会工作,你将得到错误信息:could not bind listening socket.
max_clients=200
max_per_ip=4
最大会话连接数为200(新的用户连接将被拒绝). 来自同一IP的最大会话数设为4。
对于虚拟IP的standalone模式,你只需对不同的虚拟IP以不同的配置文件为参数再次运行一次vsftpd。为区分不同的虚拟IP,你需要在对应的配置文件中设定。listen_address=192.168.1.2
然后运行:
vsftpd /etc/vsftpd.conf.site1 &
其中vsftpd.conf.site1即为192.168.1.2对应的配置文件。