善意提醒

如果您打开本站很慢,布局排版混乱,并且看不到图片,那么可能是因为您还没有掌握用科学的方法上网的本领。

2006-03-30

Rabo升级

这是一条很旧的 Blog,导入自以前的 Drupal5 站点,讲述的事情与现在 Blogger 上的站点无关。

许久没有关注 Blogcn.com 的首页内容。不知不觉,Rabo 客户端已经升级到了 2.0(虽然还是 Beta 版)。我是在整理友情链接的时候,无意中看到的。想来,Rabo 1.0 已经被无情地抛弃了,否则不会连个升级通知都不给出的。

升过级以后,ListView 的显示速度要快了许多,我就觉得以前有点慢得过分了。换作是我来写程序,起码不会如此地差。不过 2.0 的许多界面依然如故,也许开发人员不敢有大规模的改动吧?最大的变动,莫过于增加了一个聊天程序。这样子的确比较方便,起码客服方便了不少。另外,通过与 Blog 的整合,这样子它们就可以进军即时通信市场了。

这个战略构想倒是不错,依托于它们现有的 Blog 基数,将来要是做得好的话,也许可以从 QQ / MSN 那边分上一杯羹吧?不过在时间上应该已经有些迟了。要是在 QQ 推出 Q-Zone、MSN 推出 MSN Space 之前,就打入即时通信市场,也许现在的地位已经不易撼动了。我估计 Blogcn.com 的高层一开始还是有点想保 blog 的市场,想小富即安,所以错失了最好的时机。教训啊!

在升级数据库的时候,出了一个错,导致了有一篇 Blog 的数据没有升级成功。备份的数据在升级之后,明显缺少一个字段,因此我重新做了备份。这次的备份程序似乎采用了多线程以及批量处理,速度明显快了不少,但是在进度显示上给人的感觉并不是很好。我个人还是喜欢看到进度条一点一点地增加,而不是暴走一段停一段。

2006-03-27

三月里的小雨

三月里的小雨,淅沥沥沥沥沥,淅沥沥沥下个不停。

望着窗外的雨滴,还有那铅灰色的天空,真是一点积极的心思也没有。听着那哗啦哗啦的声音,缩了缩身子,卷紧了毛毯。我就在这种天气里,渡过了这个周末。

好想自己是在那森林里的小木屋哦,烤着火,时不时喝上一口小酒。散发着松木香味的摇椅,嘎嘎作响的旧窗,桌上闪闪的泪烛,还有那挂在墙上的猎弓。一切都那么安静,然而,黑暗中又不知有多少张竖起的耳朵,在等待着明日的黎明。惊讶着,自己居然还有这种欧陆童话般的心境。听着窗外那偶尔隆隆响过的雷声,仿佛这幻想和现实永远都是不能搭调的。

远处,光亮渐渐暗去。留在天边的最后一抹灰色,慢慢变成了那盏不曾闪动的灯光。间或被一缕似乎透明的线,自上而下地划过,好像要固执地向我展示它的存在。是啊,噼噼啪啪,叮叮当当,锅碗瓢盆,油盐酱醋,让我都快要听不见雨声了。好落寞的心情啊!能忘却了雨声么?能忘却了过去的种种么?似水无痕,君已陌路。落花流水,却又飘向何处呢?

2006-03-24

OpenBSD研究手记(六)

把 OpenBSD 重装了。

这次,严格使用从来没使用过的密码(用生成器生成),以免它被攻破之后危急其它的系统。
按照以前的经验,重新安装 Apache2,这次没有遇到任何困难。在新电脑上架设的虚拟机也升级到了 5.5.1,而且硬盘没有使用压缩模式,因此编译、安装的速度快了很多很多。

安装完 Apache2 之后,我把虚拟机停掉,将整个目录打包作了个备份。这样,以后要是安装时出了什么差错,起码系统可以回到这个还原点上。

接着,安装 MySQL。这次我不用那个 5.0.19 的源代码分发包了,改用从 http://www.openbsd.org/3.8_packages/i386.html 处下载的 MySQL 4.0.24 的二进制分发版本。这个版本比较奇怪,分为 Client 和 Server 两部分(这倒不特别奇怪),而且安装的路径不是通常的 /usr/local/mysql,而是直接丢在了 /usr/local/lib、 /usr/local/libexec、 /usr/local/include、 /usr/local/bin 等目录里面。我想,这大概是 BSD 上的 mysql 的安装习惯吧?当然,步骤还是一样,直接在 /usr/local 把它们解压掉就行。

然后,还是要建立 mysql 用户。不过,这个版本奇怪的一个地方在于。它要求创建 _mysql 组,而不是 mysql 组。因此:

groupadd _mysql
useradd -m -g _mysql mysql

当然,mysql_install_db --user=mysql 还是要运行的。然而,接下来要修改的权限又是一个麻烦的地方。因为它的安装路径和我以前装过的 for Linux 版本不一样,因此要修改的目录也就不同。

chown -R mysql /var/mysql
chgrp -R _mysql /var/mysql
chown -R mysql /var/run/mysql

这最后一个目录,一开始不一定有,运行一次 mysqld_safe 可能就会钻出来。

安装 MySQL,我瞥见压缩包里面有着各种 so 文件。估计这次编译 PHP 应该不有什么问题了,实际情况也是如此。很快地,我就又可以安装 discuz 了。
后面的过程和以前是一致的。这次 discuz 的运行没有遇到上次那样的问题。我用管理员帐号登录论坛,打开控制面板,OK,页面出现。不过,还是有点小问题。在「头像」的位置上,出现了一个页面错误的提示,说 Zend Optimizer 没有被安装。

