指南:建立泰拉瑞亚服务器

来自Terraria Wiki
跳转至: 导航搜索

此页面将引导你在局域网或互联网上调试并运行自己的泰拉瑞亚多人服务器1.3版本后,玩家还可以从Steam上建立多人游戏。更多信息详见指南:建立 Steam 多人游戏

为便于参考,本指南按操作系统细分:Windows和Linux/MacOS

准备网络[编辑 | 编辑源代码]

在设置服务器之前,如果服务器是在家庭网络里,需要考虑可能要改变网络。

  • 为运行服务器的计算机分配静态IP地址。这不太可能,但是如果你不这样做,那么路由器可能会在使用服务器时重新分配计算机的IP地址,这会干扰你与它的连接。想知道如何这样操作路由器,见你的路由器手册或搜索“如何设置静态IP <你的路由器型号>”。
  • 如果某人要从本地网络以外的地方连接服务器(又名“互联网上”),就需要转发服务器的端口。另外,确保在路由器上为服务器计算机分配了静态IP。请参阅下文,了解如何转发端口。

打开可通过公共IP访问的端口:[编辑 | 编辑源代码]

Windows[编辑 | 编辑源代码]

局域网:[编辑 | 编辑源代码]

  • 从开始按钮里,去Program Files>Accessories>Command Prompt。会显示一个名为命令提示符的新窗口。
  • 键入“ipconfig”去掉引号,按下回车。会显示类似这里截图的某些信息。Command prompt.jpg
  • 找到Ethernet Adapter Local Area Connection'或'Wireless LAN adapter Wireless Network Connection 2',找到'IPv4 Address',这就是本地网络上你电脑的IP地址。这个窗口还会显示其他信息,包括默认网关。需要默认网关来在火狐或谷歌浏览器里设置路由器。

设立服务器[编辑 | 编辑源代码]

首先,决定是想要开始“开服并开始游戏”多人游戏,还是使用已有的服务器游戏。见多人模式条目有解释这其中的差异。

设立“开服并开始游戏”服务器[编辑 | 编辑源代码]

这是多人游戏最简单的方法,在家庭局域网下或简短的在线合作游戏下效果很好。启动泰拉瑞亚,在主菜单里,选择“多人游戏”,然后是“开服并开始游戏”。选择要玩的世界(或者新建一个),然后输入密码(或留空,如果不想要密码)。

首次启动专用服务器[编辑 | 编辑源代码]

Guide setting up a server 01.png 要首次启动服务器,我们不用担心配置文件,因为泰拉瑞亚服务器文件有个很好的多步向导,可以让它快速运行。

也可以直接从terraria.org下载专用服务器文件,点击页面底部的“专用服务器”链接。

首先,尝试不用设置文件来设置服务器。这样做要搜索泰拉瑞亚下载的那个文件夹,找到TerrariaServer.exe并运行。会打开一个窗口,显示服务器控件界面。可以在此处输入命令或查看信息。运行时,需要选择一个世界,列出现存在电脑里的所有世界。窗口还会给出创造或删除世界的选项。创造新世界时,按照窗口中的说明更改世界一代的某些方面。

注:默认下,泰拉瑞亚会保持所有世界在“C:\Users\UserName\Documents\MyGames\Terraria\Worlds”里。

使用配置文件设置专用服务器[编辑 | 编辑源代码]

要使用预先配置的文件运行服务器,要搜索泰拉瑞亚下载的那个文件夹,然后运行“TerrariaServer.exe -config <serverconfigfile>”,而<serverconfigfile>就是配置文件。

  1. 使用cmd,进入泰拉瑞亚文件夹,键入“TerrariaServer.exe -config <serverconfigfile>”,不带引号,然后↵ Enter
  2. 做个“TerrariaServer.exe”的快捷方式,右键点击,点击“属性”编辑页面“目标:”(本来是:“<...>\TerrariaServer.exe”),在"TerrariaServer.exe"之后的最后键入:“ -config <serverconfigfile>”,不带引号(重要,在“.exe”和“-config”之间要留个空格)。看上去就会是这样:“‘<...>\TerrariaServer.exe’ -config <serverconfigurationfile>然后应用它。从现在开始,此快捷方式将使用给定的配置文件启动服务器。
  3. 如果想的话,批处理文件也可以,功能上与快捷方式相同。首先,要新建文本文档(.txt),然后在任何类型的简单编辑器中编辑它(Office不行,要Notepad那种的),然后键入这样的指令:
    @echo off
    cls
    TerrariaServer.exe -config <serverconfigurationfile>

