mirror of
https://github.com/BeamMP/Docs.git
synced 2026-05-19 08:10:50 +00:00
Translate create-a-server.md via GitLocalize
This commit is contained in:
@@ -0,0 +1,291 @@
|
||||
# 服务器端的安装
|
||||
|
||||
## **创建服务器**
|
||||
|
||||
设置服务器应用程序的基础知识
|
||||
|
||||
---
|
||||
|
||||
### **概述**
|
||||
|
||||
**创建一个家里云是免费的,但是托管一个VPS更容易也更安全**
|
||||
|
||||
服务器是BeamMP的一个组成部分;玩家通过服务器相互连接。它们在Windows和Linux上本机运行。
|
||||
|
||||
你可以制作私人服务器,只有你邀请的人才能加入,或者设置为公共服务器,显示在我们的官方服务器列表中。
|
||||
|
||||
让服务器上线运行需要经过几个步骤!如果遇到任何问题,可以随时在我们的 [论坛](https://forum.beammp.com) 或 [Discord 服务器](https://discord.gg/beammp) 的 `#support` 频道提问。更多信息也可参考 [服务器维护](server-maintenance.md) 部分。
|
||||
|
||||
请在使用服务器前务必阅读 [许可协议](https://raw.githubusercontent.com/BeamMP/BeamMP-Server/master/LICENSE)。
|
||||
|
||||
*服务器仅支持 IPv4。如果你不确定自己使用的是哪种协议,可以查看在 [*whatsmyip.org*](https://www.whatsmyip.org/) 上看到的 IP 地址——如果它包含 `:` *冒号,则为 **IPv6**。在这种情况下,你需要进一步确认自己是否也拥有 IPv4。你可以联系你的 ISP 查询,或者问问与你同住的人(如果他们懂技术,可能知道!)。计划将来支持 IPv6。**
|
||||
|
||||
## 设置服务器
|
||||
|
||||
设置包括以下步骤,您应该遵循所有步骤。
|
||||
|
||||
### **1. 端口转发**
|
||||
|
||||
!!! info
|
||||
|
||||
```
|
||||
如果你使用的是 VPS(虚拟专用服务器)、Rootserver,或者计划在本地托管服务器(与家里其他玩家在同一屋檐下),可以跳过此步骤。
|
||||
如果你希望家外的人加入你本地托管的服务器(即在本地网络之外),则必须执行此步骤。
|
||||
|
||||
!!! danger ":material-scale-balance: 免责声明:"
|
||||
|
||||
**端口转发存在风险**.
|
||||
|
||||
进行端口转发意味着你理解将家庭网络端口向公众开放的风险,因此 BeamMP 对你或你家庭可能发生的**任何和所有**损害不承担责任。
|
||||
|
||||
我们不对任何外部链接服务或网站上的内容负责。
|
||||
|
||||
因此,建议使用我们的合作服务来托管服务器!
|
||||
|
||||
*请参阅 [端口转发指南]了解详细操作(port-forwarding.md)*
|
||||
```
|
||||
|
||||
#### 合作托管服务(付费):
|
||||
|
||||
- [Horizon Hosting](https://hrzn.link/beammp)
|
||||
- [RackGenius](https://rackgeni.us/beammp-plans)
|
||||
- [Connect Hosting](https://connecthosting.net/beammp)
|
||||
- [Assetto Hosting](https://assettohosting.com/en/games/beamng)
|
||||
- [ZAP-Hosting](https://zap-hosting.com/itsbeammp)
|
||||
- [HostHavoc](https://hosthavoc.com/)
|
||||
- [PedalHost](https://pedal.host/)
|
||||
- [Vyper Hosting](https://vyperhosting.com/r/beammp)
|
||||
- [BisectHosting](https://www.bisecthosting.com/beammp-server-hosting)
|
||||
- [Four Seasons Hosting](https://fourseasonshosting.com)
|
||||
- [Vertuo Hosting](https://vertuohosting.com)
|
||||
- [Winheberg](https://winheberg.fr/offres/gaming/beammp?lang=en)
|
||||
- [Wabbanode](https://wabbanode.com/partner/beammp)
|
||||
- [Iceline Hosting](https://iceline-hosting.com/games/beammp)
|
||||
|
||||
#### 1.1 防火墙
|
||||
|
||||
根据你的设置,你可能需要允许 BeamMP-Server 通过防火墙。在 Windows 上通常需要这样操作(关闭防火墙通常 **无效**),在许多预装的 Linux 服务器上也是如此
|
||||
|
||||
在这里,你需要允许 BeamMP-Server 通过防火墙,**包括入站和出站连接**,并且 **包括 TCP 和 UDP**。如果防火墙要求指定端口,则必须使用你在步骤“1. 端口转发”中使用的相同端口(通常为 30814)。
|
||||
|
||||
如需更详细的指南,请参阅 [此文档页面](https://docs.beammp.com/FAQ/Defender-exclusions/)。<br>如果遇到问题,也欢迎随时在我们的 [论坛](https://forum.beammp.com) 或 [Discord 服务器](https://discord.gg/beammp) 的 `#support` 频道中提问。
|
||||
|
||||
### **2. 获取认证密钥**
|
||||
|
||||
‘认证密钥’,通常称为 ‘AuthKey’,是使 **公共** 服务器可以通过服务器列表访问所必需的。虽然也建议将 AuthKey 添加到私人服务器。你拥有的密钥数量有限。一个密钥一次只能用于一台服务器,因此不能用同一个密钥同时启动两台服务器。通过支持该项目可以获得更多密钥。更多信息请参阅 [这篇文章](https://docs.beammp.com/support/player-faq/)。
|
||||
|
||||
!!! 警告
|
||||
|
||||
```
|
||||
千万不要把密钥给别人看,把它当作密码!
|
||||
```
|
||||
|
||||
此步骤需要一个 [Discord](https://discord.com) 账号。此举是为了防止垃圾信息。
|
||||
|
||||
#### 2.1. 访问密钥页面
|
||||
|
||||
通过 Discord 登录至 [Keymaster](https://keymaster.beammp.com)。在 Keymaster 主页中,点击屏幕左侧的“Keys(密钥)”:
|
||||
|
||||
<figure markdown="">  </figure>
|
||||
|
||||
#### 2.2. 创建密钥
|
||||
|
||||
要创建密钥,请单击右上角的绿色“+”按钮。
|
||||
|
||||
<figure markdown="">  </figure>
|
||||
|
||||
#### 2.3. 填写关键信息
|
||||
|
||||
接下来,填写服务器名称字段(这只是密钥的名称,而不是服务器列表上显示的实际名称),然后点击“Create”。范例:
|
||||
|
||||
<figure class="image image_resized" style="width:44.84%;" markdown="">  </figure>
|
||||
|
||||
最后,它看起来应该是这样的:
|
||||
|
||||
<figure markdown="">  </figure>
|
||||
|
||||
#### 2.4. 复制密钥
|
||||
|
||||
现在复制“Key”字段中的文本,在此范例中为 `3173a2e-6az0-4542-a3p0-ddqq5ff95558`,并保存以便下一步使用。你可以点击密钥右侧的剪贴板图标来完成复制:
|
||||
|
||||
<figure markdown="">  </figure>
|
||||
|
||||
### **3. 安装**
|
||||
|
||||
BeamMP-Server适用于Windows和Linux。接下来的两节分别介绍Windows和Linux。
|
||||
|
||||
#### 3.a. 安装在Windows上
|
||||
|
||||
对于Linux安装,请参见下一步。
|
||||
|
||||
在尝试在家托管服务器之前,请确保已完成端口转发!如果端口未转发,你将无法向公众托管服务器!
|
||||
|
||||
1. 请确保已安装 [Visual C++ 可再发行组件](https://aka.ms/vs/17/release/vc_redist.x64.exe) 以运行服务器。
|
||||
2. 从 [beammp.com](https://www.beammp.com/) 下载服务器可执行文件。你将得到一个可执行文件,名称类似于 `BeamMP-Server.exe`。
|
||||
3. 下载完成后,在某个位置创建一个文件夹,并将 `BeamMP-Server.exe` 放入其中。这就是你的服务器端所在的位置。
|
||||
4. 双击启动服务器一次。这将为你生成所有必要的文件,当你看到文本输出后即可关闭并进行下一步。你应该会在 `BeamMP-Server.exe` 旁看到一个 `ServerConfig.toml` 文件。
|
||||
5. (可选)为了日后快速访问,你可以轻松为 `BeamMP-Server.exe` 创建桌面快捷方式,方法是 **[右键点击]** > **发送到** > **桌面(创建快捷方式)**。
|
||||
|
||||
现在继续进行步骤 [4. 配置](#4-configuration)。
|
||||
|
||||
#### 3.b. 在Linux上安装
|
||||
|
||||
##### 使用我们的版本(推荐)
|
||||
|
||||
此步骤适用于我们在 [此处](https://github.com/BeamMP/BeamMP-Server/releases/latest) 提供二进制文件的所有发行版。如果你使用的是其他发行版或架构,请参考下方的“从源码构建”步骤。
|
||||
|
||||
1. 请确保已安装列在 [此处](https://github.com/BeamMP/BeamMP-Server#runtime-dependencies) 的依赖项。
|
||||
2. 访问 [beammp.com](https://beammp.com/) 并点击“Download Server”按钮,你将被重定向到服务器的 Github 发布页面。
|
||||
3. 下载与你的发行版对应的正确版本。为了简便起见,今后将其称为 `BeamMP-Server-xxx`,其中 `xxx` 表示你所使用发行版的版本。
|
||||
4. 下载完成后,你应该会看到一个名为 `BeamMP-Server-xxx` 的文件,其他文件暂时可以忽略。在某个位置创建一个文件夹,并将 `BeamMP-Server-xxx` 放入其中。这就是你的服务器所在的位置。
|
||||
5. 打开终端,进入你放置 `BeamMP-Server-xxx` 的文件夹,并运行 `chmod +x BeamMP-Server-xxx`。这可以确保你有权限运行它。
|
||||
6. 运行 `./BeamMP-Server-xxx` 启动服务器一次。这将为你生成所有必要的文件,当你看到文本输出后即可关闭并进行下一步。你应该会在 `BeamMP-Server-xxx` 旁看到一个 `ServerConfig.toml` 文件。
|
||||
7. 可选)强烈建议创建一个名为 `beammpserver`(或类似名称)的用户,因为我们不建议以 root、sudo 或你的个人用户账号运行服务器。之后,你应采取措施确保服务器仅以该用户身份启动。
|
||||
|
||||
现在继续进行步骤“4. 配置”。
|
||||
|
||||
##### 从源码编译
|
||||
|
||||
除了我们在 [此处](https://github.com/BeamMP/BeamMP-Server/releases/latest) 提供二进制文件的发行版外,其他发行版也可能可用,但不在官方支持范围内。如果你想自行编译,可以从我们的 [GitHub](https://github.com/BeamMP/BeamMP-Server) 下载源码,教程可在 [此处](https://github.com/BeamMP/BeamMP-Server#build-instructions) 找到。
|
||||
|
||||
最后,确保运行一次服务器:`./BeamMP-Server`,然后继续进行下一步。
|
||||
|
||||
### **4. 配置**
|
||||
|
||||
现在你已经运行过一次服务器,它应该已经生成了一些文件,并可能出现了一两个错误。这是正常的,因为我们还没有完成。你的文件夹中应该包含以下文件:
|
||||
|
||||
<figure markdown="">  </figure>
|
||||
|
||||
它们分别是 ‘ServerConfig.toml’、‘Server.log’ 和 ‘BeamMP-Server.exe’!(根据你的设置,你可能看不到 [.toml]、[.log]、[.exe] 后缀)
|
||||
|
||||
使用文本编辑器(例如 `Notepad`)打开 `ServerConfig.toml`。你可以通过 [右键点击] → “打开方式…” 然后选择文本编辑器来完成此操作。
|
||||
|
||||
以下是一个示例配置:
|
||||
|
||||
```TOML
|
||||
[General]
|
||||
Port = 30814
|
||||
AuthKey = "auth-key"
|
||||
AllowGuests = false
|
||||
LogChat = false
|
||||
Debug = false
|
||||
IP = "::"
|
||||
Private = true
|
||||
InformationPacket = true
|
||||
Name = "Test Server"
|
||||
Tags = "Freeroam,Modded,Racing,Police"
|
||||
MaxCars = 2
|
||||
MaxPlayers = 10
|
||||
Map = "/levels/ks_nord/info.json"
|
||||
Description = "Total Random Beam MP Server"
|
||||
ResourceFolder = "Resources"
|
||||
```
|
||||
|
||||
!!! info
|
||||
|
||||
```
|
||||
这是您的配置文件。它采用了一种名为 TOML的格式。有关该文件及其变量的更多信息,请参考 [Server Maintenance(服务器维护)](server-maintenance.md) 章节。
|
||||
|
||||
只要设置了`Private = true`,您的服务器就不会出现在服务器列表中。如果您希望服务器在列表中显示,请将其设置为`Private = false`。
|
||||
```
|
||||
|
||||
目前,我们只需要关注 `AuthKey`字段。请将你在第一步中复制的AuthKey粘贴到引号 `''`之间。
|
||||
|
||||
对于我们的范例密钥,它应该是这样的:
|
||||
|
||||
```TOML
|
||||
AuthKey = '3173a2e-6az0-4542-a3p0-ddqq5ff95558'
|
||||
```
|
||||
|
||||
同时,请在`Name`字段中为您的服务器命名。您可以为其设置颜色或其他样式,具体请参考服务器维护页面中关于[名称自定义的章节](server-maintenance.md#customize-the-look-of-your-server-name)。
|
||||
|
||||
如果你选择了除 **30814** 之外的其他 **端口**,请确保在 `Port` 下进行替换。
|
||||
|
||||
### **5. 验证**
|
||||
|
||||
现在再次运行你的服务器,看看是否还会出现 `[ERROR]` 或 `[WARN]` 消息。此时服务器应该会保持开启状态。在下面的步骤(6.)中,你可以了解如何加入服务器。
|
||||
|
||||
---
|
||||
|
||||
#### 5.1 怎么添加模组到我的服务器中
|
||||
|
||||
车辆模组和地图模组的安装方式不同,但都需要将它们放入服务器的 (`Resources/Client`) 文件夹中。只需将你想添加的模组放入该文件夹即可。
|
||||
|
||||
!!! 警告
|
||||
|
||||
```
|
||||
如果在添加模组后尝试加入服务器时收到“done”或“start”消息,很可能是因为你向服务器添加了不兼容或损坏的模组。
|
||||
模组之间也可能存在不兼容的情况。如果你在客户端安装了模组,请查阅本指南
|
||||
了解如何从游戏中移除模组。
|
||||
```
|
||||
|
||||
#### 5.2 一般的模组
|
||||
|
||||
如果你只想添加带模组的车辆,只需将模组的 zip 文件放入 `Resources/Client` 文件夹。加入你服务器的任何人都会自动下载这些模组。
|
||||
|
||||
#### 5.3 地图
|
||||
|
||||
所有默认地图(非模组的地图)都可以开箱即用,无需安装。您只需在 `ServerConfig.toml` 文件中将 `Map` 设置更改为 [这些](server-maintenance.md#all-vanilla-maps-names) 中的任意一个。对于任何其他模组地图,请执行以下操作:
|
||||
|
||||
1. 将你的地图 `.zip` 文件放入服务器的 (`Resources/Client`) 文件夹中。
|
||||
2. 接下来,查看地图的 zip 文件内容(不要解压),并打开 `levels` 文件夹。在此文件夹中,应仅有一个以地图名称命名的子文件夹,例如 “myawesomedriftmap2021”。请确保 *完全按照该文件夹的名称复制或记住这个名称*。
|
||||
3. 打开你的 `ServerConfig.toml`。在 `Map` 设置中,你应该会看到 `/levels/MAPNAME/info.json`,其中 `MAPNAME` 可能类似于 `gridmap_v2`。现在,你需要将此 `MAPNAME` 替换为上一步中子文件夹的名称,在本例中是 `myawesomedriftmap2021`。最终它应像下面这样(以本例为例),并且 ***必须*** 在末尾保留 `/info.json`。
|
||||
|
||||
```TOML
|
||||
Map = '/levels/myawesomedriftmap2021/info.json'
|
||||
```
|
||||
|
||||
现在,当有人加入你的服务器时,地图应会自动下载并正常运行。
|
||||
|
||||
**如果这不起作用**,请在你的单人模式 BeamNG.drive 中安装该地图,启动并进入地图。然后,通过按 `~`(*波浪号*)键打开控制台(如果你使用非美式键盘,请在 **选项 > 控制 > 绑定** 菜单的 **通用调试** 部分中查看 **切换系统控制台** 的操作),并运行 `print(getMissionFilename())`。这样就会显示你需要使用的地图名称。
|
||||
|
||||
就这样!你添加的模组地图现在应该可以加入了!
|
||||
|
||||
### **6. 怎么加入你的服务器**
|
||||
|
||||
你和其他玩家如何加入你的服务器。
|
||||
|
||||
#### 6.a. 加入您自己的服务器(私有和公共)
|
||||
|
||||
如果你的服务器与游戏运行在同一台电脑上,你必须通过直接连接加入服务器。为此,请在服务器列表左侧点击 **Direct Connect Tab**。保持默认信息(应为 127.0.0.1 及对应端口),然后点击连接。
|
||||
|
||||
如果你的服务器托管在本地网络中的另一台电脑上,你必须找到该电脑的本地 IP,并使用该本地 IP 进行直接连接。
|
||||
|
||||
如果你的服务器托管在家外(例如 VPS),你必须找到该机器的 [公网 IP](https://whatismyipaddress.com/) 并通过该方式进行直接连接。
|
||||
|
||||
#### 6.b. 其他人加入您的私人服务器
|
||||
|
||||
你必须将服务器的公网 IP 地址提供给其他用户。但请注意,不要随意将你的公网 IP 地址分享给陌生人!要加入你的私人服务器,玩家必须在 BeamMP 中进入 **Direct Connect Tab**,然后输入你的 IP 和端口。
|
||||
|
||||
#### 6.c. 其他人加入您的公共服务器
|
||||
|
||||
若要加入您的公开服务器,其他玩家只需前往服务器列表,输入服务器名称并点击连接即可。如果您不确定自己的服务器名称,请查看您在 `ServerConfig.toml`中填写的名称。<br>如果找不到服务器,请确保已禁用所有搜索过滤器,并将地图设置为“全部”。您也可以前往 [Keymaster](https://keymaster.beammp.com/) 网站查看服务器的 IP 地址。
|
||||
|
||||
如果你或你的朋友遇到“Connection Failed!”错误,请查看启动器窗口中的代码,如 10060、10061、10030。这意味着你要么使用了 CGNAT IPv4,要么在步骤 **1 端口转发** 或 **1.1 防火墙** 中操作有误。要检查是否使用 CGNAT IPv4,请在路由器界面上查看 WAN IP 地址,并将其与你的 [公网 IP](https://www.whatsmyip.org/) 进行比较。如果两者相同,则表示你不在 CGNAT 后面。IPv6 支持尚未 **实现**。
|
||||
|
||||
### **7. 如何检查您的BeamMP-Server的连通性**
|
||||
|
||||
在下方输入服务器的公网 IPv4 和端口,然后点击“CheckBeamMP”。
|
||||
|
||||
<form action="https://check.beammp.com/api/v2/beammp" method="get" target="_blank">
|
||||
<label for="ip">IP 地址:</label>
|
||||
<input type="text" id="ip" name="ip"><br>
|
||||
<label for="port">端口:</label>
|
||||
<input type="text" id="port" name="port"><br>
|
||||
<input type="submit" value="CheckBeamMP">
|
||||
</form>
|
||||
|
||||
!!! warning "我想使用 RadminVPN、Hamachi 或类似的 VPN。"
|
||||
|
||||
```
|
||||
BeamMP 不支持这些 VPN,因为它们经常引发问题。其中一个问题是 UDP 流量无法转发。要解决此问题,请参考第 1 节。
|
||||
|
||||
!!! question "那为什么以前可以用?"
|
||||
|
||||
这是因为这些应用程序的开发者更新了软件并实施了 BeamMP 无法控制的更改。
|
||||
是否支持像 BeamMP-Server 这样的特定使用场景,由这些应用程序的开发者决定。
|
||||
```
|
||||
|
||||
## 还有问题吗?
|
||||
|
||||
在 [论坛](https://forum.beammp.com) 或我们的 [Discord 服务器](https://discord.gg/beammp) 的 `#support` 频道中发起一个讨论帖。
|
||||
Reference in New Issue
Block a user