TheServerExperts:$7.95 512MB OpenVZ VPS

theserverexperts

TheServerExperts 创立于2001年,有超过9年的 Hosting 行业经验,host 超过9700个网站。Whois 查询显示 theserverexperts 域名在2004年在阿鲁巴(一个位于加勒比海地区的岛屿)注册,在美国、荷兰和阿鲁巴都有 office,服务器都在美国,除了 VPS,他家还提供各种配置的 dedicated server. VPS 配置如下:

服务器在 New York
vePortal 控制面板
1.0Ghz CPU
20GB 硬盘
512MB RAM
1000GB 带宽
2个 IP
7.95美元

网络和数据中心信息:

TheServerExperts network uses 100% Cisco network equiment. Servers in our datacenters are directly connected to our gigabit switches which are uplinked directly from our multi-gigabit backbone. Our multihomed bandwidth is 100% redundant, using transit from several different TIER1 carriers.

在 CentOS 5.4 上安装和配置 Asterisk 和 Digium 卡

asterisk

现在大家基本都在用智能手机,加上我们的工作区已经被 Wifi 覆盖,如果能让每个手机连上 Wifi,通过一个 Asterisk 服务器(网关)给内线打电话的话就会很方便,比如我在周围散步、或者和朋友聊天的话还可以收到办公桌上的内线电话。如何用智能手机(这里主要使用 Nokia E 系列)免费打内线电话呢?首先手机必须通过 Wifi 连上内部网络,然后通过内部网络的一台 Asterisk 服务器和电话线连上内部电话网络(PSTN),Asterisk 在这里相当于一个网关,用来连接 IP 网络和 PSTN 网络,这样我们就可以通过 IP 网上的电话(手机或者软电话)打内部电话(俗称座机)了,如果内部电话使用 IP 电话就更好了,就不用这么麻烦了。

上个星期在自己的 PC 上安装了一个 Digium 电话卡,并且 在 Ubuntu 上源码编译安装了 Asterisk 和 Digium 驱动,测了测效果,电话语音效果还不错。这个星期打算安装在服务器上,SUN 服务器没有 PCI 插槽,找了一台很老的 HP ProLiant ML110,配置是:Intel P4 3GHz CPU, 4GB ECC RAM,足够我们小组的人用了。按照 Asterisk 和 Digium 官方网站的推荐,VPSee 还是决定使用 CentOS 5.4 作为这台 Asterisk 服务器的操作系统。

安装和配置 Asterisk 和 Digium 卡

首先安装 CentOS 5.4 和优化系统,然后加上 Asterisk 的 Repositories:

# vi /etc/yum.repos.d/CentOS-Asterisk.repo
[asterisk-tested]
name=CentOS-$releasever - Asterisk - Tested
baseurl=http://packages.asterisk.org/centos/$releasever/tested/$basearch/
enabled=0
gpgcheck=0
#gpgkey=http://packages.asterisk.org/RPM-GPG-KEY-Digium

[asterisk-current]
name=CentOS-$releasever - Asterisk - Current
baseurl=http://packages.asterisk.org/centos/$releasever/current/$basearch/
enabled=1
gpgcheck=0
#gpgkey=http://packages.asterisk.org/RPM-GPG-KEY-Digium

再加上 Digium 的 Repositories:

# vi /etc/yum.repos.d/CentOS-Digium.repo
[digium-tested]
name=CentOS-$releasever - Digium - Tested
baseurl=http://packages.digium.com/centos/$releasever/tested/$basearch/
enabled=0
gpgcheck=0
#gpgkey=http://packages.digium.com/RPM-GPG-KEY-Digium

[digium-current]
name=CentOS-$releasever - Digium - Current
baseurl=http://packages.digium.com/centos/$releasever/current/$basearch/
enabled=1
gpgcheck=0
#gpgkey=http://packages.digium.com/RPM-GPG-KEY-Digium

安装 Asterisk 1.6 和 DAHDI:

# yum install asterisk16 asterisk16-configs asterisk16-voicemail \
dahdi-linux dahd

把 Asterisk 加到启动文件中以便开机就启动 Asterisk:

# /sbin/chkconfig asterisk on

安装完毕,启动和停止 Asterisk:

# /etc/init.d/asterisk start
# /etc/init.d/asterisk stop

插上电话线和电话

