众所周知,互联网服务器是需要绑定公网IP地址才能访问的,托管在电信机房的服务器都会绑定一个或者几个固定的公网IP地址,北京机房一般增加一个IP地址,收费300元左右。不过,除此之外,为了获得这个固定的IP地址,我们还要交每年几千元的托管费。而且服务器放在机房,诸多不便啊,半夜服务器死机了,小心翼翼打电话到机房,请管理员给重启一下,生怕打扰了人家的好梦,引得人家不耐烦,弄不好给咱可怜的服务器一拳咱也得挨着。如果连续重启还是死机,就惨了,天没亮就上路吧,去机房,到了机房,在拥挤狭窄的机柜走廊里,跪在地上拆箱子调试,那滋味可真是“往事不堪回首”啊。所以很早就有兄弟动脑子,把服务器架设在家里。

 

要把服务器架设在家里,或者小公司的办公室里,就自然要说到动态主机软件了,也有人喜欢叫它动态域名解析服务,因为家里都是拨号上网(包括ADSL宽带),IP是动态变化的,所以必须借助动态主机客户端软件和相应的免费域名,才能让互联网上的人们浏览到家里的服务器,否则除非您家里有专线+固定IP,不过那样成本比托管低不了什么。

 

服务器架设在家里有两大难点需要克服:

 

1、死机:服务器放在家里无法24小时有人值守,而电信机房是7×24服务,24小时全天候有人值守,出问题了,打电话过去随时有人帮你重启服务器。但是放在家里无法做到24小时有人值守。如果死机了,常常干着急没辙。什么时候回家再重启吧。

 

2、停电:家里无法保证不停电,停电服务器就会关机。电信机房除了双路供电系统保证,还有巨大的蓄电池组做后备电源,所以停电造成关机的情况不多。可是在家里,就算你住别墅,偶尔的停电也是在所难免的,谁家没有遇到过停电呢?停电了服务器自然就关机了,什么远程管理软机对着已经关机的东西都是白搭。

 

接下来,编者将从唐华《教你打磨永不断线的家庭服务器》文章中辑录部分内容和大家分享如何在家里架设服务器为、保持服务器在线。

 

这里文章都是来自唐华的旧文,由于IT发展的日新月异,文章中的某些观点可能过时,但唐华在文章中所提出的方法论还是非常值得借鉴的,希望大家在研习这些旧文章的时候能够本着“取其精华,去其糟粕”的拿来主义精神,创造性得将唐华的旧文和自己的实际应用需求结合起来,真正做到“学有所用”。

 

去年5月,搬家之后,我申请了包月120元的ADSL宽带,上网同时,为了充分利用宽带,用一台旧电脑在家架设了一个服务器,配置为老赛扬433+两条SD133内存共256M+120G硬盘(2M缓存7200转/s)+杂牌250W电源,没有显示器、键盘、鼠标。通过一台家用宽带路由器接入ADSL大猫。一天到晚24小时开机,为许多朋友提供E-mail、FTP、存放网站等免费服务。下面,我就把我维护这台无固定公网IP的家用服务器的一些小经验和窍门总结出来,供大家参考,只求抛砖引玉。

 

不断线窍门之一:使用宽带路由器。

 

一般来说,用电脑拨号上网的稳定性确实不如内置拨号功能的宽带路由器,用路由器之后,那感觉就好像使用的是一条不必拨号的专线,只要把电脑用网线插入路由器的网口,电脑就在线了,路由器可以24小时开机,就相当于一台用电脑做成的共享上网代理服务器,只不过比电脑代理服务器耗电小得多,维护也很简单,基本不用维护,开机就上网。

 

一般在路由器最初设置的时候,在“PPP over Ethernet”选项设置上网密码的时候,可以顺手把“Auto-reconnect”之类的选项勾选上,下图就是我这台现在售价才200元左右的家用宽带路由器的设置界面。这台路由器内置四口交换机,可以直接带四台电脑上网,如果后面连上交换机,最多可以连200多台电脑上网,功能还是很超值的。

 

 

 

宽带路由器设置界面

 

连好路由器,在服务器上安装了动态主机软件,要用那种能够捕捉路由器公网IP地址变化的软件和动态主机服务商,因为如果软件捕捉的是本机的IP,那么软件提交给动态主机服务商的就将是类似198.192.123.125之类的内部局域网IP,这样是不能让外界朋友通过这个IP访问服务器的。

 

 

 

 

