使用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

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