Digium 驱动安装成功并重启系统后,Digium 卡上的闪烁灯应该会被点亮,注意在拆机箱、安装 Digium PCI 卡时要把卡接上主机内的电源,这样电话才会听见拨号音。左边黑线连接电话机,右边白线连接电话线(PSTN):

digium card

配置 Digium

先运行 dahdi_genconf 自动生成配置文件,这样会在 /etc/dahdi/ 下面产生一个 system.conf,在 /etc/asterisk/ 下产生一个 dahdi-channels.conf,注意 Zaptel 项目被重新命名为 DAHDI,所以目录和配置文件名也有变化:

# /usr/sbin/dahdi_genconf
# vi /etc/dahdi/system.conf
vi /etc/asterisk/dahdi-channels.conf

配置 Asterisk

给系统分配电话号码,简单说明一下,1)如果要打外线需要先拨 9;2)如果从电话上(连在 Asterisk 服务器上的那个电话)接电话的话,Dial(dahdi/g1,20,rt);3)想把 incoming 电话转接到手机上(电话号码是 9252)的话,Dial(SIP/9252,20):

# vi /etc/asterisk/extensions.conf
[internal]
exten => 9250,1,Dial(SIP/9250,20)
exten => 9250,2,Hangup
exten => 9251,1,Dial(SIP/9251,20)
exten => 9251,2,Hangup
exten => 9252,1,Dial(SIP/9252,20)
exten => 9252,2,Hangup

exten => 92461,1,Dial(dahdi/g1,20,rt)
exten => 92461,2,Hangup

exten => _9.,1,Dial(dahdi/g2/${EXTEN:1})

[incoming]
exten => s,1,Answer()
exten => s,2,Dial(dahdi/g1,20,rt)
; exten => s,1,Dial(SIP/9252,20)

给手机或 SIP 软电话分配电话号码

# vi /etc/asterisk/sip.conf
[9250]
type=friend
context=internal
username=9250
host=dynamic                    ; This device needs to register
canreinvite=no                  ; Typically set to NO if behind NAT
dtfmode=rfc2833
nat=no                          ; X-Lite is behind a NAT router
disallow=all
allow=ulaw
subscribecontext=internal
mailbox=9250@internal                   ; Subscribe to status of multiple mailboxes

[9251]
type=friend
context=internal
username=9251
host=dynamic                    ; This device needs to register
canreinvite=no                  ; Typically set to NO if behind NAT
dtfmode=rfc2833
nat=no                          ; X-Lite is behind a NAT router
disallow=all
allow=ulaw
subscribecontext=internal
mailbox=9251@internal           ; Subscribe to status of multiple mailboxes

;Nokia Cellphone
[9252]
type=friend
context=internal
username=9252
host=dynamic                    ; This device needs to register
qualify=no
port=5060
notransfer=yes
disallow=all
allow=alaw

修改完配置文件后需要 Asterisk 重新导入配置文件:

# /usr/sbin/asterisk -vvvvvvvr
localhost*CLI> reload

测试

手机必须是支持 Wifi,SIP 的智能手机,VPSee 在 Nokia E51/E60/E61/E70/E71/N82 上都测试过没有问题,如果没有手机的话也可以用任何 SIP 软电话(比如 X-Lite 等)客户端测试。测试具体配置可以看 用 Nokia 手机连接 Asterisk 打 SIP 电话 的后半部分。

VPSWow!:$3.98 128MB OpenVZ VPS

vpswow

VPSWow! 是一家英国 VPS provider,现在正在做二月份的打折活动,根据 WHT 上的广告使用优惠码:Feb_50%_OFF 购买任意 VPS 只要半价,现在他家有两款 VPS 打折后在10美元以下,他家也有 Xen 的 VPS,不过 Xen VPS 不在这次优惠范围内。VPSWow! 域名已经注册了差不多两年了,比较靠谱,数据中心在 Dallas TX,租用的是 Limestone Networks 的服务器和设备。VPSWow! 是 OSHS Limited 这家公司的一个子品牌,除 VPSWow! 外 OSHS 还拥有 hostgd, flyhigh.net, slip7.net, helpinghandhost.com 等,这些也都是做 hosting 的。VPS 配置如下:

Neon OpenVZ Argon OpenVZ
128MB RAM/256Mb Burst 256MB RAM/512Mb Burst
10GB 硬盘 25GB 硬盘
50GB 带宽 100GB 带宽
$3.98 $7.98

