返回首页

征途私服怎样架设

来源:www.chengshu.net   时间:2022-05-29 17:23   点击:300  编辑:石艺   手机版

说明不涉及任何责任,提供本说明给技术爱好者学习了解服务器环境概况,所有资料来源与网络与本站无任何关系。

  Linux下征途游戏服务器注意事项

  一、硬件的安装

  1、保证服务器风扇正常转动。

  2、保证服务器各个提示灯是否正常。

  3、开机察看服务器有无报警情况。

  4、开机察看服务器能否正常启动(不插鼠标键盘的情况下)

  二、系统的安装

  1、 安装RHEL 4。1

  2、 选择自动分区。

  3、 分别给2块网卡配置ip,方便以后配置,其中eth0配内网ip,eth1配外网ip。

  4、 不启用防火墙。

  5、 增加中文语言包。

  6、 选择软件包时,只选择开发包。

  三、系统的简单设置

  1、防火墙的简单设置:

  vi /etc/rc。d/forward

  内容:(例子)

  #!/bin/bash

  echo 1 >/proc/sys/net/ipv4/ip_forward

  if

  then

  echo 0 > /proc/sys/net/ipv4/tcp_ecn

  fi

  /sbin/iptables -F

  /sbin/iptables -F -t nat

  /sbin/depmod -a

  /sbin/modprobe ip_tables

  /sbin/modprobe ip_conntrack

  /sbin/modprobe ip_nat_ftp

  /sbin/modprobe ip_conntrack_ftp

  /sbin/iptables -A INPUT -i lo -j ACCEPT

  /sbin/iptables -A INPUT -i eth0 -j ACCEPT

  /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

  #/sbin/iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset

  /sbin/iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable

  #sshd

  /sbin/iptables -A INPUT -s 218。80。198。234 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

  /sbin/iptables -A INPUT -s 218。80。198。250 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

  /sbin/iptables -A INPUT -s 210。22。188。21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

  #ftp server

  #/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

  #game server

  /sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 6020 -j ACCEPT

  #db server

  /sbin/iptables -t nat -A PREROUTING -s 218。80。198。234 -d 203。110。165。30 -p tcp --dport 3306 -j DNAT --to 192。168。102。158:3306

  /sbin/iptables -t nat -A PREROUTING -s 218。80。198。234 -d 203。110。165。30 -p tcp --dport 3307 -j DNAT --to 192。168。102。159:3306

  /sbin/iptables -P INPUT DROP

  /sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192。168。102。0/24 -j MASQUERADE

  保存后退出。

  chmod 744 /etc/rc。d/forward

  然后运行防火墙脚本,以后根据需求修改脚本。

  再vi /etc/rc。d/only_forward

  #!/bin/bash

  echo 1 >/proc/sys/net/ipv4/ip_forward

  if

  then

  echo 0 > /proc/sys/net/ipv4/tcp_ecn

  fi

  /sbin/iptables -F

  /sbin/iptables -F -t nat

  /sbin/depmod -a

  /sbin/modprobe ip_tables

  /sbin/modprobe ip_conntrack

  /sbin/modprobe ip_nat_ftp

  /sbin/modprobe ip_conntrack_ftp

  /sbin/iptables -A INPUT -i lo -j ACCEPT

  /sbin/iptables -A INPUT -i eth0 -j ACCEPT

  /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

  #/sbin/iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset

  /sbin/iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable

  #sshd

  /sbin/iptables -A INPUT -s 218。80。198。234 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

  /sbin/iptables -A INPUT -s 218。80。198。250 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

  /sbin/iptables -A INPUT -s 210。22。188。21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

  #ftp server

  #/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

  #game server

  /sbin/iptables -A INPUT -s 218。80。198。234 -p tcp -m state --state NEW -m tcp --dport 6020 -j ACCEPT

  #db server

  /sbin/iptables -t nat -A PREROUTING -s 218。80。198。234 -d 203。110。165。30 -p tcp --dport 3306 -j DNAT --to 192。168。102。158

  /sbin/iptables -t nat -A PREROUTING -s 218。80。198。234 -d 203。110。165。30 -p tcp --dport 3307 -j DNAT --to 192。168。102。159:3306

  /sbin/iptables -P INPUT DROP

  /sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192。168。102。0/24 -j MASQUERADE

  此防火墙只允许公司的电脑可以登录游戏。

  2、设置系统自动启动防火墙

  vi /etc/rc。d/rc。local

  增加一行

  /etc/rc。d/forward

  保存后退出

  3、设置文件打开数

  1) 修改/etc/security/limits。conf 增加2行:

  * soft nofile 4096

  * hard nofile 65535

  2) 修改/etc/pam。d/login 增加1行

  session required pam_limits。so

  可用:

  echo “* soft nofile 4096” >>/etc/security/limits。conf

  echo “* hard nofile 65535” >>/etc/security/limits。conf

  echo “session required pam_limits。so” >>/etc/pam。d/login

  4、修改默认语言

  vi /etc/sysconfig/i18n 修改

  LANG=zh_CN。GB2312

  7、 新建游戏运行用户ztgame,设置密码

  useradd ztgame

  passwd ztgame

  8、 用ztgame用户登录服务器,修改vi /home/ztgame/。bash_profile增加一行

  ulimit –c unlimited

  保存后退出。

  四、游戏环境的搭建(按照4台网关服务器,5台场景服务器,1台数据库服务器的构架)

  1、服务器IP设置

  4台网关服务器配置外网ip和内网ip,5台场景服务器和数据库服务器只配置内网ip,并且服务器默认网关为第一台网关服务器的内网ip。

  服务器以服务器应用-序号-机房序号命名(例GWServer01-CHJ01)。

  修改/etc/hosts。

  例子:

  127。0。0。1 GWServer01-CHJ01 localhost。localdomain localhost

  192。168。100。101 GWServer02-CHJ01

  ………

  192。168。100。104 ScenServer01-CHJ01

  ………

  192。168。100。109 DBServer-CHJ01

  2、公钥的生成

  在ztgame的用户下登陆第一台网关服务器,输入ssh-keygen -t dsa

  接受 ~/。ssh/id_dsa 的默认位置。输入一个与你的帐号口令不同的口令句,再输入一次来确认。公钥被写入 ~/。ssh/id_dsa。pub。密钥被写入 ~/。ssh/id_dsa。

  使用以下命令改变你的 。ssh 目录的许可权限:

  chmod 755 ~/。ssh

  把 ~/。ssh/id_dsa。pub用scp命令传到其它剩余9台服务器

  scp~/。ssh/id_dsa。pub ztgame@192。168。102。108:~/。ssh/authorized_keys

  在其它9台服务器下使用以下命令改变你的 authorized_keys 文件的许可权限:

  chmod 755 ~/。ssh

  chmod 644 ~/。ssh/authorized_keys

  3、数据库服务器的安装

  #首先确定你是root用户

  #确定你有以下包

  perl-DBD-MySQL-2。9004-3。1

  perl-DBI-1。40-5

  mysql-4。1。7-4。RHEL4。1

  获得mysql-4。1。*。tar包,用tar –zxvf mysql-4。1。*tar解开压缩包,然后进入mysql-4。1。*目录

  #根据体统类型选择编译方式

  #i386体系结构的

  CFLAGS=-O3 -mcpu=pentiumpro CXX=gcc CXXFLAGS=-O3 -mcpu=pentiumpro -felide-constructors -fno-exceptions -fno-rtti 。/configure --with-raid --enable-thread-safe-client --enable-assembler --with-server-suffix = for >>>MySQL Database of Zebra by Yhc>>MySQL Database of Zebra by Yhc> /etc/profile && export PATH=/usr/local/mysql/bin:$PATH

  #strip可执行文件

  strip /usr/local/mysql/libexec/mysqld

  #添加LIB PATH

  echo /usr/local/mysql/lib >> /etc/ld。so。conf && ldconfig

  #将my。cnf文件cp到/etc目录下

  cp support-files/my-huge。cnf /etc/my。cnf

  #修改my。cnf

  datadir=/db/mysql

  #创建数据库存放路径

  mkdir /db

  chown mysql。mysql /db -R

  #初始化Mysql表

  su - mysql -c mysql_install_db

  #启动服务器

  su - mysql -c mysqld_safe --skip-name-resolve --open-files-limit=4096&

  #创建数据库和用户

  GRANT ALL PRIVILEGES ON *。* TO ztgame@'192。168。104。%' IDENTIFIED BY '' WITH GRANT OPTION;

  GRANT ALL PRIVILEGES ON *。* TO ztgame@'localhost' IDENTIFIED BY '' WITH GRANT OPTION;

  GRANT ALL PRIVILEGES ON *。* TO ztgame@'218。80。198。234' IDENTIFIED BY '' WITH GRANT OPTION;

  4、数据库配置

  用mysql进入,然后用create database dbname创建数据库。分别创建SuperServer、RecordServer、Bill数据库,然后用安装包目录下的*。sql的文件建立相应的表。(SessionServer。sql也导入到RecordServer库中)。

  在SuperServer数据库SERVERLIST表内添加服务器配置信息。

  例子:

  INSERT INTO `SERVERLIST` VALUES (1,1,'SuperServer','192。168。104。109',10000,'192。168。104。109',10000);

  INSERT INTO `SERVERLIST` VALUES(20,20,'SessionServer','192。168。104。109',6000,'192。168。104。109',6000);

  INSERT INTO `SERVERLIST` VALUES(21,21,'SceneServer','192。168。104。104',6010,'192。168。104。104',6010);

  INSERT INTO `SERVERLIST` VALUES(22,21,'SceneServer','192。168。104。105',6011,'192。168。104。105',6011);

  INSERT INTO `SERVERLIST` VALUES(23,21,'SceneServer','192。168。104。106',6012,'192。168。104。106',6012);

  INSERT INTO `SERVERLIST` VALUES(24,21,'SceneServer','192。168。104。107',6013,'192。168。104。107',6013);

  INSERT INTO `SERVERLIST` VALUES(25,21,'SceneServer','192。168。104。108',6014,'192。168。104。108',6014);

  INSERT INTO `SERVERLIST` VALUES(2200,22,'GatewayServer','192。168。104。100',6020,'210。51。23。132',6020);

  INSERT INTO `SERVERLIST` VALUES(2201,22,'GatewayServer','192。168。104。101',6020,'210。51。23。133',6020);

  INSERT INTO `SERVERLIST` VALUES(2202,22,'GatewayServer','192。168。104。102',6020,'210。51。23。134',6020);

  INSERT INTO `SERVERLIST` VALUES(2203,22,'GatewayServer','192。168。104。103',6020,'210。51。23。135',6020);

  INSERT INTO `SERVERLIST` VALUES(11,11,'RecordServer','192。168。104。109',7010,'192。168。104。109',7010);

  INSERT INTO `SERVERLIST` VALUES(12,12,'BillServer','192。168。104。109',7020,'192。168。104。109',7020);

  在RecordServer数据库上初始化某些表格,目前有ANSWER,TECH,COUNTRY,NPCDARE,ACCPRIV。

  数据库服务器上跑SuperServer、SessionServer、RecordServer、BillServer四个服务,4个网关服务器分别跑4个网关服务,5个场景服务器分别跑5个场景服务。场景服务器对应的ID就是国家配置的ID号,这个ID号决定场景服务器上面跑几个国家。

顶一下
(0)
0%
踩一下
(0)
0%