动态域名解析

 

这个时候要做的事情就是通过动态主机服务商,申请了一个免费域名:http://vipemail.bjs.cn ,然后将一个国际顶级域名www.usacase.com绑定在免费域名上,现在连接好电脑好路由器,安装好动态主机软件,输入帐号密码,很快,上海一个网友就报告,通过可以访问到我的网站了,我在这台服务器上安装了一个免费邮局服务器程序。每个访客都能立刻获得100M的不限制附件大小没有任何广告的邮箱。

 

不断线窍门之二:提高服务器安全性。

 

现在虽然能够访问了,但是怎么才能保证朋友们日日夜夜不间断地享用免费邮箱等服务。服务器连接到互联网上,供大家访问、上传文件、传输邮件,自然难免接触各种病毒、木马,甚至受到黑客的直接攻击,所以服务器一定要做好安全工作,才能保证尽量不因为病毒、木马、黑客攻击而导致服务中断。

 

我这台服务器装的是windows2000高级服务器版,Windows2000由于出来时间长,在全世界应用广泛,也就不可避免有许多针对windows2000的病毒、木马等,也是黑客攻击的重点,一台没有经过认真安全设置的windows2000服务器在黑客眼里漏洞百出千疮百孔不堪一击,病毒和黑客攻击往往利用系统的漏洞,微软每隔一段时间就会推出一些补丁,来修补这些漏洞,所以当我安装好windows2000高级服务器版之后,第一件事就是尽快为系统打补丁,安装好微软提供的各种补丁程序,其中最关键的是先打好冲击波补丁和震荡波补丁,因为这两种病毒现在流传很广,一旦染上发作了,不断重启,再想打什么补丁也来不及了,所以要尽快打好补丁。

 

谁都知道通过一些人工设置可以封堵windows2000的一些漏洞,减少安全隐患,可惜这些设置对菜鸟来说,太复杂(老鸟不要笑,想想当年你入门时的糗样),一时半会儿记不住。其实笔者也一直记不全,但是懒人有懒办法,笔者找出一款小软件,可以点击几下鼠标就可以大体把服务器常见安全选项都设置好,下面就是通过软件为服务器做安全设置的过程:

 

首先启动软件,点击漏洞扫描选项——开始扫描,这个系统漏洞扫描程序,可以检测你系统当前存在的安全漏洞隐患,为你指出问题所在,并且为你提供相应的补丁下载链接。只需几秒钟,问题就一目了然了,我的系统虽然打满了补丁,可是百密难免一疏,还是漏掉了最关键的冲击波补丁,而且系统还存在共享漏洞。立即下载冲击波补丁打好。至于系统默认共享漏洞,只需点击软件的系统漏洞修复选项,勾选“修复系统默认共享漏洞”,然后点击修复就可以了。

 

 

下载冲击波补丁

 

 

修复系统默认共享漏洞

 

然后点击分别进入“安全限制”、“系统优化”选项里,这里有许多选项,可以根据需要勾选上,如果你实在难以取舍,就干脆直接点击“自动优化”选项,在下拉菜单里,选择“windows普通用户”,点击完成。如果你不是高手,轻易不要选择“高级用户”和“游戏用户”。关闭太多的服务器功能,封堵太多的选项,有时候会造成服务器莫名其妙的故障,例如,无法访问网页。

 

系统优化设置

 

安全限制设置

 

自动优化设置

 

漏洞补上之后,最好再安装一个比较稳定的杀毒软件,例如,McAfee virusScan简体中文企业版试用,笔者发现这个杀毒软件占用资源少,和MDaemon邮件服务器软件配合得很密切,能随时监视邮件中含有的病毒,并及时清除,不失为一套很好的服务器实时监控杀毒软件。McAfee virusScan安装之后,有一个实时监控程序,可是按照访问扫描文件是否染毒,类似瑞星、金山毒霸的实时监控病毒防火墙程序,不过千万注意,并不是有了实时监控程序就高枕无忧了,正确的使用方法是,在夜深人静服务器负载比较小的时候,运行杀毒程序,把每个硬盘分区都仔细扫描杀毒一遍,因为还有许多病毒、木马隐藏在平时不怎么访问的文件里,只有这样才能把它们挖出来,此外还要注意经常更新杀毒软件的病毒库。

 

