在Linux上搭建泰拉瑞亞(Terraira)服務(wù)器
事前聲明
本教程是在Ubuntu 22.04.2 LTS環(huán)境下演示的,對(duì)于其他版本的Ubuntu,可能有所出入,對(duì)于其他的Linux操作系統(tǒng),如CentOS,本文不保證完全適用,但核心相同,可以本文為參考進(jìn)行搭建。
本文只是在本機(jī)Ubuntu?22.04.2?LTS環(huán)境下完成測試,并沒有在其他版本上跑過測試(原因是懶),并不保證全版本適應(yīng)性,故如有錯(cuò)漏與不足,還請(qǐng)各位指出。
本文于2023.6.23寫成,并不保證在較長時(shí)間后仍然有效,屆時(shí)會(huì)根據(jù)情況進(jìn)行更新,如有不適配之處,也請(qǐng)各位在評(píng)論區(qū)指出,本人會(huì)盡力進(jìn)行對(duì)本文的修改,使其盡量不落后于時(shí)代。
本文只是提出一條在linux上搭建泰拉瑞亞服務(wù)器的可行方案,對(duì)于其他方案,也許其可行,但本人并未對(duì)此進(jìn)行深入探究,故不在此介紹。
最后一次更新:2023.6.23

步驟
1.基本環(huán)境準(zhǔn)備
1)可正常運(yùn)行的Linux操作系統(tǒng),本文以Ubuntu為演示,版本為Ubuntu?22.04.2?LTS? ? ? ? 在對(duì)應(yīng)Linux官網(wǎng)下載鏡像文件,然后在虛擬機(jī)或者實(shí)體機(jī)上進(jìn)行安裝;或在選擇云服務(wù)器操作系統(tǒng)時(shí)選擇Linux,本人建議Ubuntu或CentOS
????????2)unzip工具
????????3)tar工具(應(yīng)該不會(huì)沒有吧)
????????4)screen工具
????????5)可用的網(wǎng)絡(luò)連接
????? ? 6)ssh工具(可選)
2. 下載TShock的服務(wù)器文件
網(wǎng)址:https://github.com/Pryaxis/TShock/releases/latest
進(jìn)入該網(wǎng)址,然后下滑,直到看見Assets(有可能沒有展開)

選擇與你對(duì)應(yīng)的版本,這里是Linux即選擇linux-xx,xx根據(jù)自己的情況判斷是arm64還是x64,對(duì)于大多數(shù)linux系統(tǒng)來說,可以通過arch命令來查詢架構(gòu)信息

如果輸出aarch64則是arm64架構(gòu),如果輸出x86_64則是x64架構(gòu),這里以x64進(jìn)行演示
3.將下載到的文件通過各種各樣的方式傳輸?shù)絣inux上
具體方式不再贅述。

4.unzip解壓縮zip文件
filename依據(jù)你具體的文件名而定,下同??梢杂胻ab補(bǔ)全,不必一個(gè)一個(gè)字母的打。如我想輸入filename為TShock-5.2-for-Terraria-1.4.4.9-linux-x64-Release.zip,可以先輸入TShock-5.2(長度隨便,重點(diǎn)是足夠讓tab尋找到唯一與這個(gè)相符的文件名),然后按下tab,即可自動(dòng)補(bǔ)全。

5.tar解壓縮tar文件

6.現(xiàn)在應(yīng)該得到的文件

7. 運(yùn)行TShock.Installer文件,安裝dotnet環(huán)境

該程序會(huì)自動(dòng)從一個(gè)網(wǎng)址下載dotnet,并自動(dòng)解壓安裝。稍等即可。若此時(shí)linux網(wǎng)速過慢會(huì)導(dǎo)致時(shí)間漫長,可以通過一個(gè)網(wǎng)速快的計(jì)算機(jī)先下載好后手動(dòng)安裝,這個(gè)我們稍后介紹。

這時(shí)出現(xiàn)了這個(gè)畫面,代表已經(jīng)成功安裝。
8. Terraria服務(wù)器的配置

如圖是TShock的初始頁面。可以通過輸入對(duì)其進(jìn)行控制。這里我們新建世界,即New World,輸入對(duì)應(yīng)的n,然后回車。

我選擇中,你們隨意,下同。


看似給了三個(gè)選項(xiàng),實(shí)則只有兩個(gè)



9.運(yùn)行Terraria服務(wù)器

可以看到,我們剛才創(chuàng)建的世界已經(jīng)出現(xiàn)在世界列表當(dāng)中,他的編號(hào)是1
通過輸入世界的編號(hào),可以進(jìn)入世界





出現(xiàn)如上畫面,表示服務(wù)器啟動(dòng)成功

