使用Jail虚拟多个服务器主机

使用FreeBSD已经很多年了,这么久FreeBSD总是在不断的给我惊喜。就如这里我们所要谈到的Jail,正是FreeBSD在4.x版本中开始提供的一个真正虚拟“主机”的服务。Jail就如许多小型机服务器一样,它使我们需要先安装一个宿主操作系统,其它的所有运行的操作系统都安装于这个宿主操作系统平台之上。

  本文主要针对FreeBSD 5.0来讲述jail的使用,由于FreeBSD 5.0比4.x有了不少改变,所以你如果在4.x上使用jail哪么你可能需要仔细查查相关资料了。也可以联系本文作者 [email protected] 讨论。

1. 漫长的准备

1.1. make world

  首先你需要准备一个“原始”的操作系统,原理很简单,就是使用make world的功能来生成一份新的,但是安装目标路径不是/的完整的操作系统。这步工作会用很久的时间,大家要有一个思想准备,在我的P III 450/128M的笔记本上用了近4个小时。

  我的安装目标路径是/home/jail/hdtest,如果你需要将你的虚拟主机放在别的路径,哪么你需要改变这个路径。

  mkdir –p /home/jail/hdtest
  cd /usr/src
  make world DESTDIR=/home/jail/hdtest


  如果你之前已经make world过,哪么这里可以使用以下命令,可以让你的make world的速度快一些:

  make installworld DESTDIR=/home/jail/hdtest
  cd etc
  make distribution DESTDIR=/home/jail/hdtest


1.2. 启动前的准备

  为了新的系统的配置最好给它安装一个sysinstall,这样可以通过它来方便的初始化配置系统的各项参数。其实这是一个option,如果你熟悉也可以直接生成配置文件。

  mkdir /home/jail/hdtest/stand
  cp /stand/sysinstall /home/jail/hdtest/stand/
  cp /etc/resolv.conf /home/jail/hdtest/etc
  touch /home/jail/hdtest/etc/fstab


  还有就是你需要为vhost准备一个IP地址,这是我在/etc/rc.conf中的设置:

  ifconfig_fxp0_alias0="inet 192.168.10.60 netmask 255.255.255.255"

2. 进入虚拟世界

2.1. 启动jail的shell

  我们需要先得到一个jail的shell来配置这个vhost中的配置文件。

  jail /home/jail/hdtest jail.huangdong.com 192.168.10.60 /bin/sh

  这里jail.huangdong.com是你的hostname,192.168.10.60是你的ip地址,这个ip地址应该已经使用alias参数绑定在你的网卡上。最后的/bin/sh是进去后运行的shell。

2.2. 系统配置

  其实对于vhost中的配置与你初安装一台服务器的配置差不多。不过对于网络的设置可以不用再做的了。进入sysinstall中的config,依次对下进行设置(我的习惯,仅供参考):

  Console
  Time Zone(一定要设置哟,好些东东用它的)
  Network中的设置
  inetd
  sendmail
  Startup

  再就是配置你的/etc/ssh/sshd.conf,将ListenAddress设置成为vhost的IP地址。注意了,在这时还没有真正的启动vhost的系统,你只是使用了它的一个shell而已。

2.3. 启动系统

  先是需要你mount一 个procfs的mount point到vhost中。

  mount -t procfs proc /home/jail/test/proc

  我们来启动这个vhost。

  jail /home/jail/test jail.huangdong.com 192.168.10.60 /bin/sh /etc/rc

  接下来就可以看到一系列的启动信息出现了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章