VPS就是这样做出来的

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

VPS是Virtual Private Server的英文缩写(也有叫VDS的),中文意思是虚拟专有服务器,就是在一台服务器同时运行几个独立的OS(这里是指FreeBSD),有什么用处这里不详细描述了,设想一下几个用户分享一台服务器,互相之间完全独立,每个人都有root权限......。在FreeBSD下VPS通常是由Jail来实现的(据说有专门的商业软件但这里不讨论),下面就简单说一下具体步骤。

在FreeBSD下用Jail实现VPS的步骤是很繁琐的,这里我用的是一个抄来的Shell脚本(稍微改了一下)可以很方便的完成全部过程,这里先假定你的宿主系统地址是192.168.0.1,VPS的地址是192.168.0.2(alias),生成的VPS放在/home/jail下。需要注意的是:这里要实现的是VPS,要生成和宿主系统一样的整个FreeBSD目录树。如果你只是要实现一个运行某个服务的Jail不要用这个script。

另外,再提醒一下,在VPS下对于一些缺省情况下侦听所有地址的服务可能需要重新设定在某个具体的地址上。

#!/bin/sh

################################################

#

#

# makejail

# - Originally written in 2001 by Yann Sommer

# - Slightly modified by MaxBSD

#

# Creation of a new jail environment

# for FreeBSD.

#

# Achtung: Tested under FreeBSD4.X only.

#

################################################

echo "First off, pls create an ip alias and hostname

echo "for the new jail system in /etc/rc.conf."

echo "eg: ifconfig_fxp0_alias0=\"inet 192.168.0.2 netmask 0xffffff\""

sleep 3

if test -z $@; then

echo "Enter destination directory for new jail:"

echo "eg: /home/jail "

read JAIL

else

JAIL=$@

fi

test ! -d $JAIL || { echo "$JAIL already exists!!"; exit 1; }

echo "Creating jail directory..."

mkdir $JAIL

echo "Making World...."

cd /usr/src

make world DESTDIR=$JAIL -DNOCLEAN

cd etc

make distribution DESTDIR=$JAIL NO_MAKEDEV=yes

echo "Making devices..."

cd $JAIL/dev

sh MAKEDEV jail

cd $JAIL

ln -sf dev/null kernel

echo "Preparing initial configuration..."

touch $JAIL/etc/fstab

grep nameserver /etc/resolv.conf $JAIL/etc/resolv.conf

echo "jail.set_hostname_allowed=0" /etc/sysctl.conf

echo "jail.sysvipc_allowed=1" /etc/sysctl.conf

echo "inetd_flags="-wW -a 192.168.0.1" /etc/rc.conf

echo "network_interfaces=\"\"" /etc/rc.conf

echo "sendmail_enable=\"NONE\"" $JAIL/etc/rc.conf

echo "portmap_enable=\"NO\"" $JAIL/etc/rc.conf

echo "======================================================"

echo "*Mission accomplished!*"

echo

echo "To start the jail you've just created, do this command:"

echo "Substitute the IP address and hostname with your own."

echo

echo "jail /home/jail hostname 192.168.0.2 /bin/sh /etc/rc"

echo "======================================================"

FreeBSD的Jail功能目前还不算很强的,尤其是管理方面。不过幸好有一些3rd party的程序增强了这方面的功能,这里就不再讨论下去了。有兴趣的可以自己去搜索一下。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有