[OGame]太电还是核电?

OGame我算是玩得比较早的人了,tw u2出的时候就进去了,还是在1银河,现在cn服都出了很多了,我却很懒,一直趴在tw u2种地,中间还有近乎一年没上过,居然没被删号也没人打,倒是自己想起来再进去,发现堆了一大堆资源,开始转运的时候被发现了。。。这些烂事就不说了,言归正传吧。

我走的是超级堡垒路线,专注于发展主星(这样省事嘛),其它的星星都是太太往这边拉货,星上什么都不留,包括防御。主星位置是5,缺点就是太小(已经升了5级地形改造器了):

直徑  12.800 公里 (  182  / 188  方圓 )
氣溫  大約 27°C 到 67 °C

现在已经是发展的后后期(满天的死星飘啊飘)了,每一个方圆都很重要,所以,我面临着选择太电还是核电的问题。

一般来说,大家都倾向于选择太电,原因很简单,核电费重氢,太电什么都不费,并且到出引力科技的时候什么电都不够,要用一大堆太阳能卫星来补充能量(我就放了8188颗),有了这些卫星,反倒什么电厂都不用了。所以一般的讨论中,核电都是造几级就停止的。

但现在是后后期,情况就有所不同了,首先太卫随时都有可能被打掉,到那时资源也没有电也没有,就等死了,所以不能单纯依赖太卫。

再来比较一下太电和核电,官方给出了核电产能的计算公示:

30 * [核電廠等級] * (1,05 + [能量科技等級] * 0,01) ^ [核電廠等級]

那么按照我能量技术12级来计算,15级核电产能4738.50,20级核电产能13860.00,24级核电产能31168.80。

太电产能和位置有关,我是5号星,现在24级的太电,产能4727,只相当于15级核电的产能,相差9个方圆;即使是升级到了32级,也只和20级核电产能相当,而方圆相差也到了12个。

再来看核电的消耗,现在的6级核电消耗重氢107,而我26级重氢分离器产能是3550,这还是在5号温暖的星球上,这样看来,核电的消耗是非常少,能够省出来方圆,多升一级重氢分离器,就够升几级核电用的了。

所以,出于方圆的考虑,我决定废掉太电,专门升核电,省下方圆种田,嘿嘿。

另:发现另外一款游戏特洛伊,也是仿Travian的,感觉不错,已经注册,重新开始种地中。

侠盗猎车·圣安得列斯 on Cedega

忙得要发疯,赶紧找个游戏发泄一下,于是,用mldonkey抓了个我的最爱,侠盗猎车·圣安得列斯,幸运的是,虽然Vice City无法在Cedega下模拟,San Andreas却表现良好。不浪费大家的时间,安装(可以用wine)之后,cedega如下配置就可以了(最近不愿贴图,文字描述好了):

General设置

  • Winver: winxp,用win98也行
  • Engine Version: 6.0.2,我只装了这个
  • XVidMode: on
  • DXGrab: off,这个即使关掉了,鼠标也跑不出gta窗口,不过用Alt+Tab可以切换出来,但鼠标一跑到gta窗口(哪怕窗口并非聚焦)就又被抓回去了。
  • Managed: on
  • Mozilla Control: on
  • Scheduler: Default
  • Use Pthreads: default
  • Desktop: 1024×768(这个选no的话就是全屏运行了)
  • Path to Browser: (empty)
  • FreeType and XRender: on
  • Activate TransGaming HUD: off

Graphics设置

  • Video RAM(MB): Default
  • AGP Vertex Data(MB): Default
  • Pixel Shaders: off
  • Vertex Shaders: on, 2.0
  • NV_VAR Extension: on
  • ARB_VBO Extension: on
  • Dynamic VBO: off
  • Index VBO: off
  • Fixed Program: Auto
  • Fragment Offset: Auto
  • Non Power of Two Textures: Auto
  • Clip Space Fix: on
  • Anisotropic Filtering: on
  • Framebuffer Objects: on
  • Float Textures: on
  • GL Shading Language: on
  • Occlusion Queries: off

