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


另見