设置Garrys Mod服务器

这些说明是为32位Ubuntu 14.04设计的,但在所有版本的Ubuntu上均应适用。本教程将教您如何制作Garry's Mod游戏服务器。

以root用户身份通过​​终端登录。

首先,我们需要确保防火墙是安全的,以减少出现安全问题的机会。假设此服务器专用于Garry's Mod,则可以安全地阻止除Garry's Mod所需的端口之外的所有传入端口(包括ICMP)。服务器的运行不需要ICMP,并且完全阻止它不会对Garry的Mod产生任何负面影响,但是,它将有助于减少DDoS攻击的攻击向量。

要阻止所有不需要的端口,需要以下命令:

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP

这基本上告诉防火墙忽略接收到的每个ICMP数据包,并对它绝对不采取任何措施。这也意味着,如果有人尝试对您的服务器执行ping操作,则他们将没有任何响应。第二行告诉防火墙阻止所有传出的ICMP数据包,它的重要性不那么重要,但只需两次以确保不会发生任何ICMP通信。

接下来,我们需要使用以下命令专门允许Garry Mod(包括27005-27015)所需的所有端口:

iptables -I INPUT -p tcp --dport 27005:27015 -j ACCEPT
iptables -I INPUT -p udp --dport 27005:27015 -j ACCEPT

这表示允许在27005和27015之间的端口上进行任何操作。第一个命令用于TCP,第二个命令用于UDP。第二个命令(UDP)在这里是最重要的,因为服务器和播放器之间的几乎所有通信都是通过UDP完成的。有人报告了TCP被阻止的问题,因此出于这个原因,我们应该允许它。

现在,我们要告诉防火墙允许我们打开自己(或服务器上的软件已打开)的连接。这意味着,如果我们与服务器联系,我们将能够看到响应。输入以下命令以允许它:

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

如果要使用SSH控制服务器(而不是使用帐户中的控制台),则需要此命令才能使SSH在标准端口上运行。如果您不使用SSH,请不要运行以下命令:

iptables -I INPUT -p tcp --dport 22 -j ACCEPT

最后是设置防火墙的最后一条命令。此命令将阻止除我们允许的连接之外的所有传入连接:

iptables -A INPUT -j REJECT

这些设置仅在重新启动服务器之前应用,这意味着每次计算机重新启动时我们都必须手动重新配置它。这是不可接受的,因此有一个要安装的软件包将防火墙规则保存到文件中,然后在每次服务器启动时将其加载。要安装此软件包,请键入以下内容:

apt-get install iptables-persistent

按照屏幕上的说明进行操作。当询问您是否要保存当前的防火墙规则时,请按是。

现在,我们的防火墙已设置完毕,关于防火墙的任何配置都将不再需要。

如果您使用的是SSH,则应安装一个软件包,如果他们继续尝试使用错误的SSH密码,它将自动阻止人们与服务器的连接。这对于防止您的SSH密码被强行使用非常有用。要安装软件包,请使用以下命令:

apt-get install fail2ban

Fail2ban已配置为仅在几次尝试失败的密码后阻止人们访问,因此我们无需对其进行配置。现在,您的服务器比我们启动时安全得多。

接下来,我们需要安装“屏幕”。基本上,这使您可以连续运行命令,即使您从服务器注销也是如此。这对于使Garry's Mod服务器长时间连续运行至关重要,尤其是在使用SSH控制服务器时。要安装“屏幕”,请键入以下内容:

apt-get install screen

安装完成后,运行以下命令:

screen