我的显卡是ATI X600,人物都是白影,把Occlusion QueriesPixel Shaders选项去掉,贴图就正常了。左下角的地图和右上角的状态经常会呈现反白状态,把Framebuffer ObjectsFloat Textures都选上,就ok了。

我下的这个版本有一点缺陷,开始新游戏的时候,骑自行车到自己家,然后进屋再出屋,和胖子开车走,进行到sweet & kendl动画的时候,就死住不往下进行了,只能在cedega中结束。载入别人的全开存档都比较正常。好在我还保存有2005年的存档,可以继续玩,只是怕前面干了啥了都不记得了。说起来,我下载这个游戏的时候,确实还没回忆清楚自己到底玩没玩过呢,呵呵。

所以麻烦哪位路过的神仙提供一份刚刚开始的、“干净”的存档给我啊?

如果嫌这个比较大的话,Gta2现在已经免费了,可以自行下载安装,在wine下能玩,用cedega反倒不行。这个不如圣安得列斯模拟得好,经常只有屏幕下半截有图像(另外一半在显示器外),由于是用wine模拟的,异常关闭后桌面的分辨率就乱套了,最讨厌的是游戏本身,不仅开枪没法瞄准,存盘还要花5万大洋,额滴神哪~~,不过无聊的时候还是可以打发些时间的。

Update @ 2008-01-13

我在家里用P4 1.4G的cpu,512M内存,GeForce2 GTS显卡,开800×600分辨率,low效果,基本流畅,刮风下雨天有些跳帧,玩最后一个任务时,Big Smoke的毒品工厂里的雾化效果让我很头疼,再后面追消防车由于有一些爆炸效果也显得有些卡,追了3、4遍完成任务后,没想到游戏就此剧终了。原来2005年的时候我就遗留下了一个任务啊,呵呵。

片尾字幕过后还可以继续玩,目前正在抢地盘中,发现用摩托车带个小弟边开枪边撞人效果不错 :)。

真正的“AI”,是不是可以这样?

看到Cat ChenS.T.A.L.K.E.R中胡侃这个游戏的AI如何优秀,不禁产生了一种念头,一种新的AI实现思路。

AI就是人工智能,通俗一点说就是控制游戏中NPC如何行动的指令,简单的AI很容易公式化,比如反恐精英cs中的bot,基本上都是按照脚本的规定来行动,更复杂和高级的AI会加入思考、互动的因素,也就更“聪明”一些。

AI往高了说,属于计算机科学的尖端领域,但往简单了说,只不过是科学家设计好公式,利用计算机运算速度快的优势来模拟的思考过程罢了,高深也就高深在了公式/算法和了,计算机只是一个跑得比较快,会先飞的笨鸟罢了。但在很多时候,AI还无法达到普通人的程度,这也就是我的念头了,能否在游戏中,用玩家行为来作为AI,或者为AI提供数据呢?

假想一个游戏,分为两个阵营,拉据战的格局,苏、德双方展开坦克大战,攻夺据点。把游戏分为两个服务器,苏服和德服,苏服上的玩家都是苏军,敌人是AI,不过这个AI就是德服上扮演德军的玩家。这样,以往的NPC就不会再笨呼呼的了,而是“像”真实的玩家一样战斗,甚至血少的时候也会偷懒等等。

最关键的,就是要体现不同于单机游戏的,真实的模拟另一个服务器上玩家的行为模式,同时还要和玩家之间对战区分开来。比如坦克的配置是copy玩家数据,而作为AI的坦克被打爆了玩家可不会掉经验等等。能够把这两点都体现出来,现在的游戏好像还没有。

还想到一个更远一点的例子,在mmorpg中打怪的时候,怪物一般都形成规律了,在什么地方、有什么招数,怎么配置队伍就能打倒它,甚至捡到相同的宝贝。。。这样不腻么?为高级玩家开通变身为怪的功能吧。呼呼,别人组队再来打toj的时候,怎么怪物变了?以前都呆着不动的,今天满大街溜达,也不发招。。。如此这般,也等于是在这段时期内用人的智慧让npc更加完善了,如果聪明的玩家还会在变身为怪物的时候,模拟真实怪物的以为,诱骗其它玩家上钩的话就更加有趣了。

