LAN Server/zh: Difference between revisions

From DDraceNetwork
EdEnd (talk | contribs)
Created page with "然而,建立本地服务器仍然有许多缺点。你需要一些特殊的方法来让你的朋友加入你的服务器,并且相比起官方服务器,其他玩家在你建立的本地服务器中会遭受更多网络的影响。注意本地服务器只会在本地保存过图记录,这意味着你在本地服务器中完成地图并不会将记录同步到官方服务器。"
Darkh (talk | contribs)
No edit summary
 
(86 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages />
本地服务器是玩家在本地网络(比如家庭wifi)中建立的服务器,建立服务器的玩家拥有对这个服务器的完全控制权。


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


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


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




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


<div lang="en" dir="ltr" class="mw-content-ltr">
# 找到游戏的开始菜单
# Navigate to the main menu
# 点击“运行服务器”
# Click on "Start Server"
#* 一个黑底白字的命令行窗口会弹出(这可能需要一小段时间)。从这个窗口中复制rcon的密码(也可以在游戏路径的autoexecserver.cfg文件中查看并设置)。
#* A black console window should pop up (this might take a moment). Copy the rcon password from this window.
# 打开游戏客户端的浏览服务器界面,在上方选择局域网,刷新后即可加入。
# Navigate to the server browser, and join the new server in the LAN tab
# 进入游戏后,按f2打开服务器控制台rcon,然后输入密码来获得[[Special:MyLanguage/Settings and Commands|管理员指令]]的使用权限。
# After joining, press f2 to open the in-game server console and enter in your rcon password from earlier to get access to [[Special:MyLanguage/Settings and Commands|admin commands.]]
# 介绍完毕
# You're done!
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
然而,这样建立的服务器只能够让处在同一局域网中的玩家加入。如果其他玩家不在你身旁,那么想要让他们加入就需要更多步骤。
However, this only allows players on your local network to join. In other words - nobody else except you can join this LAN server online. To allow players to join online, you'll have to go through more steps.
</div>




<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Setting_Up_Your_LAN_Server_for_Online_Play"></span>
== Setting Up Your LAN Server for Online Play ==
== 让本地服务器连接至公网 ==
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
这一步需要你进行端口映射,其方式取决于你的路由器品牌和类型。
This next step requires you to port forward, which depends on the brand and type of router you have.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
# 在路由器上映射或者转发UDP端口8303。
# Port forward the UDP port 8303 through your router.
#* 浏览器上一般都有关于端口映射或者转发的教程。内容通常会涉及到登录浏览器接口,不同的家庭各有所异。
#* The easiest way to do this is to simply search "how to port forward" in your preferred search engine. This process usually requires you to log into your router interface, which, again, varies per household.
#* 确保设置中使用了UDP协议而不是TCP或者两者共用。
#* Make sure to choose the UDP setting, and not the TCP or the TCP/UDP setting.
#* DDNet默认使用8303端口,如果您对于服务器足够熟悉,也可以通过更改服务器配置文件中的<code>sv_port</code>参数来使用其它端口。
#* You can forward a port other than 8303 if you set up the desired port using <code>sv_port</code> in your server autoexecutable. However, the default port is 8303 for DDNet. So, if you're not sure what you're doing, just forward port 8303.
# 在 F2 服务器控制台或者服务器配置文件中使用<code>sv_register 1</code>可以让您的服务器出现在游戏服务器界面的互联网列表中。注意这么做会'''公开'''您的家庭网络IP,具有一定风险。
# If you'd like your server to show up on the Internet tab, use the server setting <code>sv_register 1</code>, either in the f2 console or in the server autoexecutable. Note that this '''will''' make your IP publicly viewable if you host the server from your home network. So, use at your own risk.
Some ISPs might not provide you with a full native IPv4 address, but instead use carrier-grade NAT, and will thus not support forwarding ports. In this case you can't make your LAN server available for online play.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
一些网络运营商会使用电信级NAT而不提供本地 IPv4 地址的完整级别保护,因此可能无法使用端口转发,以上将服务器联网的方法变得不可用。(关于 IPV6 的方法此处不涉及。)
== Setting Up on Linux Server ==
</div>


<span id="Setting_Up_on_Linux_Server"></span>
== 在Linux上设置服务器 ==


<div lang="en" dir="ltr" class="mw-content-ltr">
 
<span id="Linux"></span>
=== Linux ===
=== Linux ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
{|- 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>
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-methodOne"
| 1.Update the Server
</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">
{| class="wikitable" style="width:100%;"
4. Install all required dependencies
| <div style=" display: flex; justify-content: space-between;"><div>方法 1 (编译服务器)</div></div>
</div>
|- class="mw-collapsible mw-collapsed"
|要从源码创建您的DDNet服务器,请参考下面的Github自述文件
*[https://github.com/ddnet/ddnet Github]


<div lang="en" dir="ltr" class="mw-content-ltr">
如果您复刻这些步骤将会在建立服务器的同时运行客户端,要禁用后者需要将下面的代码添加进cmake命令中:
* <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">
<code>cmake .. -DCLIENT=OFF</code>
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 lang="en" dir="ltr" class="mw-content-ltr">
8. Connect via Client on the IP
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
* Press F1
* connect "Server-IP"
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
9.Play
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
More Information are available at https://github.com/ddnet/ddnet
|}
|}
</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>方法 2 (使用预编译的二进制文件)</div></div>
| <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>
|- 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">
More Information about Port forwarding are available at http://portforward.com/
</div>


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


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Server_Settings_and_Maps"></span>
== Server Settings and Maps ==
== 服务器设置与地图 ==
</div>


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


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




<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 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 <地图名>


另见