LAN Server/zh: Difference between revisions

From DDraceNetwork
Darkh (talk | contribs)
Created page with "您可以在 Teeworlds 文件夹中找到设置和地图引导。"
Darkh (talk | contribs)
No edit summary
 
(42 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages />
本地服务器是玩家在本地网络(比如家庭wifi)中建立的服务器,建立服务器的玩家拥有对这个服务器的完全控制权。


使用本地服务器的原因很多它能够让你做到:
LAN 本地服务器允许玩家作为服主在家庭网络中建立服务器,服主对服务器拥完全控制权


* 和朋友一起游玩时不受别人打扰
有许多原因会促使玩家创建本地服务器,例如无法忍受网络波动或者不希望游玩过程受他人影响。下面是一些本地服务器的优点:
 
* 在私下里和朋友一起游玩地图
* 游玩官方服务器中没有的地图
* 游玩官方服务器中没有的地图
* 用管理员指令和工具地图进行测试
* 用管理员指令和工具测试地图
* 以及更多
* 当然重点不是地图而是联机


然而,建立本地服务器仍然有许多缺点。你需一些特殊的方法来让你的朋友加入你的服务器,并且相比起官方服务器,其他玩家在你建立的本地服务器中会遭受多网络的影响注意本地服务器只会本地保存过图记录这意味着你在本地服务器中完成地图不会将记录同步到官方服务器
然而,本地服务器也存在缺点。做许多步骤才能允许朋友加入服务器,相比起官方服务器,不知哪一个连接稳定并且缺少官方认证的情况下,完成地图的成绩不会上传,只能在本地查看,您也无法获得通关排名




Line 22: Line 23:
# 打开游戏客户端的浏览服务器界面,在上方选择局域网,刷新后即可加入。
# 打开游戏客户端的浏览服务器界面,在上方选择局域网,刷新后即可加入。
# 进入游戏后,按f2打开服务器控制台rcon,然后输入密码来获得[[Special:MyLanguage/Settings and Commands|管理员指令]]的使用权限。
# 进入游戏后,按f2打开服务器控制台rcon,然后输入密码来获得[[Special:MyLanguage/Settings and Commands|管理员指令]]的使用权限。
# 介绍完毕


然而,这样建立的服务器只能够让处在同一局域网中的玩家加入。如果其他玩家不在你身旁,那么想要让他们加入就需要更多步骤。
然而,这样建立的服务器只能够让处在同一局域网中的玩家加入。如果其他玩家不在你身旁,那么想要让他们加入就需要更多步骤。
Line 43: Line 45:




<span id="Linux"></span>
=== Linux ===
=== Linux ===


{|- class="wikitable" style="width:100%;"
{| class="wikitable" style="width:100%;"
| <div style=" display: flex; justify-content: space-between;"><div>方法 1 (编译服务器)</div> <div class="mw-customtoggle-methodOne" style="color:#0B0080;"><small>[展开 / 折叠]</small></div></div>
| <div style=" display: flex; justify-content: space-between;"><div>方法 1 (编译服务器)</div></div>
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-methodOne"
|- class="mw-collapsible mw-collapsed"
| 1.上传服务器
|要从源码创建您的DDNet服务器,请参考下面的Github自述文件
 
*[https://github.com/ddnet/ddnet Github]
* <code>sudo apt update && apt upgrade</code>
 
2. 安装git
 
* <code>sudo apt install git</code>
 
3. 创建目录
 
* <code>mkdir DDNet-Server</code>
 
4. 复制Github上的库
 
* <code>git clone --recursive --depth=1 <nowiki>https://github.com/ddnet/ddnet</nowiki></code>
 
5. 安装依赖包
 
* <code>sudo apt install build-essential cmake git libcurl4-openssl-dev libssl-dev libfreetype6-dev libglew-dev libnotify-dev libogg-dev libopus-dev libopusfile-dev libpnglite-dev libsdl2-dev libsqlite3-dev libwavpack-dev python google-mock</code>
 
6. 进入 DDNet 文件夹
 
* <code>cd ddnet</code>
 
7. 编译 DDNet
 
* <code>mkdir build</code>
* <code>cd build</code>
* <code>cmake -DCLIENT=OFF ..</code>
* <code>make -j$(nproc)</code>
 
8. 服务器,启动!


* <code>./DDNet-Server</code>
如果您复刻这些步骤将会在建立服务器的同时运行客户端,要禁用后者需要将下面的代码添加进cmake命令中:


9. 转发服务器端口(默认为8303)
<code>cmake .. -DCLIENT=OFF</code>


10.使IP 通客户端连接
这样能够显著减少创建时并跳非必要文件的创建。
 
* Press F1
* connect "Server-IP"
 
11.游玩
 
更多内容参阅 [https://github.com/ddnet/ddnet github]
|}
|}


{|- class="wikitable" style="width:100%;"
{| class="wikitable" style="width:100%;"
| <div style=" display: flex; justify-content: space-between;"><div>方法 2 (使用预编译的二进制文件)</div> <div class="mw-customtoggle-methodTwo" style="color:#0B0080;"><small>[展开 / 折叠]</small></div></div>
| <div style=" display: flex; justify-content: space-between;"><div>方法 2 (使用预编译的二进制文件)</div></div>
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-methodTwo"
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-methodTwo"
| 1. 从[https://ddnet.org/downloads/ DDNet 下载页面(download page)]上下载二进制文件
| 1. 从[https://ddnet.org/downloads/ DDNet 下载页面(download page)]上下载二进制文件
Line 117: Line 83:


关于端口转发可以参阅 http://portforward.com/ 。
关于端口转发可以参阅 http://portforward.com/ 。


<span id="Server_Settings_and_Maps"></span>
<span id="Server_Settings_and_Maps"></span>
Line 124: Line 89:
您可以在 Teeworlds 文件夹中找到设置和地图引导。
您可以在 Teeworlds 文件夹中找到设置和地图引导。


<div lang="en" dir="ltr" class="mw-content-ltr">
* Windows系统:旧版位于 <code>%appdata%\Teeworlds</code> ,新版位于 <code>%appdata%\DDNet</code> 路径下。
* On Windows, you can find it in AppData/Roaming/Teeworlds.
* Linux系统:旧版位于 <code>~/.teeworlds</code> 新版位于 <code>~/.local/share/ddnet</code> 路径下。
* On Linux, you can find it in (insert location here).
* Mac系统:旧版位于 <code>%appdata%\Teeworlds</code> 新版位于 <code>%appdata%\DDNet</code> 路径下。
* On Mac, you can find it in (insert location here).
</div>




<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Server_Autoexecutables"></span>
=== Server Autoexecutables ===
=== 服务器配置文件 ===
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
服务器配置文件中包含了启动服务器时自动运行的设置和指令,例如将随机的服务器管理员密码改为固定密码。
Server autoexecutables are files containing server settings that are automatically run every time you start your server. For example, this can be helpful if you want to keep a single rcon password to log in with every time.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
首先进入 Teeworlds 文件夹'''而非''' DDNet 文件夹,创建一个名为 '''autoexec_server.cfg''' 的文本文件,确保后缀完全一致。
To create an autoexecutable, navigate to your Teeworlds folder (not your DDNet folder!), and create a file by the name of "autoexec_server.cfg". Make sure it is a .cfg extension file and not a .txt file or anything similar.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
编辑该文件可以快速增加命令,每条命令独自占据一行。下面给出常见命令的示例:
To add commands, simply edit the autoexec_server.cfg file and add each command on a new line. Here are examples of commonly used commands:
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
* 设置管理员密码:<code>sv_rcon_password <密码></code>
* sv_rcon_password <rcon password>
* 设置进入服务器密码:<code>sv_password <密码></code>
* sv_password <password to join>
* 设置服务器名字:<code>sv_name <名字></code>
* sv_name <server name>
* 在互联网列表公开服务器:<code>sv_register 1</code>
* sv_register 1 (shows the server on the Internet tab)
* 允许使用作弊指令:<code>sv_test_cmds 1</code>
* sv_test_cmds 1 (allows the use of cheat commands)
</div>




<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Server_Maps"></span>
=== Server Maps ===
=== 服务器地图 ===
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
服务器地图保存在 Teeworlds/maps 路径中,加载服务器地图可以使用服务器命令<code>sv_map <地图名></code>
Server maps can be found in Teeworlds/maps. To load a map ingame, use the server command <code>sv_map <mapname></code>.
</div>





Latest revision as of 12:02, 16 November 2024

LAN 本地服务器允许玩家作为服主在家庭网络中建立服务器,服主对服务器拥有完全控制权。

有许多原因会促使玩家创建本地服务器,例如无法忍受网络波动或者不希望游玩过程受他人影响。下面是一些本地服务器的优点:

  • 在私下里和朋友一起游玩地图
  • 游玩官方服务器中没有的地图
  • 用管理员指令和工具测试地图
  • 当然重点不是地图而是联机!

然而,本地服务器也存在缺点。您要做许多步骤才能允许朋友加入服务器,相比起官方服务器,不知哪一个连接更稳定。并且在缺少官方认证的情况下,完成地图的成绩不会上传,只能在本地查看,您也无法获得通关排名。


建立和加入本地服务器

在新版DDNet客户端中,建立本地服务器非常简单。

  1. 找到游戏的开始菜单
  2. 点击“运行服务器”
    • 一个黑底白字的命令行窗口会弹出(这可能需要一小段时间)。从这个窗口中复制rcon的密码(也可以在游戏路径的autoexecserver.cfg文件中查看并设置)。
  3. 打开游戏客户端的浏览服务器界面,在上方选择局域网,刷新后即可加入。
  4. 进入游戏后,按f2打开服务器控制台rcon,然后输入密码来获得管理员指令的使用权限。
  5. 介绍完毕

然而,这样建立的服务器只能够让处在同一局域网中的玩家加入。如果其他玩家不在你身旁,那么想要让他们加入就需要更多步骤。


让本地服务器连接至公网

这一步需要你进行端口映射,其方式取决于你的路由器品牌和类型。

  1. 在路由器上映射或者转发UDP端口8303。
    • 浏览器上一般都有关于端口映射或者转发的教程。内容通常会涉及到登录浏览器接口,不同的家庭各有所异。
    • 确保设置中使用了UDP协议而不是TCP或者两者共用。
    • DDNet默认使用8303端口,如果您对于服务器足够熟悉,也可以通过更改服务器配置文件中的sv_port参数来使用其它端口。
  2. 在 F2 服务器控制台或者服务器配置文件中使用sv_register 1可以让您的服务器出现在游戏服务器界面的互联网列表中。注意这么做会公开您的家庭网络IP,具有一定风险。

一些网络运营商会使用电信级NAT而不提供本地 IPv4 地址的完整级别保护,因此可能无法使用端口转发,以上将服务器联网的方法变得不可用。(关于 IPV6 的方法此处不涉及。)

在Linux上设置服务器

Linux

方法 1 (编译服务器)
要从源码创建您的DDNet服务器,请参考下面的Github自述文件

如果您复刻这些步骤将会在建立服务器的同时运行客户端,要禁用后者需要将下面的代码添加进cmake命令中:

cmake .. -DCLIENT=OFF

这样能够显著减少创建用时并跳过非必要文件的创建。

方法 2 (使用预编译的二进制文件)
1. 从DDNet 下载页面(download page)上下载二进制文件

2. 解压到文件夹

3. 启动服务器

  • ./DDNet-Server

4. 转发服务器端口(默认为8303)

5.使用 IP 通过客户端连接

  • Press F1
  • connect "Server-IP"

6. 游玩

关于端口转发可以参阅 http://portforward.com/

服务器设置与地图

您可以在 Teeworlds 文件夹中找到设置和地图引导。

  • Windows系统:旧版位于 %appdata%\Teeworlds ,新版位于 %appdata%\DDNet 路径下。
  • Linux系统:旧版位于 ~/.teeworlds 新版位于 ~/.local/share/ddnet 路径下。
  • Mac系统:旧版位于 %appdata%\Teeworlds 新版位于 %appdata%\DDNet 路径下。


服务器配置文件

服务器配置文件中包含了启动服务器时自动运行的设置和指令,例如将随机的服务器管理员密码改为固定密码。

首先进入 Teeworlds 文件夹而非 DDNet 文件夹,创建一个名为 autoexec_server.cfg 的文本文件,确保后缀完全一致。

编辑该文件可以快速增加命令,每条命令独自占据一行。下面给出常见命令的示例:

  • 设置管理员密码:sv_rcon_password <密码>
  • 设置进入服务器密码:sv_password <密码>
  • 设置服务器名字:sv_name <名字>
  • 在互联网列表公开服务器:sv_register 1
  • 允许使用作弊指令:sv_test_cmds 1


服务器地图

服务器地图保存在 Teeworlds/maps 路径中,加载服务器地图可以使用服务器命令sv_map <地图名>


另见