服务器配置信息:

All of our nodes have powerful dual or quad core processors with at least 4GB of RAM and located in Infomart, Dallas Texas to house our servers which are located on a premium bandwidth network blend of Level3, InterNAP, and Global Crossing.

DareDevilHosting:$5 512MB OpenVZ VPS

daredevilhosting

DareDevilHosting 是一家加拿大的 Hosting Provider,现在正是加拿大冬奥会进行得如火如荼的时候,这家 provider 也推出2款 “冬奥会” 优惠,根据 WHT 的广告,这款 512MB Open VZ VPS 只要5美元每月。Whois 显示这家域名才注册两个月,官方网站上甚至还没有具体 VPS 产品的价格和介绍,他们使用的是 SolusVM 控制面板。VPS 配置如下:

Olympic Special 1 Olympic Special 2
512MB RAM/1024Mb Burst 1024MB RAM/2048Mb Burst
30GB 硬盘 60GB 硬盘
750GB 带宽 1500GB 带宽
$5 $10

服务器配置信息:

16 cores

在 Ubuntu 9.10 上安装 Asterisk 和 Digium 卡

很久没有关注 Asterisk 了,现在 Asterisk 出了 1.6 版本,有一个较大的变化就是 Zaptel 项目被重新命名为 DAHDI,导致有些配置文件名和配置文件放置的地方有了点变化,对于习惯了 1.4 的用户有点不适应,而且好多资料都是按照 1.4 版本写的,比如那个经典免费书:Asterisk: The Future of Telephony.

以前写过一篇 如何用 Nokia 手机连接 Asterisk 打局域网 SIP 电话 的文章,是在没有 Digium 电话卡的情况下做的一个纯 VoIP 服务器。如果有电话卡的话就可以连到 PSTN 网络,这样电脑就可以通过 IP 网络给固定电话(PSTN )打电话。VPSee 用的是 Digium TDM400P PCI 语音电话板卡(见图),有4个口,1个连 PSTN 电话线(FXO),剩下 3个连电话机(FXS)。整个安装过程和配置操作在 Ubuntu Desktop 9.10 上完成,如果要看 CentOS 版本上面的安装过程可以看这篇,这里只给出了安装过程,具体 Digium 卡和 Asterisk 的配置过程可以看这篇:在 CentOS 5.4 上安装和配置 Asterisk 和 Digium 卡

digium card

安装前准备

先安装一些编译 Asterisk 需要的必备包:

# apt-get install build-essential subversion make linux-source kernel-package

再安装 Linux 内核头文件,安装的时候会有提示选择哪个版本的 linux-libc-dev,选择一个和当前内核版本对应的 linux-libc-dev 就可以了:

# apt-get install linux-kernel-headers
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package linux-kernel-headers is a virtual package provided by:
  linux-libc-dev 2.6.31-19.56
You should explicitly select one to install.
E: Package linux-kernel-headers has no installation candidate

# apt-get install linux-libc-dev

安装 linux-headers,同样的,需要从众多头文件版本中选择一个和当前内核版本相对应的 linux header 版本:

# apt-get install linux-headers
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package linux-headers is a virtual package provided by:
...
  linux-headers-2.6.31-19-generic-pae 2.6.31-19.56
  linux-headers-2.6.31-19-generic 2.6.31-19.56
  linux-headers-2.6.31-19-386 2.6.31-19.56
  linux-headers-2.6.31-19 2.6.31-19.56
...
You should explicitly select one to install.
E: Package linux-headers has no installation candidate

# apt-get install linux-headers-2.6.31-19-generic

还需要安装一些包:

# apt-get install libconfig-tiny-perl libcupsimage2 libcups2 \
libmime-lite-perl libemail-date-format-perl libfile-sync-perl \
libfreetype6 libspandsp1 libtiff-tools libtiff4 libjpeg62 \
libmime-types-perl libpaper-utils psutils libpaper1 ncurses-dev \
libncurses-dev libncurses-gst ncurses-term libnewt-dev libnewt-pic \
libxml2 libxml2-dev libspandsp-dev libspandsp1

安装 Asterisk

把工作目录切换到 /usr/src/ 下,以后所有操作都在这个目录下进行:

# cd /usr/src/

下载 asterisk, dahdi-kernel, dahdi-tools, libpri 的源代码:

