LAN Server/zh: Difference between revisions

From DDraceNetwork
Darkh (talk | contribs)
Created page with "== 在Linux上设置服务器 =="
FuzzyBot (talk | contribs)
Updating to match new version of source page
 
(72 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 ===


<div lang="en" dir="ltr" class="mw-content-ltr">
<div class="mw-translate-fuzzy">
{|- class="wikitable" style="width:100%;"
{|- class="wikitable" style="width:100%;"
| <div style=" display: flex; justify-content: space-between;"><div>Method 1 (Compiling server)</div> <div class="mw-customtoggle-methodOne" style="color:#0B0080;"><small>[Show/Hide]</small></div></div>
| <div style=" display: flex; justify-content: space-between;"><div>方法 1 (编译服务器)</div> <div class="mw-customtoggle-methodOne" style="color:#0B0080;"><small>[展开 / 折叠]</small></div></div>
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-methodOne"
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-methodOne"
| 1.Update the Server
| 1.上传服务器
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
* <code>sudo apt update && apt upgrade</code>
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
2. Install git
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
* <code>sudo apt install git</code>
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
3. Make a directory
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
* <code>mkdir DDNet-Server</code>
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
3. Clone the repository from Github
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
* <code>git clone --recursive --depth=1 <nowiki>https://github.com/ddnet/ddnet</nowiki></code>
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
4. Install all required dependencies
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
* <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>
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
5. Go into ddnet folder
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
* <code>cd ddnet</code>
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
5. Compile DDNet
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
* <code>mkdir build</code>
* <code>cd build</code>
* <code>cmake -DCLIENT=OFF ..</code>
* <code>make -j$(nproc)</code>
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
6. Open Server
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
* <code>./DDNet-Server</code>
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
7. forward a port to the server (default is 8303)
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
8. Connect via Client on the IP
If you follow the steps you will not only build the Server but also the Client. to disable that specify the following in your cmake command:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
* Press F1
<code>cmake .. -DCLIENT=OFF</code>
* connect "Server-IP"
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
9.Play
This will significantly decrease build time and wont build unneccessary files.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
More Information are available at https://github.com/ddnet/ddnet
|}
|}
</div>
</div>


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


<div lang="en" dir="ltr" class="mw-content-ltr">
2. 解压到文件夹
2. Extract into folder
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
3. 启动服务器
3. Open Server
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
* <code>./DDNet-Server</code>
* <code>./DDNet-Server</code>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
4. 转发服务器端口(默认为8303)
4. Forward a port to the server (default is 8303)
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
5.使用 IP 通过客户端连接
5. Connect via Client on the IP
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
* Press F1
* Press F1
* connect "Server-IP"
* connect "Server-IP"
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
6. 游玩
6. Play
|}
|}
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
关于端口转发可以参阅 http://portforward.com/
More Information about Port forwarding are available at http://portforward.com/
</div>


<span id="Server_Settings_and_Maps"></span>
== 服务器设置与地图 ==


<div lang="en" dir="ltr" class="mw-content-ltr">
您可以在 Teeworlds 文件夹中找到设置和地图引导。
== Server Settings and Maps ==
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
Everything settings and map-wise can be found in your Teeworlds folder.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div class="mw-translate-fuzzy">
* On Windows, you can find it in AppData/Roaming/Teeworlds.
* Windows系统:位于 AppData/Roaming/Teeworlds 路径下。
* On Linux, you can find it in (insert location here).
* Linux系统:(地址待定)。
* On Mac, you can find it in (insert location here).
* Mac系统:(地址待定)。
</div>
</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>




<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="See_also"></span>
== See also ==
== 另见 ==
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://wiki.archlinux.org/title/DDRaceNetwork#Server DDNet Server configuration in Arch Wiki]
* [https://wiki.archlinux.org/title/DDRaceNetwork#Server DDNet Server configuration in Arch Wiki]
* https://github.com/ddnet/ddnet-maps - DDNet maps repository
* https://github.com/ddnet/ddnet-maps - DDNet maps repository
</div>
[[Category:Tutorial{{#translation:}}]]
[[Category:Tutorial{{#translation:}}]]

Latest revision as of 11:45, 27 October 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 (编译服务器)
[展开 / 折叠]
1.上传服务器

If you follow the steps you will not only build the Server but also the Client. to disable that specify the following in your cmake command:

cmake .. -DCLIENT=OFF

This will significantly decrease build time and wont build unneccessary files.

方法 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/Roaming/Teeworlds 路径下。
  • Linux系统:(地址待定)。
  • Mac系统:(地址待定)。


服务器配置文件

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

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

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

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


服务器地图

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


另见