想法扯完了,写完再想实现起来还是有些难度的,不过算是一个思路吧,不要一味钻进如何完善npc自身“功能”的死胡同,引入玩家的隐式互动。关于那个苏德坦克大战的游戏,以前倒还真是玩过(直接玩家对抗的),不过好像网站上不去了,http://www.blitz1941.com/,我这里也仅存三张截图,还算有一定代表性,一起怀念一下吧:


Go to ImageShack® to Create your own Slideshow

游戏里没有什么?

现在的游戏作的真好,几乎什么样的都有,几乎适合任何年纪的都有,但是,游戏和现实还是有不少的差距,那么,有哪些东西是在游戏中没有的呢?

生老病死,酸甜苦辣

没错,游戏中的生,就是你注册了个新账号,一贫如洗,赤手空拳;随着游戏时间的增加,年龄也会增长,甚至会变老、老死;也会中毒或生病,不过有药水或者疗伤大夫、术士;死亡,在游戏中可以是永久的,也可能只是损失一些 金钱或者经验。但是,在游戏中你能体会到自己在父母怀中咿哑学语的滋味么?能体验到老得只能喝粥的滋味了?能体会到糖尿病脑血栓的病痛么?死亡了,就无法开始新游戏或者注册新人物,有这样的游戏么?在游戏中你可以一天之内经历人一生之中会遇到的事情,但却无法感受需要你一生来经历的真实。

发明创造的乐趣

以前的游戏如轩辕剑可以炼妖,现在的游戏很多也可以合成装备,但这些不叫发明创造,充其量只是“发现”了游戏中的某个功能而已,所以不用沾沾自喜,当你成为全世界第一个合成某套装备的人的时候,殊不知这些功能早就是程序员测试过千百遍的了,都是在游戏策划方案中讨论过N次的。真正的发明创造是从无到有的,而不是一直藏在什么地方等着你挖出来而已。现在的科技,恐怕还无法在游戏中模拟真正的发明创造,否则大家不用建研究院了,都去打游戏得了。

人生的无奈,无法回头的选择,错误的代价

英文的game翻译成中文叫游戏,没有用读音直译,而是直接选用了中文中含义最接近的词语,真的是太合适了。小孩子也作“游戏”过家家,大人们也会玩“杀人游戏”,游戏的本质就是虚拟,虚拟就是虚假,既然是虚假就可以从头来过,所以在游戏中你可以载入,也可以复活再去杀那把你干掉的怪物,但在人生中,有太多无奈的事情了,比如近视眼在无法手术治疗之前只能一辈子戴眼镜(已经比眼镜出现之前年代的人好多了),你也无法选择你的父母,在你作错任何事的一刹那,时间已经流逝,错误已成历史,你想重新注册一个不近视的“用户”,想重新投胎到另外一片大陆,想载入进度回到错误之前,都是不可能的。

法律的制裁

说游戏中没有法律也许并不完全,游戏中不仅有规则、gm,也有会执法的npc,甚至会有玩家公会的公约,但是,我所知道的游戏中的最重的处罚恐怕就是杀档了,但恐怕没有任何一家公司会规定,因某某某玩家违反规则,终生禁止玩我的游戏吧?游戏中也有关禁闭,但同样那时间对于人生来说简直太小菜了,在现实的监狱中让青春失去简直是莫大的痛苦,而游戏中的监牢不仅时间短很多,而且玩家还可以聊天喝茶,甚至开着电脑上街买菜去。法律制裁的苍白化直接导致了“犯罪”的滋生,所以也不怪打斗类的游戏仍然占大多数,但如果养成习惯,分不清现实与虚拟,将会是灾难性的后果。

无法简化的细节