我的确是在 discuz 的官方网站上看到过它需要 Zend Optimizer 的支持。不过既然它到目前为止都表现良好,那也许需要 Zend Optimizer 的只是其中的一小部分功能吧。我去 Zend Optimizer 的官方网站查找 for OpenBSD 的版本下载,结果却令我大失所望。网站上只提供 for OpenBSD 3.3 / 3.4 的版本的下载,连 3.7 都不支持,别说 3.8 了。

我只好下载了 Zend Optimizer 2.6.0 for OpenBSD 3.4。上传到 OpenBSD 服务器上解压,发现有一个 install.sh 可以执行。但执行的结果是告诉我 libm.so.1.0 这个文件不存在,继续执行,发现还有 libc.so.30.0 和 libutil.so.9.0 都找不到。locate 的结果发现,这三个文件的高版本都存在,只是名字不同而已。OpenBSD 为什么没有把不同版本的 so 文件给符号链接到一个通用文件名上的习惯呢?我手动创建了到这些低版本的符号链接,再执行 install.sh,得到的是一个错误。

查看 Zend Optimizer 的安装指南。上面说 OpenBSD 的安装方法是要把 ZendOptimizer.so 拷贝到 /usr/local/lib,然后在 php.ini 中增加两行配置:

zend_optimizer.optimization_level=15
zend_extension="/usr/local/lib/ZendOptimizer.so"

我一看我的 PHP 连 php.ini 都没有生成。看来功能全部是靠编译链接出来的。拷贝了一个 php.ini-recommended 到 /usr/local/lib,加上这两行。然后再检查 phpinfo(),果然 Zend Optimizer 在功能表中出现了。

整个过程还是比较曲折。综合评价后,我得出的结论是:

  • 目前,OpenBSD 确实是最安全的服务器操作系统之一,网络服务器(如路由、DNS、DHCP 等)的功能它肯定可以胜任;
  • OpenBSD 可以胜任一台 Apache + PHP + MySQL 服务器的工作;
  • 要在 OpenBSD 上安装 Oracle 是不行的,至少我没有找到 Oracle for OpenBSD 的任何版本。数据库只能指望 MySQL 和 PostgreSQL,而且最好是使用 OpenBSD 官方提供的版本;
  • 应用软件系统对 OpenBSD 的支持还不够,要想随时用上最新版本不是那么容易的。 

OpenBSD研究手记(五)

总算把 OpenBSD 的 Apache + PHP + MySQL 架设完毕,可以开始应用系统的安装了。

虽然目前比较急切的是 blog 的需求,但是我打算先用 discuz 来下手。discuz 可能不是很出名,它是一个国人开发的 PHP + MySQL 的论坛。号称自己比 LB5000 要好,特别是在性能和负载上面,但是我看了看界面,并不是很喜欢。不过 LB5000 是文本论坛,相信代码再怎么优化,在数据查询上还是有先天劣势的。

从 discuz 官方网站(也是一个论坛)上下载了 discuz 的 UTF-8 简体版论坛程序。不错,才 1.2x 个 MB,尺寸蛮不错的。按照安装指南,先解压到本地,然后用 FTP 上传到服务器。修改几个指定目录的权限为 777,编辑配置文件指明数据库连接字符串,然后运行安装脚本 install.php。只经过了很快的几个步骤,就安装完成了,可见有很多设置都是有默认值的。对比 LB5000 的安装,似乎要简单一些。

从安装脚本的执行情况来看,似乎没有什么错误,于是我又继续进行下面的操作。注册了一个用户,正常。用管理员登录,没问题。进系统设置看了看,选项太多,花了眼,又退了出来。打开控制面板……,出错了。

出现错误的 SQL 也打印了出来,错误信息也写在页面上,这点倒是蛮友好的。我看了看那行 SQL,没有什么问题,一个简单的连接查询而已。我在 MySQL Client 上手动执行这条语句,一样的错误。错误信息居然是「无法打开文件:./discuz/cdb_subscription.frm」。

去数据库目录下看了看,有这个文件在啊。ls -l、cat,都没有任何问题。而当我在 MySQL Client 里面 use discuz 之后试图 show tables 的时候,也出现了文件无法打开的错误。我想,这只有可能是 MySQL 本身有问题了。在重启过之后,问题依然无法解决。

真郁闷。最后决定,把虚拟机删了,一切重头来过。正好趁此加大它的硬盘,并把它放在新电脑上。这样一来空间不是问题,速度也要快很多。

OpenBSD研究手记(四)

终于轮到了最后的步骤,PHP。然而,没想到过程是意外的艰苦。按照以前设想的,以支持 MySQL、iconv、GD(PNG)、XML 为目的的 PHP 编译行动,却遇到了预想之外的麻烦。

当然,首先要准备好外围的库文件。要支持 iconv,需要 libiconv。要支持 GD,需要 libpng。而且我还得确认 libz 也要存在才行,GD 也需要它,虽然一般操作系统都有默认安装。