# svn co http://svn.digium.com/svn/asterisk/trunk asterisk
# svn co http://svn.digium.com/svn/dahdi/linux/trunk dahdi-kernel
# svn co http://svn.digium.com/svn/dahdi/tools/trunk dahdi-tools
# svn co http://svn.digium.com/svn/libpri/branches/1.4/ libpri

编译安装 libpri:

# cd /usr/src/libpri
# make clean
# make
# make install

编译安装 dahdi-kernel:

# cd /usr/src/dahdi-kernel
# make clean
# make
# make install

编译安装 dahdi-tools:

# cd /usr/src/dahdi-tools
# make clean
# ./configure
# make
# make install
# make config

最后编译安装 asterisk:

# cd /usr/src/asterisk
# make clean
# ./configure
# make
# make install
# make config

运行和测试 Asterisk

最后检查一下 Asterisk 是否工作以及 Digium 卡的驱动是否装好:

# asterisk -r
...
localhost*CLI>

# lsmod | more
...
dahdi                 199240  11 xpp,dahdi_transcode,wcb4xxp,wctdm,wcfxo,wctdm24
xxp,wcte11xp,wct1xxp,wcte12xp,dahdi_voicebus,wct4xxp
...

在64位的 CentOS 上只安装64位的软件包

在 64位版本的 CentOS 5.4 上使用 yum 安装软件包的时候如果不小心的话会同时安装 i386 和 x86_64 版本的软件,如下面安装的 httpd-devel 就有 i386 和 x86_64 两个版本:

# yum install httpd-devel
...
Dependencies Resolved

================================================================================
 Package              Arch       Version                      Repository   Size
================================================================================
Installing:
 httpd-devel          i386       2.2.3-31.el5.centos.2        updates     147 k
 httpd-devel          x86_64     2.2.3-31.el5.centos.2        updates     147 k
Installing for dependencies:
...

同时安装32位和64位版本的软件虽然不是什么错,也不会对系统造成什么问题,但是这样会浪费硬盘空间,而且显得系统臃肿、不干净。如果想要保持一个纯的64位系统、在64位 CentOS 上避免安装32位软件包的话很容易,只需要在 yum.conf 加上一行过滤掉 i386, i686 的软件包就可以了:

# vi /etc/yum.conf
[main]
...
exclude=*.i?86

然后删除系统上已经安装的 i386/i686 包:

# yum remove \*.i\?86

CH Hosting:$10 128MB Xen/512MB OpenVZ VPS

chhost

CH HostingWHT 上放出一个优惠20%的优惠码:CH20OFF,原价10美元的 OpenVZ 和 Xen VPS 只要8美元。域名显示 chhost.net 的注册时间是在2009年5月,不到一年,服务器在美国的 Denver,VPS 使用 SolusVM 控制面板。Google 了一下发现这家 provider 的所有者是个马来西亚人,估计又是某个 reseller. VPS 配置如下:

OpenVZ Xen
512MB RAM/768Mb burst 128MB RAM/256Mb Swap
25GB 硬盘 10GB 硬盘
300GB 带宽 1000GB 带宽
$10 $10

服务器配置信息:

Intel Quad Core 9550 with 8GB RAM.

Up2vps:$8.48 512MB Xen/256MB OpenVZ VPS

up2vps

Up2vps 是一家加拿大 Hosting Provider,除了 VPS 外也做 Web Hosting, Reseller 等。 域名显示2009年9月才注册的,到现在还不到半年。数据中心在美国的 Clarks Summit,使用 Solusvm 控制面板,提供 OpenVZ 和 Xen 两种 VPS. 根据 WHT 论坛上提供的广告信息,他家的 VPS 现在都只要半价,而且楼主称他们家的 VPS 是 volumedrive.com 和 burst.net 的 reseller,从楼主回答客户的问题来看,楼主的母语似乎不是英语,甚至离普通英语都还有段距离,不知道 up2vps 如何与客户交流和提供顺畅的技术服务,甚至网站的 About 部分也是拷贝 volumedrive.com 的。VPS 配置如下:

OpenVZ Xen
256MB RAM/512Mb burst 512MB RAM/1024Mb Swap
20GB 硬盘 20GB 硬盘
400GB 带宽 500GB 带宽
$5.50 $8.48

服务器配置信息:

