专栏首页云计算教程系列在你的CVM上安装SteamCMD服务器
原创

在你的CVM上安装SteamCMD服务器

Steam命令行版客户端SteamCMD)是一个命令行版本的Steam客户端。它的主要用途是在一个命令行界面的Steam客户端上安装和更新各种可用的专用服务端。 它的主要用途是在一个命令行界面的Steam客户端上安装和更新各种可用的专用服务端。它适用于使用SteamPipe内容分发系统的游戏。

本教程旨在让您在腾讯云CVM服务器或其他服务器上快速启动并运行的SteamCMD。有关更多信息和高级设置,请参见Valve的SteamCMD官方教程

注意 本教程需要一台已经设置好可以使用sudo命令的非root账号的CentOS或Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后在购买服务器

准备

  1. 购买或试用腾讯云CVM服务器
  2. 更新您的操作系统:

CentOS的

sudo yum update

Debian / Ubuntu

sudo apt-get update && sudo apt-get upgrade

保护您的游戏服务器

游戏服务器和客户端是很容易被攻击。因此我建议您打开系统防火墙,如果您使用的是腾讯云的CVM服务器,您可以直接在腾讯云控制台中的安全组进行设置。:

  • 创建名为steam的用户,务必授予steam用户sudo权限。
  • 如果您使用的是iptables,请使用下面的规则集配置防火墙步骤。如果您使用的是firewalld,请跳至第5步。 IPv4的iptables配置
*filter
​
# Allow all loopback (lo0) traffic and reject traffic
# to localhost that does not originate from lo0.
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -s 127.0.0.0/8 -j REJECT
​
# Allow ping.
-A INPUT -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT
​
# Allow SSH connections.
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
​
# Allow the Steam client.
-A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT
-A INPUT -p udp -m udp --sport 4380 --dport 1025:65355 -j ACCEPT
​
# Allow inbound traffic from established connections.
# This includes ICMP error returns.
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
​
# Log what was incoming but denied (optional but useful).
-A INPUT -m limit --limit 3/min -j LOG --log-prefix "iptables_INPUT_denied: " --log-level 7
-A FORWARD -m limit --limit 3/min -j LOG --log-prefix "iptables_FORWARD_denied: " --log-level 7
​
# Reject all other inbound.
-A INPUT -j REJECT
-A FORWARD -j REJECT
​
COMMIT

IPv6的iptables配置

Steam目前仅支持通过IPv4进行多人游戏,因此Steam服务器只需要基本的IPv6防火墙规则,如下所示。

*filter
​
# Allow all loopback (lo0) traffic and reject traffic
# to localhost that does not originate from lo0.
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -s ::1/128 -j REJECT
​
# Allow ICMP.
-A INPUT -p icmpv6 -j ACCEPT
​
# Allow inbound traffic from established connections.
-A INPUT -m state --state ESTABLISHED -j ACCEPT
​
# Reject all other inbound.
-A INPUT -j REJECT
-A FORWARD -j REJECT
​
COMMIT
  • 如果您使用firewalld(CentOS 7,Fedora)而不是iptables,请使用这些规则。如果您使用的是iptables,请跳过此步骤。
sudo firewall-cmd --zone="public" --add-service=ssh --permanent
sudo firewall-cmd --zone="public" --add-forward-port=port=27000-27030:proto=udp:toport=1025-65355 --permanent
sudo firewall-cmd --zone="public" --add-forward-port=port=4380:proto=udp:toport=1025-65355 --permanent
sudo firewall-cmd --reload

打开firewalld并验证您的规则:

sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --zone="public" --list-all

安装SteamCMD

首先,安装screen在单独的会话中运行Steam游戏:

CentOS 7

sudo yum install screen

Debian / Ubuntu

sudo apt-get install screen

自动安装(推荐)

通过软件包管理器进行安装可以让您更轻松地下载更新和安全补丁,因此如果您的发行版包含SteamCMD软件包,我们建议您使用此方法。

安装包:

sudo apt-get install steamcmd

注意 在Debian上,您需要将non-free存储库的区域添加到源中。

steamcmd在方便的位置创建可执行文件的符号链接,例如您的主目录:

cd ~
ln -s /usr/games/steamcmd steamcmd

手动安装

新创建的CVM使用64位Linux操作系统。由于Steam是针对i386编译的,因此请安装相应的库。

CentOS 7

sudo yum install glibc.i686 libstdc++.i686

Debian / Ubuntu

sudo apt-get install lib32gcc1

为SteamCMD创建目录并更改为:

mkdir ~/Steam && cd ~/Steam

下载SteamCMD 源码包:

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz

解压缩安装和运行的文件:

tar -xvzf steamcmd_linux.tar.gz

错误修复

运行Steam游戏时,您可能会遇到以下错误:

/home/steam/.steam/sdk32/libsteam.so: cannot open shared object file: No such file or directory

尽管出现此错误,游戏服务器仍然可以运行,并且它应该在以后的SteamCMD版本中修复。临时修复是创建目录和符号链接libsteam.so

