您的位置:首页 > 编程语言 > PHP开发

vsFTPd 安装与配置(转)

2007-10-23 09:55 337 查看
vsFTPD是一款小巧易用FTP服务器程序,是一款在Linux发行版中最受推崇的FTP服务器程序,特点是小巧轻快,安全易用。

vsFTPd的安装

在最新的各大发行版中的安装盘中都有vsFTPd的软件包,用相应发行版提供的软件包管理工具就能安装。当然也可以到各大发行版的FTP镜像中找到vsftpd的软件包,用软件包的管理工具在线安装。推荐用发行版提供的软件来安装,不推荐自己编译源码包的安装方式。

Fedora 或Redhat 系统,可以用下面的命令在线安装;


[root@localhost ~]# yum install vsftpd


如果是debian 类系统,可以用apt 来在线安装;


[root@localhost ~]# apt-get install vsftpd


如果是RPM的系统,也可以找到vsftpd-xxxx.rpm 的包来通过rpm命令来安装;


[root@localhost ~]# rpm -ivh vsftpd*.rpm


下载源码包安装


[root@localhost ~]# tar zxvf vsftpd-2.0.3.tar.gz

[root@localhost ~]# cd vsftpd-2.0.3

[root@localhost ~]# make ;make install

[root@localhost ~]# cp vsftpd.conf /etc


然后修改/etc/vsftpd.conf ,在配置文件的最后一行加入下面一行;


listen=yes


源码包安装的方法,如果您的系统是RPM包管理的系统,可以删除/etc/xinetd.d/vsftpd 这个文件;然后启动xinetd 服务器;


[root@localhost ~]# /etc/init.d/xinetd restart

停止 xinetd: [ 确定 ]

启动 xinetd: [ 确定 ]


vsFTPd服务器的运行


[root@localhost ~]# /usr/sbin/vsftpd &

[root@localhost ~]# /usr/local/sbin/vsftpd &


vsFTPd 服务器关闭

用pkill vsftpd 来杀死vsftpd进程,这样就把vsFTPd关闭,用psgrep vsftpd 来查看进程,如果没有进程,证明vsFTPd已经关掉;要用到root权限。


[root@localhost ~]# pkill vsftpd

[root@localhost ~]# pgrep vsftpd


在Fedora/Redhat/CentOS中vsFTPd 服务器的启动和关闭:

在Fedora/Redhat/CentOS中,也可以用下面的方法来启动vsFTPd;当然也要用到root权限;


[root@localhost beinan]# /etc/init.d/vsftpd start

为 vsftpd 启动 vsftpd: [ 确定 ]


重新启动vsFTPd用下面的命令;


[root@localhost beinan]# /etc/init.d/vsftpd restart

关闭 vsftpd: [ 确定 ]

为 vsftpd 启动 vsftpd: [ 确定 ]


关掉vsFTPd服务器,应该用下面的命令;


[root@localhost beinan]# /etc/init.d/vsftpd stop

关闭 vsftpd: [ 确定 ]


vsFTPd配置文件

vsftpd.conf是vsFTPd服务器的配置文件,此文件一般是/etc/vsftpd.conf或 /etc/vsftpd/vsftpd.conf,vsftpd.conf配置文件就是vsFTPd服务器的全局控制文件,此配置文件中,每行应该算做一 个规则。配置完后需要重启才有效。

vsFTPd配置虚拟用户

FTP用户一般是不能登录系统的,这也是为了安全。在系统中,没有权限登录系统的用户一般也被称之为虚拟用户;虚拟用户也是要写进 /etc/passwd中;这只是一种虚拟用户的方法,但说实在的并不是真正的虚拟用户,只是把他登录SHELL的权限去掉了,所以他没有能力登录系统;

如果我们想把beinan这个用户目录定位在/opt/beinan这个目录中,并且不能登录系统;我们应该如下操作


[root@localhost ~]# adduser -d /opt/beinan -g ftp -s /sbin/nologin beinan

[root@localhost ~]# passwd beinan

Changing password for user beinan.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

[root@localhost ~]#


其实这还是不够的,还要改一下配置文件vsftpd.conf ,以确保本地虚拟用户能有读写权限;


local_enable=YES

write_enable=YES

local_umask=022


如何实现虚拟路径?

比如:


/home/a 映射为 ftp://localhost/a
/home/b/c 则为 ftp://localhost/c

可以通过如下的方法来实现。


[root@localhost ~]# mount –bind [原有的目录] [新目录]


比如我的ftp的默认目录是/var/ftp,我想把/mnt/LinG/WinSoft文件夹,映射到/var/ftp目录中,我就如下操作

我们要先在/var/ftp目录中建一个目录


[root@localhost ~]# mkdir /var/ftp/WinSoft


然后执行mount命令


[root@localhost ~]# mount –bind /mnt/LinG/WinSoft /var/ftp/WinSoft


这样就OK了。

打开vsFTP服务器的日志功能

把下面xferlog_file前面的#号对掉,也就是把vsftp的log功能打开,这样我们就能在/var/log目录下查看vsftpd.log。这是vsFTP的日志功能,这对于我们来说是极为重要的。


xferlog_file=/var/log/vsftpd.log


如何让vsFTP服务器限制链接数,以及每个IP最大的链接数?

应该改vsFTPd服务器的配制文件vsftpd.conf,加入下面的两行:


max_clients=数字

max_per_ip=数字


举例:我想让我的vsFTP最大支持链接数为100个,每个IP,最多能支持5个链接,所以我应该在vsftpd.conf中加上如下的两行:


max_clients=100

max_per_ip=5


如何限制传输速度?


anon_max_rate=数字


注:这是匿名的速度


local_max_rate=数字


注:这是vsFTP服务器上本地用户的速度

注:这个数字的单位是byte,所以我们要计算一下。比如我想让匿名用户和vsFTP上的用户都以80KB下载,所以这个数字应该是1024×80=81920

所以我们要在vsftpd.conf中加入下面的两行


anon_max_rate=81920

local_max_rate=81920

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: