处女作还是献给钟爱的 Call of Duty: Modern Warfare 2。

cod6的游戏服务器运行在windows下,但是也可以用wine在Linux下跑,优点:

  • 省钱
  • 省钱
  • 省钱

1核CPU、512M内存的最低配阿里云ECS,可以无压运行一个游戏服,32块/月。然而这种配置单跑windows系统都是impossible。

当然你需要有一点点Linux基础,如果不懂还想折腾就去翻一翻《鸟哥的Linux私房菜》前几章就足够了。

你还需要先懂得如何在windows下搭建cod6的服务器,如果也不懂,去看逗比41的帖子:http://bbs.3dmgame.com/thread-4389344-1-1.html

以下方法只在Ubuntu 14.04 32位下测试通过,其他Linux发行版或64位Ubuntu测试未成功,没深究原因。

全部操作过程的SecureCRT打屏在这:securecrt_output.txt

下面贴一下主要的步骤和命令:

购买云主机

配置选择

当然可以选别人家的云主机,也可以自己装一个虚拟机来尝试。

  • CPU: 1核

  • 内存:512M

  • 网络:按使用流量付费(没人玩的时候不扣钱,有人玩每小时也就几分钱)

  • 带宽:随意

  • 系统:Ubuntu 14.04 32位

上述阿里云ECS最低配只够启一个服,如果要开两个服,需要加到1GB内存,其他不需要升级。

连接云主机

SecureCRT,不会百度google。

安装依赖软件包

基础软件包

apt-get update
apt-get install wine vnc4server fluxbox screen wget
wget http://kegel.com/wine/winetricks

有几处需要手动确认的,Yes或者Ok就行了。

每个软件包的作用自行google。

启动vncsrever

后续软件包的安装需要用到vncserver,所以需要先启动。

vncserver -geometry 800x600 -depth 24

记住要求设置的密码,连接时会用到。

第一次启动主要是让vncserver生成一个默认的配置文件,vim ~/.vnc/xstartup 编辑自动生成的配置文件,结果如下:

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 800x600+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &

重启vncserver,使用新的配置文件:

vncserver -kill :1
vncserver -geometry 800x600 -depth 24
export DISPLAY=:1

连接vncserver

下载TightVNC,配置连接,IP后面的“:1”跟上面的export DISPLAY=:1对应,当然也可以使用其他数字。


点击connect,输入启动vncserver时设置的密码,点击OK连接:


连接成功:

安装corefonts

sh winetricks corefonts

安装dotnet20

sh winetricks dotnet20

切换到TightVNC操作,一路Next、Install、Agree、Finish

安装vcrun2008

sh winetricks vcrun2008

切换到TightVNC操作,一路Next、Install、Agree、Finish

下载游戏文件

为了方便,我直接从另一台云主机上scp过来的。游戏下载地址可以到上面41的帖子里找。

启动服务器
写一个启动脚本:

export DISPLAY=:1
cd /home/cod/cod6_server/
nohup wine iw4mp_server.exe -dedicated -console +set net_port "28962" +set party_maxplayers 8 +exec ffa.cfg +map_rotate &

保存为ffa.sh, chmod +x ffa.sh 加执行权限,运行就可以启动服务器了。

ps查看进程是否存在:


服务器有时候不太稳定,最好在crontab里加个监控,每分钟检查一次进程是否存在,不存在就重新启动:

* * * * * ps -ef | grep "iw4mp_server" | grep -v grep || /home/cod/cod6_server/ffa.sh

测试

启动cod6游戏客户端,可以在Server List找到刚才启动的服务器:Final Stand[FFA]:


双击进入, Oh Yeah!


珍爱生命,远离蛋拐。欢迎加入QQ群460443581,CHN COD6 FINAL STAND,国服cod6最后一战!