很早以前我就想过,自己玩过那么多的游戏,怎么就没有一款游戏中的主人公会去上厕所呢?游戏中虽然也有白天黑夜,但不用睡觉的人比比皆是,饿了也就是用鼠标抓起事物往嘴里一放了事。也难怪,如果游戏中还要洗衣服做饭,和现实一样了,谁还会去玩啊,可在生活中,你能避开这些琐事么?在游戏中你可以干掉敌人一艘飞船,得到NNNN金,在现实中你要捡半天垃圾,运到垃圾场,再写个报告,让上级确认你的功绩,太麻烦了,要真是有那么个“系统”来自动计算,好像也蛮好的啊,可这就属于异想天开了。。。对了,老掉牙的毁灭公爵duke3d里能上厕所小便,还加10点血呢:)。

如果在游戏中,你身处撒哈拉大沙漠中央,没有任何补给和援助,没招了吧,可这是你仍然能够关掉电脑,泡杯茶休息一会儿。而如果在现实中你出在这样的环境里,给你两个选择:1、游戏中,一桌大餐等着你;2、现实中,一壶清水。你会选择哪个呢?

游戏虽好,可真的不要贪玩哦~~

用模拟器玩游戏机游戏也不错

虽然游戏差不多都会玩,可对各类游戏机的区别、模拟器的使用还不是十分了解,只介绍一下个人的简单体验,供比我更没经验的菜鸟参考,达人就可以略过了。

测试环境:ubuntu 7.04, x86

Mame

好东西啊,直接安装xmame就可以了(我选的sdl),然后下载rom,一般是zip文件,放到指定目录中就可以玩了。rom存放路径可以修改,是/etc/xmame/xmamerc中的rompath那一行。

似乎mame支持的游戏,名称和文件名是相对固定的,shell中开启游戏只要xmame game_name就行了,不用指定调用哪个rom文件(好像也可以指定,但我不知道怎么用),如果不知道某个zip文件中装的是哪个文件,xmame -id file.zip可以帮你分辨出来。

mame的其他功能也十分丰富,包括控制键的调整,截图等等,使用zip格式存储rom,调用的时候自动解压,也节约了磁盘空间。

默认5是投币,1是开始P1,不过默认操作键不太适应,P1的方向键是以f为下的4个,按钮好像是以j为中心的4个,好在修改方便,我习惯用edsf作方向,jkl作按键。

Shift+PageUp/PageDown可以调整窗口大小,Alt+PageDown可以切换窗口和全屏模式。

Nds

使用的模拟器是ubuntu中自带的desmume,不过体验非常糟糕。我找的是一个“大战略DS汉化版”游戏,打开以后,不仅画面不知道怎么放大,游戏本身的操作也是云里雾里,鼓捣半天终于开始游戏了,又是不知道该如何操作了。。。

对nds游戏真是太不熟悉啦,不过试了好几款都这样,怀疑播放器有问题,查了一下网站上的兼容性列表,似乎确实有很多游戏没有完全兼容,好像这个网站也有日子没有更新了?

Gb/Gbc

安装了源中的gnuboy-sdl,楞是不知道该用什么命令启动。。。不过似乎gb游戏都比较古老和原始了,我感兴趣的没几个。

FC

安装fceu即可,rom扩展名为nes,打开倒是挺方便的,fceu file.nes就行了,声音也出来了。看了一下man中说Enter是开始,一按下去出个菜单,然后wzas是方向键,小键盘3是选择(和man中不太一样嘛),然后。。。日文的(我弄了个大战略),就不会玩了。

SFC

安装zsnes,rom扩展名为smc,可以压缩为zip直接使用,也是直接zsnes file.zip就能打开了,默认的按键也是一片迷糊,不过可以按esc呼叫出zsnes的菜单,对按键进行配置,总体感觉不错,挺流畅,挺好用的。

SAGA MD

安装dgen,rom扩展名smd,也可以压缩为zip直接使用,打开倒是挺顺畅,还可以指定窗口大小,图像效果看起来不错,仍然是不知道按哪个键起作用。。。

NEO/CPS1/CPS2

90年代的街机上NEOGEO没少见吧,这些也可以用mame来玩,不过要额外下载bios文件,比如neogeo.zip,很多大型的街机游戏都是这种格式,估计FANS不少。也可以用GnGep来玩,需要自行编译,我没有试。