我个人比较喜欢用 locate 来在 Linux / Unix 系统上找文件。不过当前系统刚装,显然 locate 数据库中还没有信息,因此需要让数据库得到一次填充才行。在 RedHat Linux 上,可以通过 locate -u 来做到,可 OpenBSD 下面的 locate 根本没有 -u 这个选项。但是我知道 locate 的数据库肯定是有一个定期更新的定时事件的,通过查找 cron 的配置,我很快找到了 locate 数据库的更新者——/usr/libexec/locate.updatedb。这是个可执行程序,运行它就可以让 locate 自动扫描硬盘,生成所有文件的路径索引了。

用 locate,我轻易地发现了 libz,也确认了 libpng 和 libiconv 在 OpenBSD 上没有默认安装。这两个软件包,都可以从 http://www.openbsd.org/3.8_packages/i386.html(链接已失效)处下载。下载完了之后,将它们上传到 /usr/local,然后就地 tar -zxf 即可。多出来的 +DESC 和 +CONTENT 是一些说明性的文本,可以删掉。

外围的库文件准备好了。接下来,就该编译 PHP 本身了。我首先试用了在 RedHat Linux 上的 configure 参数。然而,在执行 ./configure 的时候出现了一些问题。按照提示的错误信息,我把 png.h 和 pngconf.h 在 /usr/include和/usr/local/include 处都做了 ln -s,并在参数中对 iconv、png 都手动指明路径。OK,configure 没问题了。

接下来是 make。这次出现了一些不同寻常的信息,说什么找不到 real path of libmysqlclient,只好编译成静态的版本。make install 之后,我草草修改了 httpd.conf,马上去看 phpinfo() 的结果。结果我沮丧地发现,除了 --with-apxs2 参数有生效,其它的参数全部都没有起作用。

当时我的机器非常的慢,完全编译一次要花二十分钟左右。因此我不得不第二天来接着处理这个问题。暂停一下,经过思考,我觉得,不可能所有的选项都有问题。我决定单独添加每个选项,逐个测试,看到底是哪个出了问题。而实践证明,这个方法是有效的。我发现会出问题的只有 --with-mysql=[dir] 这个选项,若去掉它,使用其它的选项都能正常编译。同时,也证明了 PHP 在编译的时候,选项的顺序也是可能会影响编译结果的。我之所以会仅仅生效一个 --with-apxs2,就是因为它的后面紧接着就是 --with-mysql=[dir],所以后面的选项全部失效掉了。

确定了是 MySQL 的问题就好说了。我注意到,不论是否在 --with-mysql 参数中指定 mysql 的安装路径,编译都能通过(这也正常,不指定路径,PHP 就使用自带的 mysqlclient 代码),但是若指定参数,就会出现那个错误信息。不过两者的 phpinfo() 并没有什么实质上的区别,mysqlclient 的版本都是 3.23.*。我试了一下,都无法连接 MySQL 5 的数据库。

无论如何都不行,我郁闷了。只有上 Google,嗬,还真有找到东东。一个叫 Kelly Martin 的人在 MySQL 的官方站点上报告了一条信息,说 MySQL for OpenBSD 3.8 的版本,别的都没有问题,就是和 PHP 4 / 5 编译的时候就会出错。他的帖子链接如下:

http://dev.mysql.com/doc/refman/5.0/en/openbsd.html(链接已失效)

按照他提供的办法。我从 MySQL 官方站点上下载了源代码分发版(5.0.19),根据他指定的参数进行了编译,然后安装 MySQL。果然,这次编译 PHP 不会出现问题了。phpinfo() 的信息也显示,mysqlclient 已经更新为 5.0.19 的版本。

然后,正式调整 httpd.conf 的内容。编辑主机名;修改 DocumentRoot;调整目录权限,把 Index 权限去掉;添加默认首页面文件名;调整编码字符集;至于 AddType application/x-httpd-php .php 那是早就做了。调整完后,重启 Apache,总算!大功告成!

OpenBSD研究手记(三)

装完 Apache,接下来应该是安装 MySQL 了。

若换在 Win32 系统上,应该是先装 PHP 比较合理。但在 Linux / Unix 系统上,这个顺序应该倒过来才对。因为在 Linux / Unix 下安装 PHP 是用编译的,而不是像 Win32 下面那样通过 extension 来进行扩展。而若编译时使用 PHP 自己带的 MySQL Client 库,那么生成的 PHP 引擎不能访问高版本(5.0.* 以上)的 MySQL 服务器。所以一定要先安装 MySQL,再编译 PHP,这样才能正常使用它们。

为了使用一些新特性……,其实,也是为了追新,我下载了 MySQL 5.0.19 的 for OpenBSD 3.8 的版本。和 MySQL 的许多版本一样,这是一个二进制代码分发版本。既然是特意为 OpenBSD 3.8 特意制作的版本,那我就受用啦。解压,安装,一切还算顺利。不过在安装和运行的时候,都出现了一些 warning 信息,说某些 so 库的版本不够,但是仍然「use it anyway」。既然它这么说,那我也就不管了。

