使用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
接下來就可以看到一系列的啓動信息出現了。
本文主要針對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
接下來就可以看到一系列的啓動信息出現了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.