自己的电脑配置有限,带宽也有限,没有再去尝试高级的主机比如PS什么的模拟器,都是挑一些老掉牙的游戏来试的。不过,从某种意义来说,这些游戏还真是“跨平台”呢,至于模拟器软件,截至目前个人感觉还是mame和zsnes要高出一筹来,这样正好,估计大家玩的最多的也就是超级任天堂和街机了吧?

参考

Update @ 2007-10-13

最好装xmame-x而非sdl,因为xmame-x支持opengl加速。如果没有声音,可能是alsa的问题,可以参考一下Feisty下的alsa怎么不响了?

从windows迁移到Ubuntu Linux一例

从windows迁移到Ubuntu Linux一例

注: 本文内容比较杂,涉及WGA、tnt2显卡、gnome、xfce、nfs、游戏、wine、font、defoma、socks5、ssh等,这些问题我就不再一一整理了,请各位自行攫取。

起因

一位同事告诉我,他的电脑好像中病毒了,总提示什么“您可能是软件盗版的受害者”,我以为这又是哪个流氓软件的把戏呢,故意说得严重些吓唬用户,然后进一步欺骗什么的。于是到他电脑上一看,提示是这样:

从windows迁移到Ubuntu Linux一例p1

原来我当初的想法是错误的,根本没有流氓软件,这个提示是100%正宗的微软出品,根据提示还可以链接到微软的网站,提示当前windows使用的序列号是非法的:

从windows迁移到Ubuntu Linux一例p2

这时才想起来,这台机器大概半年前重装过,装了一个不知名版本的winxp(当然是盗版),后来提示快到期了需要激活,就找了个算号器算了半天,找了个可用的序列号用上了。查看已安装的程序可以发现,由于windows自动更新一直开着,4月25号通过自动更新安装了一个WGA(微软正版增值计划)工具,第二天,也就是4月26号就开始提示了。

这台电脑是联想的品牌机,购买的时候是带着正版win98操作系统的,不过时间比较久远了,win98在当今的网络环境下,让一个菜鸟使用,存活期实在太短了,所以才重装的xp。现在既然人家已经发现“盗版”的事实了,还是不要用了,结合前一段时间成功为其他2位同时安装Ubuntu Linux的经验,决定把这台机器改装Linux。

老爷机

先来介绍一下这台老爷机,2002年初购买的联想开天4600,P4 1.7的主频,256M SDRAM内存,40G硬盘,Nvidia Riva Tnt2的显卡,按说已经到了退休年龄,但为了节约资金,加上使用岗位的工作也不太多,或者说就是给他们用来上上网,打打游戏的,才一直在用着。

所装Linux为Ubuntu 7.04 Feisty Dawn,新鲜出炉的,呵呵。

基本系统与显卡

个人感觉直接用Ubuntu的Live CD安装太慢了,所以用一张Ubuntu server光盘先安装基本系统,再安装ubuntu-desktop,从局域网内的镜像源下载,过程很顺利。

至于显卡驱动的安装,由于Nvidia Riva Tnt2是相当老的卡了,所以需要安装nvidia-glx-legacy包,但光这样还不行,无法启动glx,只有把xorg.conf中Device段中的Drivernv改成nvidia才行,glxgears也运行正常,不过这样不仅充分体现了老式N卡“黑”的特点,最高还只能上800×600的分辨率,所以只能把Driver设置为默认的nv,不使用glx,但能够用1024×768的分辨率,反正也不玩3D游戏。详细的安装在原来写的Ubuntu点滴中有介绍。

由于没什么办公需要,所以必备的软件无外乎浏览器、qq、休闲游戏了。浏览器当然是使用Firefox,QQ也用LumaQQ实现了,至于休闲游戏嘛,我推荐的蓝迪游戏由于游戏太少、玩家太少,同事看不上,所以还得想办法装其他的,不过这是后话了。