屏幕上将显示免责声明,只需按Enter即可继续。键入screen控制台启动屏幕,并允许您在虚拟控制台中工作,如果您断开与SSH的连接或注销,则该虚拟控制台将继续运行,并带有您的命令(Garry的Mod服务器作为Linux命令运行,因此这是我们需要使用屏幕的地方。

现在,在安装Steam,Garry's Mod和所需文件之前,我们需要一个专用于它的帐户。我建议叫它steam。要创建一个新帐户,请输入以下内容:

adduser steam

您需要使用与root密码不同的密码来确保一切安全。您将很少使用此密码。系统将询问您有关该帐户的一些问题,例如其全名,电话号码等。所有这些均保留为空白。

现在,我们要在下载所有必需文件时登录“ steam”帐户。这意味着“ steam”将获得这些文件的所有所有权,并且无​​需任何配置即可正确设置Linux权限。如果以root身份安装Steam,然后尝试更改这些权限,则要获得正确的权限要困难得多。要以Steam身份登录,请键入以下内容:

su steam

我们需要一个目录(文件夹)来保存Steam软件。要创建目录,请使用以下命令:

mkdir ~/Steam

现在,我们希望位于该目录中。要使其成为当前工作目录,请键入以下内容:

cd ~/Steam

现在,我们需要输入以下内容来下载Steam软件:

wget http://media.steampowered.com/client/steamcmd_linux.tar.gz

现在,我们需要使用以下命令解压缩并安装它:

tar -xvzf steamcmd_linux.tar.gz

如果您使用的是64位操作系统,则需要安装32位库才能运行Steam。

apt-get install lib32stdc++6
apt-get install lib32gcc1

运行以下命令以打开Steam,让它以“匿名”身份登录(任何人都可以从其服务器下载免费软件的Steam帐户),并告诉其将Garry's Mod服务器安装到gmodds文件夹(存储在Steam帐户的主目录)。

./steamcmd.sh +login anonymous +force_install_dir ../gmodds +app_update 4020 validate +quit

我们可以预期该命令将持续很长时间,但是我们可以观察它的进度。该命令可能会失败,Steam服务器通常会遇到一些小麻烦,从而导致下载失败(或根本无法启动)。如果发生这种情况,只需重新启动即可。

完成此命令后,我们将获得Garry Mod服务器的工作副本,但是,大多数Garry Mod的内容都需要安装CounterStrike:Source(简称CS:S)。要安装CS:S,请运行以下命令:

./steamcmd.sh +login anonymous +force_install_dir ../cssds +app_update 232330 validate +quit

此命令也将花费一些时间。

安装Garry的Mod和CounterStrike之后,需要使用配置文件将它们链接在一起。为此,我们需要使用以下命令编辑以下文件:

nano /home/steam/gmodds/garrysmod/cfg/mount.cfg

在包含“ cstrike”的行上,我们需要删除该行开头的两个斜杠(//),然后替换该行的整个路径部分(以开头C:/)。该行的该部分需要替换为:

/home/steam/cssds/cstrike

现在,整个行应如下所示:

"cstrike"       "/home/steam/cssds/cstrike"

在单词cstrike之前的开头应该有一个制表符空格,并且该行的任何地方都不应包含双斜杠(//)。完成后,您可以先按Ctrl + X,再按Y保存此文件。这会告诉Garry's Mod在哪里可以找到CounterStrike,以便可以使用它。

现在,我们已经安装了基本的Garry's Mod服务器。要运行它,请使用以下命令确保我们位于正确的目录中:

cd /home/steam/gmodds/

然后运行以下命令:

./srcds_run -game garrysmod +gamemode terrortown +maxplayers 16 +map cs_office

一旦启动,您应该可以通过在Garry的Mod Console中键入以下内容来加入(不是服务器终端):

connect IP_ADDRESS

替换IP_ADDRESS为服务器的IP地址。如果您不知道自己的IP地址,请在服务器终端中键入以下内容,这将告诉您它是什么:

url -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'

如果要更改服务器上允许的播放器数量,请通过执行Ctrl + C停止服务器并再次执行启动命令,但将其替换maxplayers 16maxplayers x(更改x为所需的播放器数量)。要更改默认地图(播放的第一张地图),请替换cs_office为所需地图的名称。最后,要更改游戏模式,请替换terrortown为所需的游戏模式。terrortown默认情况下,Garry的Mod仅随附(在“恐怖镇”中为“简短内容”)和沙盒。

为了进一步配置服务器,有一个可以编辑的配置文件。该文件中的每一行都称为配置变量(cVar)。运行以下命令以编辑文件:

nano /home/steam/gmodds/garrysmod/cfg/server.cfg

可以更改以下值,稍后将解释每个值的作用:

hostname "server name"
sv_downloadurl "http://example.com/files/"
sv_allowupload 1
sv_password "secret password"
sv_timeout 60

更改主机名值使您可以更改服务器的名称。除非您进行更改,否则它将称为“ Garry's Mod”。例如,这将您的服务器称为“我的酷服务器”:

hostname "My cool server"

您可以根据需要向文件中添加尽可能多的变量,每个新变量都需要换一行。

sv_downloadurl变量允许您选择从何处下载定制服务器内容。自定义内容包括Garry的Mod贴图,声音,插件和纹理。默认情况下,Garry的Mod仅允许以极慢的速度从您的服务器下载数据,这就是为什么我们需要提供一个URL以便可以全速下载数据的原因。您提供的URL必须是“ garrysmod”文件夹的克隆,以便所有文件都可用。

sv_allowupload可以有两个选择,0或1,它指定是否要允许人们将内容上载到服务器。这仅用于喷涂(玩家可以喷涂到墙上的图形),并且可能引起安全问题。通常会要求使用喷雾,因此使用“ 1”会使玩家感到高兴,但使用“ 0”会使服务器更安全。

sv password允许您选择服务器的密码。每当有人加入时,都会要求他们输入此密码,如果没有密码,他们将无法加入。

sv_timeout是您希望服务器在踢出失去连接的人之前等待的时间(以秒为单位)。服务器将自动等待他们恢复连接,但是在这种情况下,播放器似乎静止不动。最好在60秒或更短的时间内完成。更改这些设置后,需要重新启动服务器。

还可以安装附加组件以为游戏提供其他功能。需要以特定方式安装某些插件,因此您应始终阅读其网站上的说明,但这是下载和安装大多数插件的方式:

cd /home/steam/gmodds/garrysmod/addons/
wget http://example.com/addon.zip
unzip addon.zip

替换http://example.com/addon.zip为插件所在位置的URL。您还需要更改addon.zip为附件的zip文件的名称。现在,该插件已下载并解压缩,您可以删除zip文件以节省空间,如下所示:

rm addon.zip

同样,用addon.zipzip文件的实际名称替换。

如果服务器当前正在运行,则需要使用Ctrl + C重新启动它,然后重新发出启动命令。您可以按键盘上的向上箭头以自动插入您最后运行的命令。

如果您失去SSH连接,则在重新连接时,您需要发出screen -r command,使您可以从上次所在的位置(游戏机)恢复。



Leave a Comment

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息