mkdir -p ~/.steam/sdk32/
ln -s ~/Steam/linux32/steamclient.so ~/.steam/sdk32/steamclient.so

运行SteamCMD

screen中运行可执行文件。

如果您自动安装SteamCMD:

screen ./steamcmd

如果您手动安装SteamCMD:

screen ./steamcmd.sh

这将返回类似于下面的输出并让您在最终返回Steam>提示符下:

Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Downloading update (0 of 7,013 KB)...
[  0%] Downloading update (1,300 of 7,013 KB)...
[ 18%] Downloading update (3,412 of 7,013 KB)...
[ 48%] Downloading update (5,131 of 7,013 KB)...
[ 73%] Downloading update (6,397 of 7,013 KB)...
[ 91%] Downloading update (7,013 of 7,013 KB)...
[100%] Download complete.
[----] Installing update...
[----] Extracting package...
        . . .
[----] Cleaning up...
[----] Update complete, launching Steam...
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...OK.
​
Steam>

我们可以使用匿名方式登录,或者使用您自己的Steam帐号登录

以匿名方式登录:

login anonymous

使用您的Steam用户名登录:

login example_user

警告 请注意,某些版本的Steam CLI 不会加密密码。如果您使用Steam帐户登录,请注意本地屏幕的安全。

注意 您可以随时通过输入quit退出Steam>提示。

为了不破坏Steam运行中,按退出屏幕会话CTRL + A,然后d。要恢复,请使用该screen -r命令。

结论

您已准备好安装第一台Steam游戏服务器。某些游戏可能需要其他的i386库或防火墙规则,大多数游戏需要修改其配置设置。您的服务器应允许其他游戏访问,尽可能减少对玩家的干扰。而且应经常更新其软件,并在服务器正常关闭时保存玩家的进度。你可以点击下面的链接查看更多游戏服务器的教程:

如何在Ubuntu上搭建方舟:生存进化服务器

如何在Ubuntu上搭建饥荒服务器

如何在Ubuntu上安装MutliCraft

如何在Ubuntu上搭建Minecraft服务器

怎么样,简单吗?感觉去搭建你的游戏服务器吧!更多Linux教程请前往腾讯云+社区学习更多知识。


参考文献:《Install SteamCMD for a Steam Game Server》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何使用Prometheus监视您的Ubuntu 14.04服务器

    Prometheus是由SoundCloud开发的开源监控系统。与其他监控系统(如InfluxDB和Graphite)一样,Prometheus将其所有数据存储...

    尘埃
  • 如何在Ubuntu 16.04上安装和保护phpMyAdmin

    虽然许多用户需要像MySQL这样的数据库管理系统的功能,但他们可能不会仅仅通过MySQL提示与系统进行交互。

    尘埃
  • # 如何在Ubuntu 16.04上配置绑定为缓存或转发DNS服务器 ###

    在学习如何配置网站和服务器时,DNS或域名系统通常是一个难以实现的组件。虽然大多数人可能会选择使用其托管公司或其域名注册商提供的DNS服务器,但创建自己的DNS...

    尘埃
  • 将 TensorFlow 训练好的模型迁移到 Android APP上(TensorFlowLite)

    最近在做一个数字手势识别的APP(关于这个项目,我会再写一篇博客仔细介绍,博客地址:一步步做一个数字手势识别APP,源代码已经开源在github上,地址:Chi...

    AI研习社
  • CoreOS裸机iso安装和相关配置 原

    裸机通过iso安装CoreOS,个人趟了很多坑,以下就是完整的从零开始部署和配置的过程,希望对大家有用。

    bdcn
  • 【收藏】关于机器学习的知识点,全在这篇文章里了

    导读:作者用超过1.2万字的篇幅,总结了自己学习机器学习过程中遇到知识点。“入门后,才知道机器学习的魅力与可怕。”希望正在阅读本文的你,也能在机器学习上学有所成...

    yuquanle
  • 一文总结机器学习常见知识点

    机器学习:使计算机改进或是适应他们的行为,从而使他们的行为更加准确。也就是通过数据中学习,从而在某项工作上做的更好。

    Datawhale
  • ConvLSTM:时空特征提取结构 [github代码]

    这篇文章[1]想要解决的问题是预测一个区域短时间内的降水变化,在它之前的工作(2015年之前)还很少有采用机器学习的方法来做相关预测。由于预测的输入是时序雷达图...

    Minerva
  • 干货 | 关于机器学习的知识点,全在这篇文章里了

    [ 导读 ]作者用超过1.2万字的篇幅,总结了自己学习机器学习过程中遇到知识点。“入门后,才知道机器学习的魅力与可怕。”希望正在阅读本文的你,也能在机器学习上学...

    数据派THU
  • 1万+字原创读书笔记,机器学习的知识点全在这篇文章里了

    【导读】作者用超过1.2万字的篇幅,总结了自己学习机器学习过程中遇到知识点。“入门后,才知道机器学习的魅力与可怕。”希望正在阅读本文的你,也能在机器学习上学有所...

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券