基本系统安装完毕之后,去掉不必要的服务,使用Gnome桌面,感觉这台老爷机跑起来还是吃力,系统内存需求大概和机器配置相当,如果能再多128M内存情况就会好很多了。

系统改进与文件共享

鉴于Gnome桌面实在是太慢,所以用轻量级桌面系统Xfce替代了,再用SWiftfox替代原生的firefox,这样感觉系统快了许多,只开一个空的firefox的情况下内存占用在160M左右,加上Xfce本身效率和相应速度就比Gnome要好,现在系统的速度就“相当”可以接受了,夸张一点说比原来windows还要快一些呢。

在办公室的局域网上,共享是难免要用到的了,对于菜鸟用户来说,使用linux共享最好的方式就是在fstab里直接mount服务器上的共享文件夹,这样日常使用更方便。以前和windows机器共享文件我都是用Samba,不过这次是Linux和Linux机器之间的共享,我鼓捣了一会儿Samba的配置,很容易就通了但中文总是不行,不管是iocharset=utf8还是iocharset=cp936或者codepage=cp936都不行,于是转变方式,使用NFS。

没想到NFS配置如此简单,因为懒得和linux内核扯上关系,服务器上使用的是nfs-user-server,配置文件为/etc/exports,由于没用权限控制,所以一句配置就够了:

/home/fwolf/links/public    *(rw,sync)

把public这个目录共享给全部用户(*),设定可读写权限(rw),sync不知道啥意思,网上抄过来的配置,文档中也没有。客户端安装上nfs-client之后,在fstab里面加上一行:

fwolf:/home/fwolf/links/public      /media/fwolf    NFS defaults    0   0

这样就实现了NFS共享文件夹的自动挂载。再把挂载点的链接拖到文件管理器Thunar的左侧Tree栏中,同事用起来就没问题了,不过我这里倒是遗留下来一个小问题。

我的这个~/links/public目录在Samba和NFS下都共享这呢,同时这个目录中还有一个链接文件(比如叫csi),指向我电脑上另外一个位置,问题来了,windows机器通过samba访问时,可以访问链接文件csi里面的内容,在他们看来,csi就是一个普通的目录;而这台Linux通过NFS访问时,客户端Linux看到的csi仍然是一个链接文件,当然链接文件对于客户端Linux来说是指向客户端电脑中的某个文件的,它当然不存在了。所以NFS共享的情况下,无法通过链接文件来“灵活”添加共享文件了。

Wine与休闲网游

同事玩的休闲网游指的是QQ游戏、中游、边锋、联众等多人在线棋牌游戏,抱着不大的希望,我用wine(Ubuntu中自带的,并非EasyWine等修改版)一个一个的安装、运行,虽然安装都很顺利的完成了,但能运行的之后联众:

  • QQ游戏,按照网上说的先安装ie6再运行,仍然是在弹出登录对话框之后报错,错误还无法关闭。
  • 中游,iGame.exe运行之后死活不出来。
  • 边锋,说聊天控件无法运行,让我重新安装,难道不聊天就不能玩游戏么?

还是最老牌的联众游戏勉强可用,把新、旧中国象棋装上试了一下,效果满好的,就是在大厅选游戏选房间的时候,鼠标点房间名无效,需要用键盘移动光标过去,再敲回车进入。偶尔还会自动下载一些扩展名为gls的东西安装,不过基本都不妨碍使用。

在使用wine进行游戏安装、测试的时候,刚开始特别的慢,并且wine一开始运行xorg就把cpu占到100%,几乎什么都没法用,后来在EasyWine linux 游戏社区找到了答案,问题解决之后,wine的速度还是非常快的,套用网友的一句话,简直比直接在windows下运行还快呢。

wine特别慢,xorg吃cpu的原因主要是系统缺少gbk字体,运行一下xfontsel,如果xorg把cpu占到100%,过一会儿才弹出对话框的话,就更加肯定是这个问题了。首先要准备中文字体文件,比如我的/big2/fonts/xpfonts/simsun.ttf,然后在/etc/defoma/hints中添加一个名为ttf-sim-simsun.hints的文件,内容如下:

