思智网络—旗下品牌
忘记密码
长沙云服务器,长沙服务器租用,长沙服务器托管
全国统一服务热线:88900700(7*24h)
 思智网络——专注于企业级IDC解决方案!
  • 顶级网络高速接入
  • 十年经验管理完善
  • 资质齐全放心可靠
  • 专业服务快速稳定
  • 免费备案快速高效
  • 自维机房全年无休
  • 免费测试省钱省心
  • 行业评价有口皆碑

解决方案专区 more>>

负载均衡解决方案
服务器网络安全解决方案
数据异地灾备解决方案
网络加速综合解决方案

典型客户 more>>

  • 潇湘晨报网
  • SANY
  • 盛大金禧
  • 湖南有线
  • 金杯电工
  • 长沙长海医院
  • 蝴蝶树
  • 中国人民大学
  • 湖南妈妈网
  • 美迪装饰
  • 小新星
  • 湖南武警医院
思智网络学院

Linux系统下实现FTP虚拟主机

发表:湖南数据中心文员   文章来源:湖南思智网络科技有限公司   
[摘要]  在Linux下,我们可以用wu-ftp、tftp-server、proftpd、gssftp、vsftp等FTP服务程序来构建FTP服务器。由于wu-ftp(Washington University Ftp)广泛使用在各种Linux发行……

  在Linux下,我们可以用wu-ftp、tftp-server、proftpd、gssftp、vsftp等FTP服务程序来构建FTP服务器。由于wu-ftp(Washington University Ftp)广泛使用在各种Linux发行版本和多种的Unix(其中包括了IBM AIX、FreeBSD、HP-UX、各种BSD、Solaris等)中,同时它在因特网中的占有量超过了50%,并且现在Linux发行版本中都带有2.6版本的wu-ftp,因此下面以它为例介绍在Linux下如何实现FTP虚拟主机。

  虚拟主机安装要求

  wu-ftpd提供了虚拟主机的功能。它通过一个FTP软件在同一台主机上提供不同FTP服务器,以主机名称或IP来区分各个不同的虚拟主机。

  wu-ftp有rpm和tar两种安装方式。rpm安装比较简单,可以直接通过rpm ivh wu-ftp*.rpm 就可以安装完成。下面主要介绍tar安装方式。

  对于没有RPM安装程序包的Linux,可以从http://www.wu-ftpd.org下载一个源程序tar代码包,这样可以更好地按照需求来定制wu-ftp所能支持的各种功能,包含一些附加的upload的速率、虚拟主机等功能。

  1.解压缩包tar -zxvf wu-ftpd-current.tar.gz:

  #cd wu-ftp

  2.配置所需要的附加功能:

  #./configure enable-virtual

  这个enable-virtual参数必须进行设定,通过设定了这个参数,提供虚拟主机的服务,同时增加了对FTP服务器的吞吐量,这样wu-ftp就拥有了虚拟主机的功能。

  3.进行编译及安装

  # make

  # make install

  通过以上各个步骤,就已经把服务器成功地安装在Linux系统上了。现在系统上应该包含了

  /etc/ftpaccess

  /etc/ftpconversions

  /etc/ftpgroups

  /etc/ftphosts

  /etc/ftpusers

  配置文件,以及

  /usr/bin/ftpcount

  /usr/bin/ftpwho

  /usr/sbin/ftprestart

  /usr/sbin/ftpshut

  /usr/sbin/in.ftpd

  等可执行的程序,当然还包含一些help,man的文档。只要系统中包含了这些文件,就说明FTP服务器已经安装成功。

  在这些文件中有两个文件是关于虚拟主机配置的,其中ftpservers 文件控制了当客户登陆不同虚拟主机时候,服务器采用不同的配置文件来进行功能设置。例如在ftpservers中增加下面两个语句:

  172.20.66.10 /etc/ ftpaccess.1

  172.20.66.20 /etc/ ftpaccess.2

  这两行参数指定了当用户从10 IP访问的时候,服务器指定的是ftpaccess.1的配置文件,而当用户从20 IP访问的时候,服务器指定的是ftpaccess.2的配置文件。在下面配置虚拟主机的过程中,需要这个文件的配合使用。

  配置虚拟主机

  1.给主机绑定多IP

  wu-ftp的虚拟主机是建立在同一个主机、不同IP的基础上,因此要在同一台机器上配置多个IP地址。其中一个方法就是在一块网卡上绑定多个IP地址。

  如果机器上有一块网卡,并且通过这个网卡来监听FTP的服务请求,我们就可以通过ifconfig命令来实现这个功能。

  # ifconfig eth0:0 172.20.66.2 up

  # ifconfig eth0:1 172.20.66.3 up

  我们设置两个FTP虚拟主机,因此就在网卡上绑定两个IP地址。在Linux中,一个网卡理论上可以绑定16个IP地址。如果读者不想通过命令来执行,也可以自行改变/etc/sysconfig/networking中的配置文件,来达到同样目的。
  
  2.配置ftpservers文件

  关于ftpservers文件上面已经提到,在此例中可以用到以下的配置:

  172.20.66.2 /etc/ftpaccess1

  172.20.66.3 /etc/ftpaccess2

  该文件给出了存放虚拟主机配置文件的路径,在客户端对FTP服务器发出请求的时候,服务器将客户端请求的IP在该文件中进行查找,看看是否有匹配的配置文件。如果有匹配的配置文件,就调用该IP地址对应的目录中的配置文件作为该客户端的配置文件。如果没有发现匹配项,就使用默认的配置文件。在该文件中用IP地址或主机名都可以。如果用主机名,就需要/etc/hosts和DNS的支持,来进行解析为最终的IP。

  由于在配置虚拟主机中,这个文件是可选的,用户可以不用为每个虚拟主机都设置不同的配置文件,通过在主ftpaccess文件中做一些设置也可以达到相应目的。我们就通过配置ftpaccess来实现虚拟主机的功能。

  3.配置ftpaccess文件中的虚拟主机部分

  虚拟服务器的ftpaccess配置文件与不提供虚拟服务器版本相比,增加了virtia、root、logfile等多个指令,这些都是在编译源代码的时候产生的。下面就这些参数进行说明。

  (1)virtual

  virtual

  上面各个参数设定了虚拟主机的各种基本配置,其中virtual参数前缀说明下面的参数是为了设定虚拟主机而设定的;address指定了虚拟主机的IP地址,这里应该是172.20.66.2和172.20.66.3两个IP。

  下面的参数都是建立在virtual下面的子参数:

  ◆ root 指定了该虚拟主机的ftp根目录;

  ◆ banner 指定了该虚拟主机的系统提示信息;

  ◆ logfile 指定了该虚拟主机的日志文件所在的位置;

  ◆ hostname 指定了该虚拟主机的主机名称;

  ◆ email 指定了该虚拟主机管理者的E-mail地址。

  比如,在下例中指定了一个虚拟FTP服务器的配置情况:

  # 虚拟主机的配置设定

  virtual 172.20.66.2 root /var/ftp/virtual1

  virtual 172.20.66.2 banner /var/ftp/virtual/1.msg

  virtual 172.20.66.2 logfile /var/log/ftp/virtual/1xferlog

  virtual 172.20.66.2 hostname 1

  virtual 172.20.66.2 email admin@1

  virtual 172.20.66.3 root /var/ftp/virtual2

  virtual 172.20.66.3 banner /var/ftp/virtual/2.msg

  virtual 172.20.66.3 logfile /var/log/ftp/virtual/2xferlog

  virtual 172.20.66.3 hostname 2

  virtual 172.20.66.3 email admin@2

  (2)virtual

  allow [ ...]

  virtual

  deny [ ...]

  上面这些参数设定虚拟主机的权限。其中allow和 deny都是virtual的子参数,它们设定是否可以访问虚拟主机的设置。一般情况下real和guest两个class是用户不允许访问虚拟主机,该两个指示用来重新对允许和拒绝访问的虚拟主机的用户进行定义,通过这些设置和ftpuser的搭配,可以更加细化服务器。

  (3)defaultserver deny [ ...]

  defaultserver allow [ ...]

  defaultserver private

  上面这几个参数设定了虚拟主机中访问权限默认值。请注意它们不是virtual的子参数。其中:

  defaultserver private 指定了默认的虚拟服务器是否拒绝anonymous用户访问 。

  defaultserver deny 指定了默认的虚拟服务器拒绝哪些用户的访问。

  defaultserver allow 指定了默认的虚拟服务器接受哪些用户的访问。

  通过以上配置参数,再结合FTP其它的配置文件,这样一台PC机就可以作为多台FTP服务器使用。读者可以针对自己的需求,结合其它的wu-ftp的配置说明,来定制个性化的FTP服务器了。

收缩

  • 售前咨询
  • 技术支持
  • 备案专员
  • 24小时客服热线:
  • 88900700

微信号:hnidccn