最好不要在服务器上安装个人版的杀毒软件,更不要安装个人版的软件防火墙,那些东西是针对个人PC设计的,只要能挡住病毒和攻击就可以了,有时候会连正常的对服务器的访问都挡在外面,那样服务器就又要断线了。而且,个人版的杀毒软件和防火墙稳定性不如服务器版的杀毒软件,容易造成死机和软件冲突,要注意。

 

不断线窍门之三:自动登入系统,自动锁定系统。

 

Windows2000服务器运行久了,就算不死机,速度也会越来越慢,程序运行也会渐渐显得不稳定,为了保持服务器的速度和稳定性,通过PCanywhere之类的方法远程重启一下服务器,这时就会发生一个问题,造成重启后的服务器无法连上互联网继续提供服务。这个问题是windows2000自身安全性造成的,当windows2000高级服务器重启系统或者开机后,系统会在进入桌面之前,会显示一个提示窗口,要求同时按“Ctrl+Alt+Del”才能输入用户名和密码,输入用户名和密码之后,才能进入系统桌面。

 

这就出现了一个问题,就是一旦服务器出现问题,远程重启系统之后,系统启动过程会停留在这个要求按下“Ctrl+Alt+Del”的地方,此时,动态主机软件还没有启动,服务器IP没有被提交到动态主机服务商那里,现在的远程管理是需要针对IP地址才能生效的,我们这时候不知道服务器现在的IP地址,所以也就无法通过远程管理连接到服务器,更无法同时按下“Ctrl+Alt+Del”然后输入用户名和密码,进入桌面启动动态主机客户端。那么如何解决这个问题呢,其实很简单,想办法让服务器自己输入用户名和密码。现在有一款更简便有效的小软件,可以轻松解决这个问题。

 

下面就是这款小软件的界面,界面很简单直观,一看就会。先在“自动登陆系统”前面打勾,然后输入系统管理员的用户名和密码,点击保存。当系统重启之后,进入了桌面,如果不锁定桌面,这时服务器好像一个敞开门的房间,很容易让黑客乘虚而入,所以在“进入系统后自动锁定计算机”前面也打勾,延时一般就选择默认的0秒就可以,也就是进入系统后立即锁定桌面,除非管理员通过远程管理输入“Ctrl+Alt+Del”后,输入密码才能进入桌面。这时桌面虽然锁定了,但是并不影响随windows启动的动态主机客户端软件启动,客户端会自己输入动态主机用户名和密码,于是,新的动态IP立即被提交给动态主机服务商,外界又能通过免费域名访问到服务器了。

 

自动启动和锁定系统

 

这个可以让系统自动登陆的小软件还有一项简单实用的功能,就是定时重启服务器,大家都知道,window系统运行久了,难免速度变慢,出现错误,定时重启一下服务器,好处很多,一般放在电信机房的服务器,也要根据需要经常重启一下,让服务器恢复到比较好的状态里。我在“定时重启系统”前打勾,选定“特定时间重启”,我设定每周六凌晨三点,系统重启一次,我认为这个时段,一般访问量较小。最后点击保存,然后重启服务器,刚才的设置立即生效。当然,你也可以选择每隔××分钟重启一次服务器。一切简单明了,根本不用懂什么注册表,也不用使用什么复杂的软件,你说简单不简单?

 

不断线窍门之四:随时监测IIS状况,自动重启IIS。

 

使用windows的用户,还经常遇到一个问题,就是为服务器提供web服务的IIS程序无响应,或者出错,导致服务中断,这时服务器还没有死机,只是IIS“死掉”了,怎么办?当然可以通过远程管理,人为重启IIS。不过,如果你恰好不在电脑旁边,或者无法上网,怎么办?我想到一个办法,可以让服务器自己经常检测IIS的运行状况,发现IIS“死掉”、“出错”的时候自动重启IIS,如果连续重启IIS几次,还是无法解决问题,就干脆自动重启服务器。方法很简单,也要用到一个小软件,请看下图:

 

这是个和小的监控程序,国产软件,只能用于Win2000/XP,不能用于NT4。

 

先将 HttpMon.exe 复制到硬盘上,并将其添加到Windows的任务计划中,设置为"计算机启动时运行",以administrator 的权限运行。这样监控程序就会随windows系统一起启动。

 

这个软件同刚才介绍的那个小软件一样,具有定时重启功能,可指定每隔几天重启一次计算机或是重启IIS。若是指定为0天时表示每天重启一次。不过我们主要用到的不是这个功能。我们主要用的是这个软件提供的“http监控”功能。

 