category truetype
begin /big2/fonts/xpfonts/simsun.ttf
    Family = Sim-Sun
    FontName = SimSun-Medium
    Encoding = Unicode
    Location = Chinese-China English
    Charset = ISO10646-1 GB2312 BIG5 ISO8859-1 GBK
    UniCharset = GB2312 BIG5 ISO8859-1 GBK
    GeneralFamily = SimSun
    Weight = Medium
    Width = Fixed
    Shape = Upright
    Alias = Sim-SunGB SimSunGB
    Foundry = Sim
    Priority = 20
    X-Family = SimSun
    X-ElementAlias=foundry=default:family=simsun:resx=72:resy=72
    TTCap = halfwidth-bw=0.5 italic-angle=0.167 no-roblique no-oblique no-ritalic
end

然后在defoma中注册Simsun宋体字体的hints文件:

cd /etc/defoma/hints
defoma-font reregister-all ttf-sim-simsun.hints

最后修改/etc/X11/xorg.conf,确保Files段有如下内容:

FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"

这样,wine能够找到正确的字体之后,速度就飞快了。

Socks5代理

联众游戏虽然能玩了,但是联众不同的游戏使用不同的端口,而同事所用机器,受防火墙的限制,无法直接连接这些端口,如果使用联众自带的proxy功能,能登录上,但游戏功能也随之受限,所以考虑使用socks5代理。

局域网内的服务器不受防火墙端口访问限制,但如何让它提供socks5代理服务呢?我在网上搜索了一下,发现Ubuntu下居然没有显而易见的socks5代理服务软件,只有socks4的,就我的理解,socks5和socks4还是区别很大的,所以继续寻找,终于SOCKS Forwarding With OpenSSH这篇文章提醒了我,可以使用ssh的隧道功能提供socks5代理服务。

ssh的隧道代理功能非常有趣,如果你用ssh -D 1080 user@host登录远程主机之后,不仅可以正常的操作shell,同时还在本机的1080端口建立了socks4/socks5服务。本机的1080端口相当于隧道的入口,用户请求从这里进来,在ssh登录的主机出去,然后用户请求返回的结果再从ssh登录的主机经由ssh隧道返回。其实国内也有人介绍过这种功能了,比如可以使用dreamhost的ssh功能为自己提供代理服务,只是加上socks就想不起来了。

方法了解之后,操作就简单了。首先要配置到服务器的ssh自动登录(我可不想每次都手工输入密码),然后把登录命令写成一个脚本,ln到/etc/rc2.d/目录下,起名叫S99ssh_socks,这样每次开机就会自动ssh登录到服务器,同时在本机的1080端口创建socks服务了。别忘记把ssh的超时关闭去掉,编辑~/.ssh/config,加上:

ServerAliveInterval 300

每隔300秒向服务器发送活动信息,免得被踢。注意这种方式提供的代理服务只能够供本机使用(监听127.0.0.1地址),同时udp协议无法使用这种代理。

如果用Tor来提供socks服务也是可以的,我在没找到ssh隧道方法的时候也是这样凑数的,不过大家都知道,tor的速度嘛,呵呵,玩游戏总掉线是要扣分滴。

小结

这次迁移基本上已经完成了,用到的软件不多,主要时间花费在系统调优和用wine测试各个游戏上面,没有什么高深的技术,但是把现有的工具融合在一起,为那些对windows过于依赖的人们提供一个新的选择,还是有意义的,至少,不会再有人让你整天给他杀毒了吧?呵呵。

Update @ 2007-08-30

如果ssh转发失败,服务器上出现类似

channel 2: open failed: administratively prohibited: open failed

的错误信息时,有三个可能的原因,一是服务器上的sshd_ config文件中的AllowTcpForwarding yes没有打开;再一个就是ssh -D创建的socks服务器,你错当做http代理服务器用了(Tips: 在firefox的proxy设置中,只填SOCKS Host,其他Proxy地址置空,就不会弄错啦);第三,如果使用privoxy转发,把forward-socks4a换成forward-socks4试试(去掉了一个“a”)。