一切都按照安装包内的指导进行。大致过程如下:

  1. tar -zxf 文件到 /usr/local,然后做一个 ln -s 到 /usr/local/mysql
  2. groupadd mysql,建一个组。这是按安装指南中的要求
  3. useradd -m -g mysql mysql

    建用户的时候,按照安装指南中的步骤是有问题的。useradd -g mysql mysql 会提示 /home/mysql 目录不存在。在 RedHat Linux 里面,新建用户时会自动创建它的个人目录的,但 OpenBSD 3.8 至少是不会。出错提示指出,要加一个 -m 参数。这参数还不能加在后面,一定要写成 useradd -m -g mysql mysql 才行,由此可见 OpenBSD 的外部命令对参数的顺序也是有讲究的。而且这个参数我在 man 里面没有找到。不知是因为这个特性是新近加上的还是一个疏漏?要人命的疏漏啊。

  4. 运行那个 mysql_install_db。安装脚本嘛,但一定要带上 --user=mysql,这样才有正确的权限。
  5. 设置权限。按照安装指南上的步骤,其实质就是要让 /usr/local/mysql 的用户归 root,组归 mysql,然后 /usr/local/mysql/data 的用户归 mysql,当然都是递归的。
  6. 手动启动的命令。mysqld_safe,还是要加 --user=mysql,而且还要用 & 来运行。土啊。不过也习惯了。
  7. 设置自动启动。这步我没做,因为我对于 OpenBSD 的自动启动部分还不太熟悉。

然后的步骤,是各种平台下面都要做的。首先把 'root'@'localhost' 和 'root'@'主机名' 的 MySQL 用户密码改掉。然后 Create Database,再 Grant 创建新用户。再做测试,就略过不提了。

OpenBSD研究手记(二)

本来应该更早一些写下这篇文章的,无奈因为自己整备电脑的事情打断了。到目前为止,研究的目的已经基本达到,所以把研究手记整理出来,以供有需要的人士借鉴。

安装 OpenBSD 现在已经是轻车熟路了。我还尝试安装了一台带 X Windows 的工作站,全选了所有可选包,结果大小也才三四百个 MB。不过那 X Windows 的画面可真是惨不忍睹,大概是因为虚拟机没有显卡驱动的缘故吧?

下一步,是安装 Apache。OpenBSD 的默认安装就已经有了 Apache,不过是一个 1.3.* 的版本(具体版本我忘了看)。我想要的是 Apache 2.0.* 的版本,因此也得下载源代码分发版本自己编译了。

最新的 Apache2 的版本是 2.0.55。第一次编译折腾了很久。记得在 RedHat Linux 上编译 Apache2 的时候相当顺利,但在 OpenBSD 上就遇到了不少的问题。可惜具体的错误信息我现在忘了,当时也没有记录下来。不过我总算是找到了可以顺利编译的配置信息:

  ./configure --prefix=/usr/local/apache2 --enable-so --enable-ssl --with-ssl
  --enable-rewrite

加上 --with-ssl 的选项,是因为 OpenBSD 有默认安装 OpenSSL ,这样就不用白不用了。至于 --enable-ssl,似乎不一定是一个有效的参数,不过还是加上算了。

编译完成之后,make install,然后测试网页,一切 OK,通过。修改 httpd.conf 就等到 PHP 安装完成之后再来吧,反正装完 PHP 是一定要改它的。不过这些操作在我的那虚拟机上跑了非常久的时间。大概和我对硬盘分区勾上了「压缩」选项有关系吧。按道理,压缩格式的分区应该会占用大量的 CPU 时间,并且会造成 I/O 性能急剧下降的。不过没办法啊,空间紧张,只有拿时间换空间。

2006-03-22

电脑整备手记(四)

早上起来,头比昨天还痛。大概昨天下午去客户那边的时候,晕车加感冒。这天气也真是的,阴晴不定,真是容易让人生病。

并不是不能去上班,但是实在是不想了。家里电脑还坏着,念头一闪,干脆,就请上半天假,休息一下,也趁着这时间让商家来把电脑修好。九点的时候,估计电子城那边应该已经上班了,于是翻身下床,去找保修卡。接电话的 MM 好半天才想起我来,真是失败。最后约好上午派人过来。由于我自信已经把故障定位清楚了,所以很明确地要求他们带上一个新电源过来。

下床吃早餐,突然担心起来,该不会这电脑今天就发「人来疯」,不出毛病了吧?忙打开电脑,拍桌子,坏了,还真给猜中了。今天这鬼电脑无论怎么拍怎么打,都不重启了。气的我那个鼻子里面冒血!

还好有时间,来回折腾了好久,开关过无数次以后,它总算又进入昨天的状态了。当着那位技术员的面,我拍一下桌子就重启一下,再拍再来。他无言地默默换掉了电源。我提了提电源,从重量来看,不愧是烂货。电源换好之后,我重新开机。进系统之后蓝屏。看来多次重启把系统搞坏了。放入系统盘,尝试修复,还行,看来还没有坏得很厉害。大拍了一通桌子,没有出现重启现象。看来我故障还是判断得相当准确的。

昨天晚上,成功地把 ADSL 改成了桥接模式,并用上周刚买的宽带路由器替换掉了以前用 ADSL Modem 作的路由。对外网只开放 pcAnywhere 端口和 eMule、BitComet 所需的端口。呵呵,服务器我是不用它做的,那样太冒险了。我把前几天调试好的 OpenBSD 虚拟机转移到了新电脑上,配了一块桥接网卡,然后把 DMZ 指向了它。这样,在外界看来,就是一台 OpenBSD 的服务器暴露在外网,然而我却只开了 80、3306 和 SSH 端口。要攻击就攻击好了,我一来有信心,二来也满不在乎,反正有备份在。

来到公司,用 SSH 连 OpenBSD 虚拟服务器,没有问题。打开 pcAnywhere,从公司和家里开两个 QQ 给朋友传文件,心情特别好。哈哈……!