All servers we configured as follows: Dual Opteron Quad Core 2356 or Intel Core i7 x8 CPU, 32 GB Or 12 GB Interleaved ECC server memory, 2 x TB hard drives, Hot-Swap Drives

FierceServers:$4.99 64MB OpenVZ VPS

fierceservers

FierceServers 是一家非常新的 VPS provider,去年9月份才创建。根据 WHT 上的广告和优惠码:QUARTER 购买他家的 VPS 并且季付的话可以得到25%的优惠,也就是说配置最低的一款 VPS 只要3.74美元每月。并且他家有45天返款保证,不满意的话45天内可以全额退款。目前只有 CentOS 可供选择。VPS 配置如下:

VPS1 VPS2
64MB RAM/128Mb burst 128MB RAM/256Mb burst
5GB 硬盘 10GB 硬盘
100GB 带宽 200GB 带宽
$4.99 $9.99

服务器配置信息:

All our servers have been upgraded to a minimum of 2cpu x 4core servers with HT (16 threads), with RAID, with a minimum of 12Gb RAM and 1Gbit connections.

在 VMware ESXi 上安装 Minix

VMware ESXi 是业界领先的 hypervisor,更重要的是它现在是免费的,只要在 VMware 上注册一个账号就可以拿到一个免费的 license,下载 iso 后刻盘启动,安装过程非常简单,安装完后界面如下,可以修改的东西不多,可修改管理员密码和网络配置。主要操作和配置需要在一个另外一台机器上(安装 VMware vShpere 客户端)完成。需要注意的是 VMware ESXi 对硬件设备要求很高,好像一般的桌面 PC 都安装不了,VMware ESXi 4.0 Hardware Compatibility List这里给出了能运行 VMware ESXi 的兼容硬件设备列表。

vmware esxi installation

在主控台配置完 ESXi 的网络后在另外一台机器上打开 http://your-ip-address/ 就会看到一个页面,下载和安装 VMware-viclient.exe 客户端工具后就可以用来管理 VMware ESXi. 启动 VMware vShpere Client 后就会发现是个60天试用版本,需要输入 license(虽然是免费的)。VPSee 找了半天才找到输入 license 的地方,不在菜单上,在右边页面的 Configuration tab 下的 Software->Licensed Features:

vmware esxi installation

VMware ESXi 安装成功后就是创建虚拟机、安装 Minix 了,原以为会很顺利,结果昨天因为网卡驱动问题折腾了一上午。安装 Minix 时候会碰到如下问题:

Probing for disks. This may take a short while... AT0-D0: controller not ready
AT0-D0: controller not ready
AT0-D0: reset failed, driver busy
AT0-D1: controller not ready
AT0-D1: controller not ready
AT0-D1: reset failed, driver busy
......
Found no drivers - can't partition.
Autopart tool failed. Trying again.

原因是 VMware ESXi 默认创建的虚拟硬盘设备是 SCSI 的,Minix 不支持 SCSI 只支持 IDE 的,解决办法是 Power Off Minix 虚拟机,在 Edit virtual machine settings 中 Add 一个 Hard Disk 设备并在 Virtual Device Node 中选择 IDE (0:0),然后再启动虚拟机后就可以顺利安装 Minix 了。要注意的是,安装 Minix 一定要安装 Minix 3.1.6 或以上版本,不然就会遇到烦人的网卡驱动问题,昨天花了很长时间才找到问题所在,压根就没有想到会是驱动有 bug,驱动完全不工作也好说,至少可以马上定位问题所在,最怕这种有时候工作有时候不工作的情况,anyway,安完 Minix 后需要配置一下 Minix 环境以便以后操作。

设置静态 IP 地址:

# vi /etc/rc.net
ifconfig -l /dev/ip0 -n 255.255.255.0 -h 172.16.20.201
add_route -g 172.16.20.1
daemonize nonamed -L

在系统启动的时候就启动 telnet 和 ftp 服务:

# vi /etc/rc.net
intr -d tcpd telnet in.telnetd &
intr -d tcpd ftp in.ftpd &

如果要安装很多 Minix 的话,可以在安装和配置好一个 Minix 后导出为一个虚拟机通用模版(VMware ESXi 主菜单上的 File->Export OVF Template… ),然后再利用这个模版(File->Deploy OVF Template… )部署多个 Minix 虚拟机器。下图是刚创建的20个 Minix 虚拟机:

vmware esxi installation