指南:建立泰拉瑞亞服務器

從 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 要首次啟動服務器,我們不用擔心配置文件,因為泰拉瑞亞服務器文件有個很好的多步嚮導,可以讓它快速運行。

專用服務器文件位於泰拉瑞亞文件的文件夾里。

  • GOG Galaxy範例:C:\GOG Galaxy\Games\Terraria
  • Steam範例:C:\Program Files (x86)\Steam\steamapps\common\Terraria

也可以直接從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按鈕關閉控制台窗口。