2006-03-21

郁闷的上午

昨天在辞职同事的饯行宴上,喝了不少酒。虽然没有吐,但早上起来时,头还是有点痛。昨天晚上又被蚊子骚扰,半夜爬起来启封电蚊香。窗外的天又阴沉沉的,下着小雨,真见鬼!闹钟响过之后,犹豫着要不要请假,最终还是决定去上班。

到了,公司,想起今天有火箭的比赛。正好昨天因为要赴宴,手上的活还没收尾,于是把原本上午约好的客户推到了下午。可惜,在主场还是输了。姚明拿到 25/17/2/1,Howard 和 Head 也各有 20+ 的进帐,可还是输了。对方多一个马盖蒂就多 20 分,火箭却少一个 T-Mac……

郁闷!算了,算了,下午去客户那边。还好不用背电脑过去。

2006-03-20

电脑整备手记(三)

果然,还是电源的问题。

刚回家,插上笔记本,那边台式机上啪地一声,又重启了。这样子没法用的,而且也显然不是瞬间停电的问题了,甚至连电压不稳的问题也排除了。几盏灯都亮着,连眨都没有眨过一下。

我又开始活动电源线插头,但是没有发现接触不良的情况。还是和早上一样,怎么摇都不会重启。然后我把排插也换了一个经过考验,质量绝对过硬的产品,过了一会还是重启了。气得我往桌上一拍,没想到它又重启了。

呵呵,这电脑的毛病啊,怕就怕故障不能再现。要是你能找到几乎每回都可以很有把握地让故障出现的方法,那要和商家交涉起来也就简单多了。我怎么就没想到呢?接触不良的问题,是最怕震动的。

多试验了几次,果然,只要有稍微大一点的震动,立马重启。哪怕是我往桌子丢一本书,也会导致重启。这显然已经不是正常的情况了。唉,没想到会遇到这种问题,真讨厌,明天打电话骂商家去。

电脑整备手记(二)

早上起来,迷迷糊糊地打开显示器。靠,怎么变回 640×480×16 的画面了?而且……,机器好像被重启了。真郁闷,看来又有什么地方不对劲了。

边煮牛奶,边看到底是哪里不对劲。驱动好像没有问题,设备管理器里面也显示正常。重启……,可能是瞬间停电吧,记得以前也来过一次,还好笔记本有电池扛得住。想想,可能是 pcAnywhere 的问题。我以前有遇到过 pcAnywhere 和显卡驱动冲突的情况。那次是一进系统自己蓝屏重启,看都看不清,最后只好用 DV 拍下蓝屏过程然后放大了去分析,才找到原因。这次还好,起码能进系统。先看看 pcAnywhere,把显示系统子设置为「兼容性」,重启。OK,不是绿底色而是蓝底色,总算正常了。

站起身准备去洗脸,啪地一声,机器关机重启了。那声音就像是插头接触不良时的打火声,而且确实也是从电源线和机箱电源的插接处传来,我自然就怀疑到它身上了。捏住它摇摇,靠,又来了。我索性拔下来,看看,没有什么大问题啊,再插上。正要走开,又是一下。晕,说不定昨天晚上就是这样搞一下给重启掉的。可我这次怎么摇,它都不重启了,真是怪事。也罢,那根电源线看起来就像不是好货,今天从公司拔一根回去试试看好了。或者也许是那「赠送」的插线板的问题,大不了自己去买一个质量好的。

边吃早饭,边设置 ADSL 的路由。把以前的虚拟服务器(端口映射)都删了,然后配了 5631 和 5632 端口到外面。配置好 pcAnywhere 的被控端,telnet 了一下,似乎不行。心里没底,不知道是不能这样子测试呢,还是配置上的确有什么问题。干脆,索性把它设在 DMZ 区。记下 WAN 端口的 IP,赶紧上班去。

到了公司,接好笔记本之后,第一件事情就是 telnet 测试连通性。还好,外网 IP 还没有变。马上配置 pcAnywhere 连接,然后把自己的 IP 自动报告程序传上去,安装成服务自动运行。等了 5 分钟,刷新一下网页,OK,IP 上来了,这样就放心啦。孩子不会丢了。

用 pcAnywhere 传文件的同时,让远程主机继续打补丁。微软的东西真罗嗦,一个接一个,重启了四、五次才罢手。最后,装完 WMP9 之后,装上了超级兔子。然后就把最大的一个文件目录整个传过去,心想要传完可能到下午了。

午饭的时候,掏出手机看电子书。看到一本《30 天红客快速指南》,笑了笑,突然想起一件事情,冷汗直冒!XX 的 M$,没事干在默认安装中开那么多洞干什么啊?!我突然想起我默认 IPC 还没关,就这样把它丢在 DMZ 这么久,自己跑出来吃饭?!吃完汉堡,抓一把薯条往嘴里一塞,赶紧跑回公司。

还好,似乎还没有被人找到。看了看「启动」目录,没有人丢东西里面。赶紧启动超级兔子进行设置,然后 regedit 手动进去看了看,除了一个名称叫persistence的ifgxpers.exe有些可疑之外,别的都没有什么问题。赶快重启。