然后保存文本文档(.txt)为批处理文件(.bat)。要把这个批处理文件放进泰拉瑞亚文件夹里才能生效,配置文件也要在同一文件夹里。另外,如果输入了“TerrariaServer.exe”和<serverconfigurationfile>的完整路径,那就可以在任何地方作为快捷方式生效。完整路径范例:

“C:\Games\Terraria\TerrariaServer.exe -config D:\TerrariaCon\example.txt”

可以从一台计算机运行多个服务器!但要做到这一点,有三件重要的事情:

  1. 确保每个服务器使用不同的配置文件!
  2. 确保每个服务器使用不同的世界!
  3. 确保每个服务器使用不同的端口号!

注:推荐给每个服务器做个分开的快捷方式/批处理文件。

配置文件并保存游戏数据位置[编辑 | 编辑源代码]

配置文件将位于泰拉瑞亚所在的目录中。

  • Steam范例:C:\Steam\steamapps\common\Terraria
  • GOG Galaxy范例:C:\GOG Galaxy\Games\Terraria
  • 世界位置:C:\Users\Defaults\My Documents\My Games\Terraria\Worlds\

Linux / MacOS[编辑 | 编辑源代码]

几乎所有Linux和MacOS上的设定都在终端完成了。如果对命令行缺乏经验,你可能会被吓到或担心会破坏某些东西。只需慢慢来,完全按照这里写的命令输入。我们鼓励你研究每个命令,以便准确了解它的作用(例如man ipchmod --help)。如果需要学习基本终端命令的帮助,可以考虑阅读这个指南HowToGeek

局域网:[编辑 | 编辑源代码]

Ipaddr.png

  • 在GNU/Linux、FreeBSD和MacOS中,终端的ip addr可以看到本地IP地址。会显示类似这里的截图。

找到BROADCASTstate UP。在这个范例中,你的本地IP地址是从 192.168.1.44 inet 192.168.1.44/24

或者,如果系统没有安装ip,可以以root身份运行ifconfig以获得类似的输出。

设立服务器[编辑 | 编辑源代码]

首先,决定是想要开始“开服并开始游戏”多人游戏,还是使用已有的服务器游戏。见多人模式条目有解释这其中的差异。

设立“开服并开始游戏”服务器[编辑 | 编辑源代码]

这是多人游戏最简单的方法,在家庭局域网下或简短的在线合作游戏下效果很好。启动泰拉瑞亚,在主菜单里,选择“多人游戏”,然后是“开服并开始游戏”。选择要玩的世界(或者新建一个),然后输入密码(或留空,如果不想要密码)。

首次启动专用服务器[编辑 | 编辑源代码]

Terrariaworld.png 要首次启动服务器,我们不用担心配置文件,因为泰拉瑞亚服务器文件有个很好的多步向导,可以让它快速运行。

在Linux和MacOS中,二进制文件在$STEAM_ROOTDIR/steam/steamapps/common/Terraria里。也可以直接从terraria.org下载专用服务器文件,点击页面底部的“专用服务器”链接。

运行TerrariaServer脚本将使系统启动正确版本的服务器。使用这个命令确保脚本和程序文件具有执行权限chmod u+x TerrariaServer*。如果没有看到此脚本,请仔细检查是否使用了最新版本的服务器。

由于终端会话结束后服务器将停止,可以使用tmuxscreen之类的程序,在注销时也能保持会话运行。

与其他游戏服务器一样,通常建议创建一个专用于运行游戏服务器的用户(带有主目录)。这可确保服务器无权更改它们不应该更改的文件。

注:默认下,Linux中泰拉瑞亚会将所有世界保存在“~/.local/share/Terraria”中,而MacOS是“~/Library/Application Support/Terraria/Worlds”。

使用配置文件设置专用服务器[编辑 | 编辑源代码]