1、首先用记事本,建立一个新文件,写上一个简单的代码,如<%response.write "OK"%>,保存为  state.asp,将来软件通过访问这个文件,可以检查IIS是否死掉。若要检查链接数据库是否正常还可以把代码写为:

<%

set db=CreateObject("ADODB.Connection")

db.open 数据库链接

db.close

%>

运行HttpMon.exe 点击"添加"按钮添加监控条件。

a)在"检查链接"里加上用来监控的页面 如 http://vipemail.bjs.cn/state.asp

b)在"检查频率"中可以指定多长时间检查一次,默认是20分钟

c)在返回信息中选择要检查的条件,有几种情况:

返回状态等于,返回状态值不等于,文件大小等于,小于,大于。

"返回状态值" 指IIS返回的客户端时的状态。

200 是正常

302 文件重定向

404 文件找不到

500 服务器内部错误

默认是:当返回状态不等于200时(表示IIS出错时)重起IIS

当上面情况出现时可做几个对应处理:

 

a)重启计算机 b)重启IIS c)关闭计算机 d)请求页面 "请求页面"可用于扩展程序功能,如通过请求一个程序页面 (http://vipemail.bjs.cn/sendmail.asp)发信给管理员。

 

设置

 

监控程序

 

2、因为有时重启IIS不一定成功,所以当上面错误情况出现时,程序会自动缩短检查的隔时间,默认为5分钟。也可以自定义。当上面操作多次重试都不成功时,还可以设置对应的操作。例如:当重启了3次IIS后还是有错误,这时可以在后面设置为重启计算机。

 

3、日志功能可以记录Http监控程序的工作情况,他可以记录什么时候检查过什么页面,什么时候出现了错误,对应操作是什么。

 

不断线窍门之五:停电恢复之后自动开机,电话遥控RESET。

 

现在我们要解决家庭服务器的最后两道难关——停电和死机!

 

为停电和死机的问题,我也伤透了脑筋,目前总算找到一个不错的解决办法——电话唤醒伺服器。

 

也许不少朋友在56Kmodem时代都听说过、试验过电话唤醒电脑,那时候这是modem的一项时髦的功能,不过实际上也不怎么好用,要配合主板设置等,常常出现一些莫名其妙的故障,所以周围真正使用的人并不多。不过这倒是给我一些启发,就是利用电话是不是可以控制服务器的开机、重启呢?

 

用56K猫的唤醒方案当然不行,即便可以将因停电而关机的服务器唤醒(开机),但是对于死机就无效了,因为这时电脑并未关机,还在开机状态,怎么办呢?此时最好是按一下reset键,可惜56K“老猫”做不到。

这个时候一个简单的办法就能够解决这些问题。

 

到市场上买一个“小砖头”——电话控制伺服器(服务器专用),这是一款针对性很强的产品,专门针对使用动态主机软件架设服务器的用户而设计,从多方面考虑到用户的实际需求,可以远程通过电话对服务器发出命令,使服务器实现开机或者重启。该伺服器使用了现在流行的单片机技术。

 

电话控制伺服器(服务器专用)在实际使用中,安装和操作都很简便,按照说明书将伺服器连接在服务器和电话之间,伺服器使用一台小功率12V直流电源供电,耗电量极小,伺服器的电源和服务器的电源线都接入同一个电源插座。连接好之后,认真检查无误。现在实验一下效果。

 

1、停电自动恢复

 

服务器运行时按下电源插座的开关,模拟突然停电状态。

服务器立即关机,伺服器也断电停止工作。

再次按下电源开关,恢复供电,伺服器立即工作,并自动启动服务器,不久服务器启动成功,动态主机客户端软件自动登陆成功,外界对服务器的访问随即恢复。

 

2、死机电话Reset

 

在服务器死机时,通过远程管理软件已经无法连接到服务器进行重启,这时候拨入电话,电话振铃6声之后,电话听筒里传来三声提示音,这是按下电话“0”键,伺服器开始动作,服务器立即被reset,不久以后,外界对服务器的访问再次恢复正常。

 

3、电话开机

 

在伺服器上有一个转换开关,可以自由选择是否“恢复供电时自动启动服务器”,如果选择否,则当停电后恢复供电时,伺服器不会自动启动服务器开机,而是要等待管理员拨入电话,振铃6次之后,听到3声提示音,这时按下电话“1”键,伺服器开始动作,服务器会被开机。这个功能适合那些不需要不间断开机的用户和需要远程开启服务器的用户。