然后去 Google 上查了查 persistence,查不出什么名堂。再查 ifgxpers.exe,这一查不要紧,心悬起来了。有人报告说有灰鸽病毒的 bin 文件叫这个名字的。没那么倒霉吧?去 system32 下面瞄了瞄,有一堆的 ifgx*.exe / dll 躺在那里。看看创建时间,是昨天晚上九点多的。那个时候还在 NAT 里面,心放了一半。再去国外网站找了找,有人说它是 Intel 的显卡的 UI 要用到的进程。我看看文件的属性,那种 ifgx*.exe / dll 的倒还都是 Intel 出品的。想想一个病毒没必要造那么多文件名相似的副本吧?OK,仅仅把它从启动列表中除去就行了。

电脑整备手记(一)

昨天晚上七点多才把电脑运回家。开箱、搬运、接线、腾挪、收拾、打扫,折腾完已经快八点了。结果因为RF线不够长度,电脑桌还是没有用上,新的电脑最后还是只有放在写字台上使用。还好买的是液晶显示屏,否则可真是放不下了。

赶紧叫了份外卖,回过头来把 2000 的安装盘塞进去,赶紧开始安装系统。电脑城安装的 Windows XP SP2 怎么能用呢?我肯定是要用 2000 的。不过,XX 的,春节期间在家装机时,大概把 Windows 2000 Pro 的安装盘丢在家里了,情急之下,也只有找来节前下载的一张可能是别人制作的六合一装机碟开始安装。

刚开始格式化系统,门铃响了。诧异地打开门,送饭的小妹解释道,今天店里人比较少,所以会快一些。也行,正好趁装系统的时候,扒两口饭。

估摸着该装得差不多了,过去一看,差点没吐血!那张装机碟居然自己有写一个安装脚本在运行。我过去看的时候,刚好在装什么 WMP9、DX9 之类的东东。见鬼,谁要它装?这下我不敢用这个系统了。谁知道它会不会顺便装个木马在里面?手头只有一张 Windows 2000 ADV Server 的盘了,只有拿它安装了。其它 Windows 2000 的碟都是英文版的,我这要做工作站的机器可没有办法不用中文版。

重新开始的一次安装,趁这段时间把饭吃完,把地给扫干净。正好扫完的时候,系统也装完了。于是开始装INF驱动,然后是显卡驱动、声卡驱动……。电视卡驱动,东找西找找不到,忽然想起盒子已经塞床底了,赶紧翻出来,果然在里面。装上之后,把台搜出来,玩玩 APP 的同时,趁机放松放松。刚好是意甲国米对拉齐奥下半场,录到了两个进球。这个电视卡的定时录像功能比我家里的要强,画质如果调到最高档也算可以。但可以调整的设置比较少,比如 AVI 的编码器就不能自己选,画面也只能以 Overlay 的方式播放,——这下我就没法从公司连过来看电视(幻灯)了。

不过很奇怪的是,这块电视卡居然可以收到 FM 的信号。无意中,收听到一个女人和一个男人在大声说着什么。口音很重,仔细听了听,听出来了,居然是卖 YJ 增大药的。我 X,一个媒子一个冒牌医生,把这个话题还说得蛮像学术研究的,争论得还挺激烈。这都是些什么仙人啊?

等等,怎么声音不对,一边有一边没有。我还以为是我的耳朵出了什么问题。我耳朵洞一边大一边小这有可能,但一边听得见一边听不见这绝对不可能。心一沉,糟了,难道声卡有问题?把耳机插了几次,又换在笔记本上试了一下,确认耳机没有问题。突然想到,这机箱有前置 Speaker Out 和 Mic 插孔,该不会装机的小弟在接线时出了什么差错吧?试着插前面的插孔,果然,有立体声了。现在的机箱还真是多事,谁希罕它插前面啊?

时间不早了。于是开了 Windows Update 让它自己慢慢地拖,顺便把 pcAnywhere 装了,不重启。等明天早上把它重启一下,ADSL 上设一下,明天到公司去远程安装别的东东。

2006-03-19

电脑出故障了

中午正和别人聊着天,聊着聊着就觉得不对劲了。怎么 CPU 占用率老这么高啊?把 VMWare 停了,SecureCRT 关了,IE 也都关掉,可还是很高。就只剩两个 QQ 窗口而已。我一看 CPU 频率,真讨厌,又降频了。

以前就会遇到,在温度过高的时候,系统自动降频了。一般是在玩游戏的时候,虽然讨厌,但我可以理解。不过今天才七十几度啊?为了快点恢复正常速度,我把机器关了,休息了一会儿。摸摸温度可以了,又打开。

坏了,这次我知道我遇上麻烦了。温度才五十几度,可 CPU 还是在低频下运行。这下可好,还真「落伍」了。估计就不是温度带来的问题了。我把笔记本抱进冰箱,冰了十来分钟,故障依旧。

和家人商量了一下,就决定去买台台式机。趁着时间尚早,直奔电脑城。取钱,然后找了一家代理优派的店就钻了进去。要节约时间啊,已经四点多了……

其他人都在忙,因此接待我的 MM 是坐在财务座位的那位,这让我一下想到了一位网友。所以接下来我就不拐弯抹角了,直接报配置。大概一听我就是懂行的,MM 也没糊弄我。不过问到光驱的时候,她还是神神秘秘地表示,「明基光驱用起来不怎么好」。我有点想告诉她,我用过三部明基的光存储设备了。不过她推荐的是 LiTeon,在它叫源兴的时候,我也用过两部,所以也就同意了。

这次还顺便加了块电视卡。以取代房东提供的那台破旧的电视。还可以录像,呵呵……

2006-03-17