要使用预先配置的文件运行服务器,要搜索泰拉瑞亚下载的那个文件夹,然后运行“TerrariaServer.exe -config <serverconfigfile>”,而<serverconfigfile>就是配置文件。按照以下步骤创建一个shell脚本,以使用配置文件自动运行服务器。

  1. 使用文本编辑器,在泰拉瑞亚服务器的同一个目录下创建一个叫做startserver.sh的文件
  2. 在文档里复制以下文本:
    #!/bin/sh
    ./TerrariaServer -config <serverconfigfile>
  3. 保存文档,通过运行chmod +x startserver.sh确保它具有执行权限,然后运行。

还可以输入“TerrariaServer.exe”和<serverconfigurationfile>的完整路径,那就可以在任何地方作为快捷方式生效。完整路径范例:

“~/TerrariaServer/TerrariaServer -config ~/.config/TerrariaServer/serverconfig.txt”

正如这个范例,配置文档可以不放在泰拉瑞亚文件夹内。

可以从一台计算机运行多个服务器!但要做到这一点,有三件重要的事情:

  1. 确保每个服务器使用不同的配置文件!
  2. 确保每个服务器使用不同的世界!
  3. 确保每个服务器使用不同的端口号!

注:推荐给每个服务器做个分开的shell脚本。

保存本地游戏数据[编辑 | 编辑源代码]

OS X[编辑 | 编辑源代码]

~/Library/Application Support/Terraria/Worlds

Linux[编辑 | 编辑源代码]

~/.local/share/Terraria/Worlds


制作配置文件[编辑 | 编辑源代码]

在任何操作系统上,配置文件选项和语法都是相同的。 下面是一个配置文件的范例,这个文件位于泰拉瑞亚文件夹里。如果用Notepad或Notepad++之类的文本编辑器打开,看上去会是这样。 如果看不到,可以把这段文本复制进一个新的文档。

#这是一个TerrariaServer.exe配置文档的范例
#使用命令'TerrariaServer.exe -config serverconfig.txt'可以使用这个配置,或运行run start-server.bat
#请发送电子邮件到support@terraria.org报告crashlog.txt的崩溃
#以下是可用命令行参数的列表:
#-config <config file>				指定要使用的配置文件。
#-port <7777>				指定要侦听的端口。
#-players <number> / -maxplayers <50>	设置最大玩家数量。
#-pass <password> / -password <password>	设置服务器密码。
#-world <world file>				载入世界并自动启动服务器。
#-autocreate <#>				如果在-world指定的路径中找不到任何世界,则创建一个世界。世界大小由下式指定:1(小型)、2(中型)和3(大型)。
#-banlist <path>				指定banlist的位置。默认在工作目录中的“banlist.txt”。
#-worldname <Ty>			使用-autocreate时,设定世界名称。
#-secure					为服务器添加额外的作弊保护。
#设置服务器上允许的最大玩家数。数字须在1到255之间
#maxplayers=5
#载入世界并自动启动服务器
#world=C:\Users\Defaults\My Documents\My Games\Terraria\Worlds\world1.wld
#设置端口号
#port=7777
#设置服务器密码
#password=
#设置当天的消息
#motd=请不要砍掉紫色的树!
#设置存储世界文件的文件夹
#worldpath=C:\Users\Defaults\My Documents\My Games\Terraria\Worlds\
#如果找不到,则创建一个新世界。 世界大小由下式指定:1(小型)、2(中型)和3(大型)。
#Create


#使用自动创建时设置世界名称
#worldname=Terraria
#banlist的位置。默认在工作目录中的“banlist.txt”。
#banlist=banlist.txt
#添加额外的作弊保护。
#secure=1
#默认系统优先级0:真实时间、1:高、2:高于普通、3:普通、4:低于普通、5:闲暇
#priority=0
每一行的开始都有“#”符号。该标志删除这一行,并使服务器不使用它。这对于在文件中注释很有用,如下所示:
#设置当天的消息
正如它解释了以下命令。对于关闭命令也很有用,例如:
#motd=请不要砍掉紫色的树!
这样,服务器就不会有“当天的消息”,因为它有#,被移除了。所以,如果你想使用命令,你只需要删除行开头的“#”。可以根据自己的喜好编辑此文件。每个命令都在文件中有解释。如果已准备就绪,则只需保存文件并将其用作配置文件即可。
强烈建议保留原始配置文件,制作一份副本并编辑副本,或者打开源文件然后换一个名字“另存为……”另一个文件。

