设置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

在适用于Minecraft服务器的Ubuntu 14.04上安装MineOS

在适用于Minecraft服务器的Ubuntu 14.04上安装MineOS

MineOS是一个完整的Minecraft服务器平台,具有Web GUI,自动备份,存档,性能统计信息以及其他功能。配置

在CentOS 6上设置SA-MP San Andreas多人服务器

在CentOS 6上设置SA-MP San Andreas多人服务器

欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件

如何在Ubuntu 16.04上安装Unturned 2.2.5

如何在Ubuntu 16.04上安装Unturned 2.2.5

使用其他系统?简介在本指南中,您将学习如何在运行Ubuntu 16.04的Vultr VPS上设置Unturned 2.2.5服务器。注意:锡

如何安装ARK:Debian 9的生存进化

如何安装ARK:Debian 9的生存进化

简介在本指南中,您将学习如何在Vultr VPS上创建ARK:Survival Evolved服务器。要求Vultr VPS至少为8192 M

Ubuntu上的反恐精英全球攻势服务器启动器

Ubuntu上的反恐精英全球攻势服务器启动器

那些拥有专门的CS:GO(反恐精英:全球攻势)经验的人都知道,使用命令行界面进行管理的过程

如何在Minecraft中修复腐败的世界

如何在Minecraft中修复腐败的世界

有时,《我的世界》中的世界可能会崩溃。本文介绍了如何修复破碎的世界。不幸的是,腐败的世界无法修复

CentOS 6上的Multicraft(Minecraft面板)

CentOS 6上的Multicraft(Minecraft面板)

Multicraft面板Multicraft是用于Minecraft服务器的简单,易于使用的基于Web的控制面板。您可以创建,停止,启动,监视,配置,上传

在Windows上安装Reflex Server

在Windows上安装Reflex Server

简介Reflex是Turbo Pixel Studios推出的具有竞争力的竞技场FPS。本教程将向您展示如何在以下服务器上设置自己的Reflex服务器

如何在Debian 8上安装Unturned 2.2.5

如何在Debian 8上安装Unturned 2.2.5

在本指南中,您将学习如何在运行Debian 8的Vultr VPS上设置Unturned 2.2.5服务器。注意:这是Unturned的编辑版本,不会

设置反恐精英:Debian的全球攻势

设置反恐精英:Debian的全球攻势

在本指南中,我们将在Debian 7上设置《反恐精英:全球攻势》游戏服务器。这些命令已经在Debian 7上进行了测试,但应该也可以

如何在CentOS 6服务器上安装Forge和Sponge(Minecraft)

如何在CentOS 6服务器上安装Forge和Sponge(Minecraft)

使用其他系统?在本文中,我们将介绍安装Sponge(一种Minecraft服务器)的过程。海绵是一个旨在

如何安装反恐精英:CentOS 7上的全球攻势

如何安装反恐精英:CentOS 7上的全球攻势

在本教程中,我将介绍如何设置“反恐精英:全球攻势”服务器。本指南中的步骤是针对CentOS 7编写的。

如何在Ubuntu上安装Killing Floor Server

如何在Ubuntu上安装Killing Floor Server

在本教程中,您将学习如何设置自己的Killing Floor服务器。这些命令是为Ubuntu编写的,但可能会被其他Linu采用

在Ubuntu 14.10上安装McMyAdmin

在Ubuntu 14.10上安装McMyAdmin

McMyAdmin是用于管理服务器的Minecraft服务器控制面板。尽管McMyAdmin是免费的,但有多个版本,其中一些是pai

Linux上具有TShock的Terraria服务器

Linux上具有TShock的Terraria服务器

Terraria是基于采矿,建筑和战斗的MMORPG。有人说它是Minecraft的2D版本,但这对Terraria来说是不公平的

如何在CentOS 6/7上安装Tekkit Classic服务器

如何在CentOS 6/7上安装Tekkit Classic服务器

使用其他系统?在本教程中,很高兴创建Tekkit Classic服务器。Tekkit是为Minecraft制造的另一种流行的modpack。由于阿蒙

在CentOS 6上创建Dota 2服务器

在CentOS 6上创建Dota 2服务器

在本文中,我们将创建Dota 2服务器。Dota是Steam背后的Valve公司发行的免费多人游戏。提醒一下,

如何在Windows上安装Multicraft

如何在Windows上安装Multicraft

简介Multicraft是一个Minecraft服务器管理控制面板,用于管理您的Minecraft服务器。在本教程中,我们将安装

如何在Linux上未安装

如何在Linux上未安装

使用其他系统?简介在本指南中,您将学习如何在Linux上设置和安装Unturned服务器。幸免于难

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 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。