性骚扰!又是性骚扰!!

晚上看电视,看到阿丘的节目,讲职业场所性骚扰。又想到围绕着「她」前前后后发生的事情,空前地烦!没过多久,又因为这个事情和网友吵翻。一气之下,进黑名单。拖的时候真是很悲愤!算了,缘分已尽,相见不如怀念。两次黑名单,都是和他妈的性骚扰有关。狗日的这种男人以后最好不要犯在老子手上!现在我知道的这些家伙,以后不会让他们有好下场!!!

虽然狗屎法律制裁不了他们,总有东西可以。

2006-03-14

OpenBSD研究手记(一)

是从那部黑客小说中看到的 OpenBSD 这个操作系统,并从此得到了它是一个非常安全的系统的感觉(事实也是如此)。后来在那波大肆下载各种软件的时期,我也找到了 OpenBSD 的最新 3.8 版的安装盘。当时用 VMWare 建了个虚拟机大致安装了一下,由于硬盘空间不够很快就删了。昨天开始,决定研究一下它,作为这段时间的业余爱好。

一切都得重头来。不过,安装不会有什么问题。尽管 OpenBSD 只提供了文本方式的安装界面,并且还是命令行式的。但在它的官方网站上,有一篇非常详尽的安装指导。虽然是英文的,但是由于配了例子,好像还有截图,照瓢画葫芦也能把系统装完。我第一次安装的时候,就是完全按照它上面的步骤完成的。

不过,当时也遇到了一些问题。因为我硬盘空间相当紧张,只给虚拟机划分了一个大小为 1G 的虚拟硬盘。在分配 disklabel 的时候,就捉襟见肘了。安装指导上的例子是以 20G 的硬盘为例的,而我不知道各个 mount point 下的空间在安装后到底会消耗多少,所以只好根据经验随意设了一下。后来在安装的时候果然有遇到 /usr 目录空间不够的问题。这一次,我打算把所有目录的空间都统一在一个 disklabel 下面,免得再遇到这些多余的麻烦。

因此,昨天当我在分配 disklabel 的时候,d a 之后,先直接 a b 建立 swap 分区。硬盘这次还是只有 1G,因此只分了 100M 给 swap 分区。剩下的都用在 a a 上,mount point 设为 /。这样它下面的所有目录,无论 /home、/usr 还是 /var,都统统使用它的空间了。我知道若是在真的服务器上这样做是有负面效果的,不过现在空间不够,也只有凑合了。

这些工作都是昨天晚上完成的。今天的计划是将网络设置好,并安装 Apache + PHP + MySQL。我会去研究 OpenBSD,有一部分原因是想把公司以后的 Web 服务器用它来架设。众所周知 Web 服务一直是网络安全的一个薄弱环节,为此我希望有一个自己把握得住的、小巧、安全可靠的系统。安全性要好,功能不需要多,能提供必要的服务就行,而且最好能自己定制。我想 OpenBSD 也许是不错的选择。RedHat Linux 虽然用得很多,但系统发展到现在已经很庞大了,不一定好使。

可惜,早上一来就在网络设置上遇到问题。OpenBSD 和 RedHat Linux 在设置上有不少区别。尽管都有 /etc 目录,可那下面的文件就基本上没几个相同的。当然,这并不是问题,查查资料就可以搞定。但是,在 NAT 设置上我遇到难题了。

我昨天在家里安装的时候,关于虚拟机的网卡,我随便设了一个 Bridge 模式。这当然是最方便也是最简单的设置方式了。不过到了公司就不能这样用了。虽然公司的 IP 也是我在管,但为一个自己研究用的虚拟机就占用一个实际IP也不是很厚道。我决定把它改为 NAT 模式。

然而,遇到了奇怪的事情。当我把 OpenBSD 的 IP、网关、DNS 统统改掉之后,刚开始,在虚拟机上操作起来似乎一切 OK。内外能通,DNS 也能解析。然而,当我试图从本机上 SSH 过去的时候,无法连接。再从本机上尝试 ping,也不行。

正在我为内网工作站没问题,但网关不通工作站而奇怪的时候。过了一会会,SSH 又能连接了。我还没高兴多久,却发现这台 OpenBSD 不能通外网了,就像没有 NAT 一样。再 ping 网关的 ip 地址,却又是通的。反复重启了几次,还是这样的现象,似乎和时间还有一点关系。

郁闷中,发现有个现象。似乎有时候在 OpenBSD 上 route show 的时候,本机上会有网络地址冲突的警告提示。查看日志发现,那块网卡的 MAC 地址从来没有见过。既不是 NAT 型虚拟网卡的地址,也不是 OpenBSD 上的网卡的地址,不是任何一块已知网卡的 MAC 地址。过了一会,我注意到,刚开始的时候,在 OpenBSD 上 route show 的时候,从网关 IP 出发的路由是指向这个未知的 MAC 地址。此时内外网就是通的,但本机不通内网 OpenBSD。而过一会之后,等本机能连接内网 OpenBSD 时,再 route show,就发现那条路由的 MAC 地址变成了 NAT 型虚拟网卡的 MAC 地址,是一个已知的 MAC 地址了。

这让我隐约有点感觉。似乎有两块网卡。一块是我已知的,可以连到内网 OpenBSD,但无法担任网关的工作。另一块可以做网关,做得很好,但是不能让本机连接内网 OpenBSD,因此它不是一块本机上已知的网卡。