客户端和服务器生成的配置和世界文件的默认位置因平台而异。


连接到服务器[编辑 | 编辑源代码]

在泰拉瑞亚游戏中,进入多人游戏->通过IP加入->选择角色->键入服务器的IP。可以是服务器使用的内部IP或外部IP。

从开服电脑上[编辑 | 编辑源代码]

可以使用本地主机作为IP(1.0.2版本或以后),或使用主机IP。

从局域网上[编辑 | 编辑源代码]

对于本地网络上的其他电脑(直接连接到路由器上),在'IPv4'里键入运行服务器的电脑地址(见局域网)。连接到网络的每台设备都有自己的路由器分配的IP地址。如果路由器使用动态IP寻址,则IPv4地址可以随时更改每个设备(大多数路由器默认使用动态IP)。动态意味着IP地址可以改变。

从互联网上[编辑 | 编辑源代码]

对于“网上”连接的朋友,需要键入你的外部IP(也就是路由器IP),但是在路由器上设置上述端口转发之前,这是无效的(见转发端口)。

在FreeBSD上[编辑 | 编辑源代码]

如果你正在读这段话,你可能知道IP是什么,以及如何设置路由器/防火墙/监狱(jail),以便在计算机上设专用的空间来放置服务器。

如何在Ubuntu上运行专用的泰拉瑞亚服务器

去监狱,创建一个泰拉瑞亚用户,安装screenmonosqlite3。运行此命令一次以正确初始化所有内容:(命令详见如何在Ubuntu上运行专用的泰拉瑞亚服务器/cir0qna

mono --server --gc=sgen -O=all TerrariaServer.exe

创建一个世界再退出(^C)

生成世界后,添加以下代码:http://ix.io/iHD到/usr/local/etc/rc.d/terraria并根据自己的喜好进行编辑。

编辑监狱的rc.conf,terraria_enable="YES",然后重启监狱。

服务器列表[编辑 | 编辑源代码]

一旦网络服务器正常运行,请考虑将其发布到一个公共服务器列表,以便网络用户可以找到它并加入:

故障排除[编辑 | 编辑源代码]

有些原因会使这个方法失效。可以将许多问题分成这些主要类别。

“服务器无法启动”[编辑 | 编辑源代码]

这是很常见的,原因是拼写错误。要再次检查所有内容(特别是如果使用的是配置文件),并确保所有内容都输入正确。如果仍然无法正常工作,可以浏览论坛,看看是否有其他人遇到了同样的问题。如果依然没有解决,建议尝试重新安装游戏。

其他人无法连接至服务器[编辑 | 编辑源代码]

这通常是与网络相关的问题。

  • 确保连接到了正确的IP地址。这是联网计算机的服务器计算机的IP地址(IPv4),或者是网络玩家的路由器的全局IP地址。有关如何查找这些内容的信息,请参阅第一部分。
  • 确保防火墙没有封锁“TerrariaServer.exe”或服务器端口(默认是“7777”),如果使用了阿里云等云服务器,可能要设置安全组。
  • 确保其他人进入的是正确的端口(如果不是默认的“7777”更是尤其重要)。
  • 如果在使用路由器,则必须确保它打开了服务器端口。有关如何执行此操作的信息,请参阅第一部分。
  • 如果你的IP地址是动态(不是静态或保留),它有可能随时间而变化,要再次检查一遍IP地址。另外,如果你使用动态DNS来解决此问题,就要告诉其他玩家始终要输入你的域名加入,并且不要使用游戏提供的已保存的连接列表(游戏只保存IP地址,而不是域名,因此如果IP改了,它是不会读到的)。

关闭服务器后世界没有保存/箱子内的物品消失[编辑 | 编辑源代码]

泰拉瑞亚服务器只会在每天黎明自动存储世界(每隔24分钟)。

如果关闭服务器而未通过控制台发出保存并退出命令(或者如果你是开服并开始游戏),世界可能没有存储最后几分钟的变化。 在箱子之间移动物品并立即关闭服务器,而不明确指定保存并退出命令,可能导致这些物品消失。

确保这个问题消失:始终使用专用服务器,并记住输入“save”/“exit”命令,而不是简单地通过红色X按钮关闭控制台窗口。