該指令和后面的數(shù)字需要記一下。截圖或者寫紙上都行
10. screen保持運(yùn)行
至此,我們已經(jīng)完成了Terraria服務(wù)器的啟動(dòng),但是我們現(xiàn)在面臨著一個(gè)嚴(yán)峻的問題,那就是如果我們關(guān)閉ssh連接(或者在虛擬機(jī)中關(guān)閉shell),服務(wù)器就會(huì)停止運(yùn)行,這顯然不是我們所期望的,我們期望他在后臺(tái)運(yùn)行,這就需要screen的出面了。

name可以隨意取,別太離譜就行,最好別加特殊字符之類的


我們已經(jīng)進(jìn)入了screen,盡管你可能并未發(fā)覺,在screen當(dāng)中操作與在正常的shell基本相同。我們現(xiàn)在再在screen里面啟動(dòng)服務(wù)器

中途如果卡住可以連按兩次Ctrl-C強(qiáng)制退出,然后重新運(yùn)行文件。也有可能沒有卡住,只是沒有顯示,如選擇頁面時(shí),直接輸入并回車也可以繼續(xù)。當(dāng)是在不行時(shí)再Double Ctrl-C
這時(shí)候我們按Ctrl +A+D可以退出與screen的連接
這時(shí)候,我們就可以安全地退出終端
如果我們需要再連接到screen當(dāng)中,可以使用如下命令
這里的name是之前你在創(chuàng)建screen時(shí)取得名字
11.加入游戲與用戶配置
當(dāng)服務(wù)器在服務(wù)端運(yùn)行起來之后,便可以在客戶端,也就是Terraira游戲中通過多人游戲-通過IP加入來加入 游戲,ip地址輸入你服務(wù)器的ip地址。如果是云服務(wù)器的話,可能需要為7777端口新建一條規(guī)則。具體可以自行百度,比如說騰訊云的服務(wù)器可以搜索“騰訊云服務(wù)器 防火墻”即可。
有時(shí),linux自帶的防火墻也會(huì)阻礙7777端口,可以通過指令新建規(guī)則或者關(guān)閉它,具體也是百度,我這里附一條ubuntu的ufw防火墻開放7777端口的指令
需要注意,如果你前面開服的時(shí)候選擇修改了端口,不是7777,那么這里的端口號(hào)也應(yīng)該隨之改變。
進(jìn)入游戲之后,你發(fā)現(xiàn)你似乎沒辦法砍樹,左下角提示紅色信息。這是因?yàn)槟銦o法破壞出生點(diǎn)的方塊,為什么呢?因?yàn)閠shock有一套權(quán)限系統(tǒng),你現(xiàn)在并沒有登錄,是guest游客,沒有破壞出生點(diǎn)方塊的權(quán)限。
這時(shí)候你可能會(huì)說了,我是腐竹??!怎么連這點(diǎn)權(quán)力都沒有。的確如此,但服務(wù)器并不認(rèn)識(shí)你是腐竹,這時(shí)候你就要告訴它你是腐竹,怎么做呢?還記得上面開服時(shí)我讓你記 的指令嗎,用它就可以告訴服務(wù)器你是腐竹,獲得一段時(shí)間的超管特權(quán)。

但這終究不是長久之計(jì),你要趁這點(diǎn)時(shí)間給自己新建一個(gè)用戶。用
username即用戶名,建議填你的游戲人物名稱,這樣登陸時(shí)就不必在輸入username了
password即密碼,可以隨便設(shè)置,你得記得住。
group即組,它決定了這個(gè)用戶的身份,如果是普通和朋友玩的話,建議設(shè)成owner即物主、腐竹。owner可以通過/su命令暫時(shí)成為SuperAdmin(超管)
如果有多人游玩,建議每人一個(gè)用戶,不要混用。
關(guān)于tshock的指令,可以去看這篇文章。

https://www.bilibili.com/read/cv18312164/
我在這里也不多說。
12.離線安裝dotnet

先運(yùn)行一下Installer,復(fù)制到這個(gè)網(wǎng)址,然后Ctrl強(qiáng)制停止,再在另外一個(gè)計(jì)算機(jī)下載完成之后傳到linux上。

應(yīng)該是這么一個(gè).tar.gz文件
再運(yùn)行Installer即可,程序會(huì)自動(dòng)解壓該文件到dotnet文件夾,并且會(huì)跳過下載步驟。

尾聲
至此,你已經(jīng)完成了泰拉瑞亞服務(wù)器在linux的安裝。祝你玩的愉快。如果有任何問題,也可以在評(píng)論區(qū)給本人回復(fù),我會(huì)盡力回答。介于本人技術(shù)、精力有限,不可能做到盡善盡美,如果本文存在任何疏漏,也歡迎各位指出,我會(huì)及時(shí)改正。