上午火箭又输球了,办公室内又有一个串门的 MM 大声地恬噪,搞得我头晕脑胀。中午去麦当劳理了理思路,很快就发现了问题所在。那块不存在的网卡肯定是 VMWare 虚拟出来的,而且甚至都不属于虚拟网卡,只是一个影像而已。它只存在于 VMWare 的世界,只有虚拟机们才能感知到它的存在。而它的 IP 地址,就是 VMWare 的 NAT 网关的 IP 地址。我自作主张把它设成了和虚拟网卡一样的 IP,于是两者在 VMWare 内就冲突了。互相抢IP地址,所以一会可以通一会不行。

回来之后,把 NAT 网关的地址改成另一个,配置 OpenBSD,然后重启,终于,一切正常了。

其实,这不算是对 OpenBSD 的研究,应该算是对 VMWare 的研究吧?

2006-03-10

莫名其妙,又梦见她了

真的是莫名其妙。在梦中,好像我约好和她一起逛公园。在门口等啊等,终于等到了她。然后我搂着她的肩(——她又长胖了),一起逛公园。

还清晰地记得我们看到一座很大的石头做的大象。大概是普通大象的三、四倍,反正鼻子上面都是可以稳稳当当地站人的。人们坐在大象的背上晒太阳,聊天。

然后她讲了一个黄色笑话。汗……。玩笑似的追打中,她突然摔倒了,好像是胸部还受了伤。我把她往医疗处抱,好重啊!

2006-03-05

无心插柳

傍晚去逛街,本来是想去买双鞋。一周以前已经看好了,却因为那周并没有这个预算而压了下来。安踏的气垫鞋,虽然没有 NIKE 的全掌气垫的减震效果好,不过我还是觉得,无论鞋型、花色还是气垫本身都让我满意。

来到店里,傻眼了,它没有了。大概是卖完了吧?我又记不得型号,所以无法向店员描述了。虽然觉得另有几款也还可以,但抱着「穿上不出彩,干脆不要买」的原则,最后还是空着手走了出来。

无聊之中,逛到一楼,POLO 在降价大甩卖。并不抱希望地进去翻了翻,居然发现自己中意的衬衫。春节回重庆时就想买了,却一直没有找到合适的,没想到在这里发现。价格也不贵,49,做工也还不错,于是解决了这拖了很久的事情。

想来,又是缘分在作怪了……

2006-03-01

无情的女人

几天前,和她在 QQ 上联系上了。
本来我是永远都不会和她通过网络的方式去联系的。无奈她主动提出来了。大概是上班太无聊了吧。

前天,和她之间似乎红了脸。
她又惹了麻烦,真是是非人一个。可我的告诫她认为是在嘲笑。我火了!

昨天,音信杳无……

今天,撕破脸了。起码我是。
她居然对我说什么,要死也要拉一个垫背的。我可是真火了。这种无情的女人,我还对她指望什么?值得么?

「我不会陪你死的,你放心。」
「那我就一个人独自去死好了!」
「悉听尊便,爱干啥干啥,不会管你了。」

她还在说,好的,我已经把她的头像往黑名单里面拖了。然后就是删手机通讯录,删 WinPIM 名片簿。她到底把我当什么?死了垫背的?我为她担心为她难过,她有为我过吗?为这种女人浪费这么多青春,真是不值得!

「要去死就去死吧!」我真想这样大声地对她吼。她所谓的「死」,无非是掉进某个男人设下的圈套里——那是她自己的说法。就算是,也是她自愿踩下去的。做个二奶,当个情妇,被包一包,也挺好。人有得爽,钱也有得拿。拿青春与肉体或许还有灵魂换点现大洋,回重庆炒炒「第一产业」房地产,这打算也挺不错的。我 XX 想要这样还没这资格呢!

看过一个拿北京方言演绎的笑话,以前觉得蛮搞笑,现在回想起来,男人的那根鱼竿,还 XX 真是愿者上钩。

夜晚 VS 白天

按道理,每天下班之后,就是自己的时间了。爱做啥做啥。当然,自己的日常生活,诸如家务、购物、娱乐、休息之类,也就应该在这个时候予以安排。然而,我已经许久没有心思在夜晚行动了。

并不全怪天气。固然,二月里的小雨,淅淅沥沥地一直下个不停。但没有下雨的夜晚,我也懒洋洋地呆在电脑前,或看碟,或听歌,或游戏,或聊天。哪怕是没有带电脑回家的夜晚,我宁愿举着手机看小说,也不愿意做别的事情,——即使水槽里的碗筷堆了已有两个星期。

是时间不够吗?我这样地问自己。没错,白天是够忙的。我曾经把自己晚上的「无为」,归结为白天的工作耗费了太多的精力。然而,即使我刚一下班就往家里跑,结局还是如此。是我懒吗?那是我本来就这么懒,还是这两周突然变懒了?

今天出外公干,事情完成得比预想的要顺利,因此顺道回了一趟家。手脚麻利地做完了以前堆积的许多件事情,时间只用了不到一个小时。我都想骂自己贱。

天气不算好,连绵多日的雨天之后,总算止住了水滴。天空却还是阴沉沉的,没有一线阳光射穿。然而,仅仅是这种毫无生气的光明,就让我有了行动的决心。怪不得世界各地的人们,不论文化、语言、信仰有何差异,但均认为光明代表正义,而黑暗代表邪恶。

看来,我也是很感性的动物。