当前位置:操作系统 > Unix/Linux >>

UNIX/LINUX教程---建立LINUX下的FTP服务器(上)

一、FTP简介

  FTP就是File Transport Protocol文件传输协议的缩写,FTP服务器能够在网络上提供文件传输服务。FTP最初与WWW服务和邮件服务一起被列为因特网的三大应用,可见其在网络应用中的地位举足轻重。

  FTP服务器根据服务对象的不同可分为匿名服务器(Anonymous Ftp Server)和系统FTP服
务器。前者是可以让任何人登录上去获取文件的FTP服务器,后者就只能是在FTP服务器上有合法账号的人才能使用。

  目前在UNIX和LINUX下常用的免费FTP服务器软件主要是Wu-FTP和ProFTP这两种。Wu-FTP广泛应用在众多的Unix和Linux系统中,是RedHat Linux默认的FTP服务器软件,其全称是Washington University FTP。

二、wu-ftp的介绍

  现在因特网上FTP服务器的安装软件大多使用的是wu-ftp软件,因为它支持多个操作系统平台,比如:


IBM AXBSDI bsd/386 HP-UX   
LinuxNeXTstep 2.x
DynixData general Unix
OSF/1Ultrix 4.x
SunOS 4.1.x
SunOS 5.x   
Solaris 2.x   



  除了支持多个系统平台以外,wu-ftp还有很强大的功能,它提供的功能有:

  1、 让用户在下载文件的同时可以对文件做自动的压缩或解压缩操作;

  2、 可以对不同网络的机器做不同的存取限制和存取时间;

  3、 可以记录文件上传和下载的时间;

  4、 可以显示传输时的相关信息,以便让用户知道目前的传输状态;

  5、 可以设定连接的数量限制,以提高工作效率。

  这些功能都适于吞吐量较大的FTP服务器的管理要求。

三、wu-ftp的安装

  一般的,当你安装好Linux后,就已经装上wu-ftp服务器,我们所要做的只是完成一些配置而已。但我们这里还是从wu-ftp的原始文件开始做起,这样能够详细了解它的全部安装过程。

  你可以到www.wu-ftpd.org去下载wu-ftp的最新版本,目前的版本号是:2.6.1。

  拿到软件后,先将它解压强:

tar zxvf wu-ftpd-2.6.1.tar.gz


  文件解压缩后,你可以看到在当前目录下多了一个wu-ftpd-2.6.1这目录,进入这个目录并阅读里面的README文件及INSTALL安装说明,就可以了解整个安装过程。

  接下来执行此目录下的build lnx,如果执行成功,你可以在bin/这个目录下得到下面五个可执行文件:


ftpd:FTP服务器程序;
ftpshut:用于关闭FTP服务器的程序;
ftpcount:这是一个计数器程序,可以显示目前的线上人数 ;
ftpwho:查看目前的FTP服务器的连接情况;
ckconfig:检查FTP的设定是否正确;
privatepw:对用户的权限进行设定



  不要以为安装到此就结束了,还差一步呢:

build install


  这个操作把编辑时生成的执行文件和wu-ftp的用户手册分别安装在/usr/bin和/usr/man这两个目录下,而ftpd这个执行文件会被更名为wu.ftpd并安装到/usr/sbin这个目录中,所以,执行完上面的操作后,最好先检查一下相应目录中是否已经有了这些文件。

四、配置/etc/inetd.conf

  如果要在机器启动时自动启动FTP服务,就要确认在文件/etc/inetd.conf中有这样一行:

ftp stream tcp nowati root /usr/sbin/tcpd wu.ftpd


  注意这行不要被注释了,否则无法自动启动FTP服务。

  这里通过tcpd这个进程来启动wu.ftpd,为什么呢?实际上你只要仔细观察一下/etc/inetd.conf文件,就会发现这其中很多服务都是由tcpd来启动的,tcpd其实是个安全性的检查,你可以用tcpd控制哪些IP或域可以使用这项服务。

  wu-ftp可以不加任何参数来执行,也可带参数执行,参数说明如下:

  -d:使用该参数,当FTP服务器发生错误时可以将错误信息写入系统的syslog中,即/var/log/syslog这个文件中。

  -l:这个参数是将FTP客户端进行连接的有关信息写入syslog中,但它写入的是/var/log/messages这个文件。

  -t:设定FTP客户端连接连续超过几分钟无操作即自动断线,这个参数后面指定等待的时间,单位为秒,如 -t60就是1分钟,如果没有该参数指定,它的默认值为15分钟。

  -T:e 有些FTP客户端可以设定不动作便离线的时间,但这个时间不是视FTP客户端的要求而定的,-T参数用来设定最大的超时时间,它的默认值是2小时。

  -a:wu.ftpd这个程序是使用/etc/ftpaccess来设定更多的功能,而-a参数就是设定wu.ftpd使用/etc/ftpaccess的设定功能,它的默认值就是/etc/ftpaccess。

  -A:此参数是让wu.ftpd不使用/etc/ftpaccess的设定功能。

  -L:此参数是将FTP客户端连线后所执行的程序记录在syslog中,也就是记录在/var/log/messages文件中。

  -I:使用这个参数,如果有FTP客户端上载文件时,wu.ftpd会将文件的信息记录在/var/log/xferlog文件中。

  -o:使用这个参数,如果有FTP客户端下载文件时,wu.ftpd会将文件的信息记录在/var/log/xferlog文件中。

五、检查ftp的配置文件

  在wu-ftp安装目录下的bin子目录下执行ckconfig,如下所示:


./ckconfig
Checking _PATH_FTPUSERS :: /etc/ftpusers
ok.

Checking _PATH_FTPSERVERS :: /etc/ftpservers
I can't find it... look in doc/examples for an example.

Checking _PATH_FTPACCESS :: /etc/ftpaccess
ok.

Checking _PATH_PIDNAMES :: /var/run/ftp.pids-%s
ok.

Checking _PATH_CVT :: /etc/ftpconversions
ok.

Checking _PATH_XFERLOG :: /var/log/xferlog
ok.

Checking _PATH_PRIVATE :: /etc/ftpgroups
ok.

Checking _PATH_FTPHOSTS :: /etc/ftphosts
ok.



  这个操作是用来查看ftp的配置文件是否都在正确的位置,通常的配置文件有以下八个:


/etc/ftpusers/etc/ftpaccess   /var/run/ftp.pids  /etc/ftpconversions  
/var/log/xferlog  /etc/ftpgroups   /etc/ftphosts/etc/ftpservers



  如果你执行ckconfig时,出现信息说找不到某些文件,你可以在doc/examples/这个目录下找到相应的例子。就上面的例子来说,它出现的信息是找不到/etc/ftpservers这个文件,该文件是用来依据客户的IP作相应访问控制的,基本上不影响ftp的正常工作,下面我们会对该文件的作用作进一步的阐述。

  至此,我们已经完成基本ftp服务器的安装了,可以重新开机来启动wu-ftp服务器程序了。
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,