steam游戏服务器部署文档(例子:幻兽帕鲁,操作系统:CentOS7.5)

服务器是自己的服务器(6核16g),可以是虚拟机,也可以是装的linux系统。如果是云服务器操作同理,记得买的时候带上公网ip,就是省去了第五步端口映射。

1.创建steam用户

创建用户并设置密码

[root@localhost /]# useradd steam
给steam用户设密码    
[root@localhost /]# passwd  steam

给steam用户sudo权限 — 不知道steam用户系统会不会用sudo,我们用sudo方便我们操作

[root@localhost /]# vim /etc/sudoers

steam游戏服务器部署文档(例子:幻兽帕鲁,操作系统:CentOS7.5)_第1张图片
切换到steam用户

[root@localhost /]# su steam
注:
	后面游戏服务启动失败   可能就是没切换用户steam   
	后面游戏服务异常关闭 可能steam里有root创建的文件,导致steam用户没权限读取文件
	
解决办法:把steam家目录的权限都改为steam
[steam@localhost /]$ sudo chown -R steam.steam /home/steam/

2.下载steamCmd

下载编译的
[steam@localhost /]$ sudo yum -y install glibc.i686 libstdc++.i686  
下载steamCmd压缩包
[steam@localhost /]$ mkdir -p /home/steam/Steam
[steam@localhost Steam]$ cd /home/steam/Steam
[steam@localhost Steam]$ wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
解压
[steam@localhost Steam]$ tar -zxvf steamcmd_linux.tar.gz

3.下载(更新)游戏服务器

拿幻兽帕鲁举例
[steam@localhost Steam]$ cd /home/steam/Steam
[steam@localhost Steam]$ ./steamcmd.sh +login anonymous +app_update 2394010 validate +quit
(2394010肯定就是游戏服务器id,下载其他游戏服务器同理)

下载完成之后,启动服务器之前,有一步重要的步骤

启动服务器的时候,会去读取里面的steamclient.so
[steam@localhost ~]$ mkdir -p /home/steam/.steam/sdk64

把64位的steamclient.so移过去,要不然读32位的启动服务器是会报错的(如果是32位的系统,把linux64改为linux32)
[steam@localhost ~]$ cp ~/Steam/linux64/*  ~/.steam/sdk64	

4.启动游戏服务器

[steam@localhost ~]$ cd ~/Steam/steamapps/common/PalServer
[steam@localhost PalServer]$ nohup ./PalServer.sh &
上面是后台启动服务器,通过查看端口判断服务是否正常启动
[steam@localhost PalServer]$ netstat -nultp
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:1985            0.0.0.0:*               LISTEN      7341/PalServer-Linu
tcp        0      0 127.0.0.1:41345         0.0.0.0:*               LISTEN      7341/PalServer-Linu
tcp6       0      0 :::22                   :::*                    LISTEN      -
tcp6       0      0 ::1:25                  :::*                    LISTEN      -
udp        0      0 0.0.0.0:8211            0.0.0.0:*                           7341/PalServer-Linu
udp        0      0 127.0.0.1:323           0.0.0.0:*                           -
udp        0      0 0.0.0.0:27015           0.0.0.0:*                           7341/PalServer-Linu
udp6       0      0 ::1:323                 :::*                                -

8211端口启动,即可连接服务器

[steam@localhost PalServer]$ tail -f nohup.out
[S_API] SteamAPI_Init(): Loaded '/home/steam/.steam/sdk64/steamclient.so' OK.  (First tried local 'steamclient.so')
Shutdown handler: initalize.
Increasing per-process limit of core file size to infinity.
CAppInfoCacheReadFromDiskThread took 1 milliseconds to initialize
Setting breakpad minidump AppID = 2394010
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.

另外,看日志输出,出现上面那个AppID = 也是成功的。没有端口的话就看日志有没有报错的

5.端口映射

局域网内直接使用内网ip+端口连接服务器

外网就要使用一些手段,包括但不限于购买公网ip绑定内网ip
这里我讲我的方式:
打开路由器的管理界面,查看是否有WAN口并绑有公网ip
steam游戏服务器部署文档(例子:幻兽帕鲁,操作系统:CentOS7.5)_第2张图片
或者在这个网站上查询看看是否有外网ip https://tool.lu/ip/,没有的话跳到第六步
steam游戏服务器部署文档(例子:幻兽帕鲁,操作系统:CentOS7.5)_第3张图片
有的话进入路由器的管理界面,可以看看路由器背面是否有,或者问运营商。我的是直接绑定在一个ip上,直接访问ip就能进入这个界面
steam游戏服务器部署文档(例子:幻兽帕鲁,操作系统:CentOS7.5)_第4张图片

打开高级设置-----地址转换-----虚拟服务器,新增地址转换规则,即可把内网ip映射到公网ip+端口上
steam游戏服务器部署文档(例子:幻兽帕鲁,操作系统:CentOS7.5)_第5张图片
最后去连接,输入ip:端口steam游戏服务器部署文档(例子:幻兽帕鲁,操作系统:CentOS7.5)_第6张图片

6.公网ip

一般没公网ip的话应该是在家庭版,家庭的公网ip比专线的便宜很多,ipv4有一些地区一些运营商是可以免费申请的,可以看下这篇文章

小建议:我去查看了一下价格,租服务器可能会比购买公网ip便宜一些,除非可以免费申请公网ip,可以去试试。当然手上就有闲置的服务器和公网ip的话,就可以随便玩了。

7.重启服务

在修改配置,内存过高需要重启服务,重启方法:

[steam@localhost PalServer]$ netstat -nultp
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:46492         0.0.0.0:*               LISTEN      7269/PalServer-Linu
tcp6       0      0 :::3306                 :::*                    LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
tcp6       0      0 ::1:25                  :::*                    LISTEN      -
udp        0      0 0.0.0.0:8211            0.0.0.0:*                           7269/PalServer-Linu
udp        0      0 127.0.0.1:323           0.0.0.0:*                           -
udp        0      0 0.0.0.0:27015           0.0.0.0:*                           7269/PalServer-Linu
udp6       0      0 ::1:323                 :::*                                -

可以看到服务PalServer-Linu对应的pid为7269(pid用netstat -nultp去看自己机器上的)

[steam@localhost PalServer]$ kill 7269
[steam@localhost PalServer]$
[1]+  退出 143              nohup ./PalServer.sh
使用kill杀掉进程,没加-9不会强制杀,所以要等待个十秒钟左右再按一下回车,出现退出xxx就ok了

重启服务:
[steam@localhost PalServer]$ nohup ./PalServer.sh &

你可能感兴趣的:(游戏,服务器,运维)