新聞中心
本文章介紹的是架設(shè)Java版服務(wù)器。關(guān)于基巖版服務(wù)器的架設(shè),請(qǐng)見(jiàn)“
教程/架設(shè)基巖版服務(wù)器”。

創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括金秀網(wǎng)站建設(shè)、金秀網(wǎng)站制作、金秀網(wǎng)頁(yè)制作以及金秀網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,金秀網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到金秀省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
目錄
- 1 警告
- 2 Java
- 2.1 OpenJDK與OracleJDK的區(qū)別
- 2.2 JRE與JDK的區(qū)別
- 2.3 無(wú)頭Java
- 3 一般步驟
- 3.1 Java選項(xiàng)
- 3.2 Minecraft選項(xiàng)
- 3.3 示例命令行
- 4 Windows操作指導(dǎo)
- 4.1 安裝Java
- 5 macOS操作指導(dǎo)
- 5.1 安裝Java
- 5.2 設(shè)置Minecraft服務(wù)器
- 5.3 使用Time Capsule
- 6 Linux操作指導(dǎo)
- 6.1 安裝Java
- 6.1.1 Solus
- 6.1.2 Debian、Ubuntu和Raspbian
- 6.1.3 openSUSE
- 6.1.4 Arch Linux
- 6.1.5 Gentoo
- 6.1.6 其他發(fā)行版
- 6.2 一個(gè)簡(jiǎn)單的安裝腳本(同時(shí)會(huì)安裝Java)
- 6.1 安裝Java
- 7 FreeBSD操作指導(dǎo)
- 7.1 安裝Java
- 7.2 啟動(dòng)Minecraft服務(wù)器
- 8 Plan 9
- 9 Hostman
- 10 Cloudron
- 11 Docker
- 11.1 安裝Docker(適用于Linux、Mac和Windows)
- 11.2 Docker鏡像
- 11.2.1 在Docker鏡像中指定Minecraft版本
- 11.2.2 服務(wù)器端口
- 11.3 更新Docker鏡像
- 12 配置環(huán)境
- 12.1 編寫(xiě)腳本用于啟動(dòng)服務(wù)器
- 12.1.1 Windows
- 12.1.2 macOS、Linux和FreeBSD
- 12.2 啟動(dòng)和維護(hù)腳本
- 12.3 端口轉(zhuǎn)發(fā)
- 12.4 設(shè)置VPN
- 12.4.1 設(shè)置Hamachi
- 12.4.2 設(shè)置Radmin VPN
- 12.5 配置Minecraft服務(wù)器
- 12.1 編寫(xiě)腳本用于啟動(dòng)服務(wù)器
- 13 連接到Minecraft服務(wù)器
- 13.1 關(guān)于IP地址的一些注意事項(xiàng)
- 13.2 服務(wù)端網(wǎng)絡(luò)設(shè)置
- 13.2.1 針對(duì)接入NAT的家庭網(wǎng)絡(luò)的服務(wù)器
- 13.2.2 針對(duì)使用家庭路由器的服務(wù)器
- 13.2.3 針對(duì)使用動(dòng)態(tài)IP的服務(wù)器
- 13.2.4 局域網(wǎng)中的專(zhuān)用服務(wù)器
- 13.2.5 SRV記錄
- 14 常見(jiàn)問(wèn)題
- 15 性能優(yōu)化Java參數(shù)
- 15.1 使用Java 8或之前的版本
- 15.2 使用Java 9或之后的版本
- 15.3 其他
- 16 視頻和替代教程
- 17 參考
此特性為Java版獨(dú)有。
本教程將通過(guò)手把手的方式,一步步地幫助你建立屬于你自己的Java版服務(wù)器。在該教程中,我們使用Mojang發(fā)布的供玩家免費(fèi)下載的服務(wù)器端程序,該程序在大部分操作系統(tǒng)(比如Windows、Mac OS、GNU/Linux和BSD)上都可以運(yùn)行。
如需查看更多教程,請(qǐng)查看此頁(yè)面底部或教程頁(yè)。更多有關(guān)Minecraft服務(wù)器的信息,參見(jiàn)服務(wù)器。
注意:
- 架設(shè)服務(wù)器會(huì)花費(fèi)一些時(shí)間,并且需要一些技術(shù)知識(shí)。如果你沒(méi)有基礎(chǔ)的計(jì)算機(jī)和網(wǎng)絡(luò)技能,請(qǐng)不要嘗試架設(shè)服務(wù)器。最好的選擇可能是在網(wǎng)絡(luò)上尋找有關(guān)于如何設(shè)置服務(wù)器的教程(而不是這里)。
- 一臺(tái)Minecraft服務(wù)器不需要一臺(tái)高端機(jī)器,2核心的CPU足夠開(kāi)一個(gè)4、5人的小型服務(wù)器,但需要注意的是如果你想提高服務(wù)器性能,你需要的是更新的CPU架構(gòu)和更高的主頻,而不是更多的核心數(shù)量(例如一顆在2012年推出的有24核心但只有1.1GHz主頻的至強(qiáng)處理器)。
- 如果你想長(zhǎng)期開(kāi)一個(gè)中大型服務(wù)器,Intel的酷睿和AMD的銳龍并不是明智之選,這些民用平臺(tái)的處理器一般穩(wěn)定性和拓展功能較差,且不支持穩(wěn)定的ECC內(nèi)存(DDR5除外),你需要的是Intel的至強(qiáng)W系列及至強(qiáng)可拓展處理器,或是AMD的線(xiàn)程撕裂者或霄龍?zhí)幚砥鳎@些適用于工作站或服務(wù)器的處理器一般穩(wěn)定性強(qiáng),但主頻較低,在挑選時(shí)應(yīng)選擇較新且主頻(或者睿頻)在3GHz以上的處理器,且內(nèi)存應(yīng)在36GB以上且支持ECC。
- 只要你的電腦足夠強(qiáng)勁,在一臺(tái)電腦上同時(shí)架設(shè)服務(wù)器并在該服務(wù)器上玩也是可行的。
- 對(duì)于很多玩家游玩的服務(wù)器,不建議將服務(wù)器連接到無(wú)線(xiàn)網(wǎng)絡(luò)(WLAN,尤其是WWAN),最好還是把服務(wù)器接入到有線(xiàn)網(wǎng)絡(luò),例如以太網(wǎng)。
- 如果你決定只是想聯(lián)機(jī)玩游戲,而不是自己開(kāi)設(shè)服務(wù)器??梢钥紤]在Minecraft服務(wù)器列表中找到你想玩的服務(wù)器。
- 如果使用使用游戲中設(shè)置內(nèi)的局域網(wǎng)游戲需要外網(wǎng)或者內(nèi)網(wǎng)穿透亦或者端口映射,如果聯(lián)機(jī)主機(jī)可以鏈接你的WLAN,可以直接輸入地址鏈接而不用使用更復(fù)雜的操作讓其他內(nèi)網(wǎng)連接到你的服務(wù)器(使用端口映射對(duì)設(shè)備有一定危險(xiǎn)性)地址的正確填寫(xiě)
x.x.x.x:端口。 - 如果你不想在家中開(kāi)設(shè)服務(wù)器,請(qǐng)查看Minecraft論壇上的服務(wù)器托管區(qū)。這樣的話(huà),你一般需要每月支付一定的費(fèi)用(免費(fèi)的托管服務(wù)很少,且一般無(wú)法保證質(zhì)量),但是這樣也免去了你維護(hù)服務(wù)器的煩惱,可以保持服務(wù)器一直在線(xiàn),玩家可以隨時(shí)進(jìn)入服務(wù)器游玩。
注: 也有一些其他的定制服務(wù)器軟件,大部分大型服務(wù)器都使用這些軟件,但是這些軟件并不受Mojang官方支持。
警告[ ]
注意
如果你對(duì)自己所做的事情沒(méi)有清楚的認(rèn)知,那么在自己的電腦上運(yùn)行服務(wù)器軟件會(huì)導(dǎo)致你的電腦更容易受到來(lái)自外部網(wǎng)絡(luò)的非法人士或有害程序(例如黑客和病毒)的攻擊。因此,請(qǐng)謹(jǐn)慎使用服務(wù)器軟件。
鑒于你正在一步步地開(kāi)啟你自己的服務(wù)器,你應(yīng)該要注意所有可能出現(xiàn)的危險(xiǎn)性。運(yùn)行下面的所有教程(應(yīng)該)不會(huì)導(dǎo)致你的系統(tǒng)出錯(cuò),但是由于本wiki是所有人都可編輯的,且我們并不知道你的系統(tǒng)配置與軟件運(yùn)行情況,我們并不能保證你的系統(tǒng)不會(huì)出現(xiàn)問(wèn)題。
為了確保你根據(jù)下面的教程架設(shè)服務(wù)器而不會(huì)出現(xiàn)問(wèn)題,我們強(qiáng)烈推薦你至少要知道以下的內(nèi)容:
- 命令行的使用并使用命令行編輯配置文件
- 基本的網(wǎng)絡(luò)搭建術(shù)語(yǔ)(IP、DHCP、端口等)
- 你的系統(tǒng)配置
- 你的網(wǎng)絡(luò)構(gòu)成環(huán)境
- (如果你有路由器或交換機(jī)等)你的路由器配置
Java[ ]
Java是一種靜態(tài)類(lèi)型的編程語(yǔ)言,用于編寫(xiě)在Java虛擬機(jī)(JVM)上運(yùn)行的程序。JVM支持很多種不同的平臺(tái)。為了做到這一點(diǎn),開(kāi)發(fā)者為JVM編寫(xiě)代碼,而所有被JVM支持的平臺(tái)都能運(yùn)行這樣的程序。進(jìn)一步了解
此章節(jié)用于回答一些經(jīng)常被問(wèn)到的關(guān)于Java的問(wèn)題,也會(huì)指導(dǎo)你作出有關(guān)Java的決定。
OpenJDK與OracleJDK的區(qū)別[ ]
OpenJDK與OracleJDK非常相似。OpenJDK是對(duì)Java的一種官方的開(kāi)源參考實(shí)現(xiàn)。OpenJDK是一個(gè)開(kāi)源代碼庫(kù),幾乎所有其他JDK都基于此構(gòu)建。除了打包方式、許可證和一些表面上的差別外,OpenJDK與OracleJDK是一樣的。
請(qǐng)注意:如果用于商業(yè)和生產(chǎn)用途,OracleJDK的OTN(Oracle技術(shù)網(wǎng)絡(luò))構(gòu)建版本就需要一份付費(fèi)的訂閱才能使用。這似乎包含了運(yùn)行Minecraft服務(wù)器的情況,即便是非盈利目的的。Oracle會(huì)提供他們自己的OpenJDK構(gòu)建版,但是不會(huì)打包成那種易于安裝的安裝包格式。
JRE與JDK的區(qū)別[ ]
JRE指的是“Java運(yùn)行環(huán)境”。JDK指的是“Java開(kāi)發(fā)工具包”。JRE被設(shè)計(jì)用來(lái)運(yùn)行Java程序,而JDK則是被設(shè)計(jì)用來(lái)開(kāi)發(fā)Java程序的。JDK中包含了JRE,而JRE中包含了JVM。這意味著如果你已經(jīng)有了JDK,那樣也同時(shí)有了JRE和JVM。原版Minecraft不需要JDK,但是有一些插件可能需要。
無(wú)頭Java[ ]
無(wú)頭Java實(shí)際上是普通Java的刪減版。它去除了對(duì)圖形界面或鼠標(biāo)、鍵盤(pán)方面的支持。無(wú)頭Java通常被用在服務(wù)器或其他不需要圖形界面的場(chǎng)合。
“
在Debian上,有幾種Java虛擬軟件包被使用。這些軟件包都支持Java運(yùn)行環(huán)境,且具有以下兩種類(lèi)型:無(wú)頭的(沒(méi)有圖形界面)以及普通的。
” ——
Debian Wiki(譯文)
一般步驟[ ]
運(yùn)行Minecraft服務(wù)器的基本步驟是:安裝java,運(yùn)行服務(wù)器,接受EULA,然后再運(yùn)行一次。當(dāng)你安裝了java并打開(kāi)命令行后,后續(xù)的內(nèi)容基本上都是一致的。
- 檢查配置是否符合需求(CPU、內(nèi)存大小和可用存儲(chǔ)空間大?。?。
- 安裝Java。不同的操作系統(tǒng)步驟不同,請(qǐng)參照下方相關(guān)內(nèi)容。
- 在下載頁(yè)中下載服務(wù)端。
- 為下載下來(lái)的jar文件新建一個(gè)文件夾,并把它放進(jìn)去。這個(gè)文件夾會(huì)存儲(chǔ)所有的配置和世界存檔文件,所以不要在“下載”文件夾中直接運(yùn)行。
- 打開(kāi)一個(gè)命令提示符或一個(gè)終端界面。
- 檢查Java是否可用。輸入
java -version就可以。 - 輸入
cd(切換工作目錄),切換到你存放服務(wù)端jar文件的文件夾中。如果你打開(kāi)了一個(gè)圖形界面,也可以把這個(gè)文件夾拖動(dòng)到終端窗口中。 - 輸入
java -jar minecraft_server.jar --nogui用來(lái)首次啟動(dòng)服務(wù)器(如果你的jar文件名不是“minecraft_server.jar”,把它換成實(shí)際的文件名即可)。 - 接受EULA。首次運(yùn)行服務(wù)器時(shí),會(huì)自動(dòng)生成一個(gè)
eula.txt。使用文本編輯器(如記事本)打開(kāi)eula.txt,將文件中的eula=false改為eula=true。這表示你已閱讀并理解了EULA的內(nèi)容,并會(huì)在使用服務(wù)端時(shí)遵守它。如果不這樣做,服務(wù)器會(huì)在你嘗試啟動(dòng)時(shí)立即關(guān)閉。 - 現(xiàn)在服務(wù)器已被配置好了。你可以使用
java -jar minecraft_server.jar啟動(dòng)服務(wù)器了。如果你不想讓服務(wù)器顯示圖形界面,在前面的命令后面添上一個(gè)空格和--nogui即可(有些人覺(jué)得這樣做會(huì)讓服務(wù)器更快)。你也可以使用下面所列出的一些選項(xiàng)。
現(xiàn)在,你應(yīng)該已經(jīng)啟動(dòng)了一個(gè)基本的服務(wù)器了。更多關(guān)于配置服務(wù)器的內(nèi)容,參見(jiàn)配置環(huán)境。關(guān)于如何編寫(xiě)啟動(dòng)腳本的內(nèi)容,參見(jiàn)編寫(xiě)腳本用于啟動(dòng)服務(wù)器。
Java選項(xiàng)[ ]
命令行中,Java選項(xiàng)應(yīng)該添加在-jar選項(xiàng)之前。
- 對(duì)運(yùn)行Minecraft服務(wù)器來(lái)說(shuō),最重要的事情莫過(guò)于內(nèi)存。你可以使用
-Xmx選項(xiàng)設(shè)置服務(wù)器能被允許使用的內(nèi)存量。通常-Xmx2G(最大內(nèi)存2GB)就已經(jīng)夠用了。-Xms(初始化內(nèi)存大?。┎粫?huì)對(duì)長(zhǎng)時(shí)間運(yùn)行有性能上的影響,但是你也可以設(shè)置它。-Xms512M(512MB)應(yīng)該夠了。- 對(duì)于一些版本的JRE,可以使用“soft max heap size”(
-XX:SoftMaxHeapSize=1G)。JRE將嘗試只使用那么多的內(nèi)存,但如有必要,它將超過(guò)-Xmx設(shè)置的最大值。 如果你在服務(wù)器上運(yùn)行許多東西,這可能會(huì)很有用。
- 如果你的服務(wù)器運(yùn)行在64位的Solaris系統(tǒng)上,并且使用了64位Java,請(qǐng)?zhí)砑?code>-d64。
Minecraft選項(xiàng)[ ]
關(guān)于服務(wù)端JAR文件的選項(xiàng)要寫(xiě)在命令中的-jar minecraft_server.jar后面。你可以在后面加上--help查看所有可以被傳遞給服務(wù)端的參數(shù)。下方列出了一些可用的命令行選項(xiàng)。
--bonusChest- 在初次生成世界時(shí),是否生成獎(jiǎng)勵(lì)箱。
--demo- 指定服務(wù)器是否在演示模式下運(yùn)行(給玩家顯示一個(gè)“演示版”彈出信息。且演示結(jié)束后,玩家不能破壞、放置方塊或者吃東西)。
--eraseCache- 清除光照緩存等。與優(yōu)化單人游戲世界時(shí)的選項(xiàng)相同。
--forceUpgrade- 強(qiáng)制升級(jí)所有區(qū)塊到服務(wù)器目前的版本(單人游戲世界也可用)。
--help- 顯示此幫助。
--initSettings- 只初始化
server.properties和eula.txt,然后退出。
- 只初始化
--nogui- 啟動(dòng)服務(wù)器時(shí)不顯示圖形界面。
- 你仍然可以與你的服務(wù)器交互,但如果啟用,必須使用cmd或終端。
nogui與此選項(xiàng)作用相同,主要用于向后兼容非常舊的服務(wù)器版本,但更加推薦使用--nogui更可取,因?yàn)檫@與其他選項(xiàng)的格式匹配
--port <整數(shù)>- 指定服務(wù)器監(jiān)聽(tīng)的端口,而無(wú)論在
server.properties中設(shè)置的是什么(默認(rèn)值為-1)。
- 指定服務(wù)器監(jiān)聽(tīng)的端口,而無(wú)論在
--safeMode- 加載存檔時(shí)只使用原版數(shù)據(jù)包。
--serverId <字符串>- 為服務(wù)器指定一個(gè)服務(wù)器ID。
--singleplayer <字符串>- 指定服務(wù)器以離線(xiàn)模式運(yùn)行(<字符串>需要指定一個(gè)值,但此值的具體用途未知,可能是由Mojang內(nèi)部所使用的)。
--universe <字符串>- 指定查找world文件夾的位置(默認(rèn)為
.,即當(dāng)前目錄)。
- 指定查找world文件夾的位置(默認(rèn)為
--world <字符串>- 指定一個(gè)
level.dat所在文件夾的名稱(chēng)。
- 指定一個(gè)
- 舊命令行選項(xiàng)
一些選項(xiàng)能在舊版中使用,但是已在新版本中被移除或被替換了。
-o true- 使服務(wù)器以在線(xiàn)模式運(yùn)行,只有經(jīng)過(guò)認(rèn)證的用戶(hù)才能進(jìn)入(新版本中,將server.properties中的"online-mode"改為"true"等同于此選項(xiàng))。
示例命令行[ ]
- 運(yùn)行一個(gè)存檔文件夾名稱(chēng)為“cold”的,監(jiān)聽(tīng)在1337端口上且最大1GB內(nèi)存的服務(wù)器:
java -Xmx1G -jar minecraft_server.jar --port 1337 --nogui --world cold。
Windows操作指導(dǎo)[ ]
安裝Java[ ]
運(yùn)行Minecraft服務(wù)器需要Java運(yùn)行環(huán)境(JRE,或者直接叫Java)??紤]到安全,你應(yīng)該使用最新版的Java。你可以按照下列方法之一檢查是否是最新版:
- 打開(kāi)Windows控制面板,找到Java(可能在“程序”類(lèi)別中),然后點(diǎn)擊“立即升級(jí)”。
- 點(diǎn)此可以通過(guò)你的瀏覽器自動(dòng)檢查版本。但是,Google Chrome和Firefox瀏覽器不運(yùn)行Java內(nèi)容,所以不能用這些瀏覽器來(lái)檢查。
- 打開(kāi)命令提示符,輸入
java -version。如果顯示出了版本號(hào),可以與Java網(wǎng)站上的信息對(duì)比獲取最新版本號(hào)。
如果你沒(méi)有安裝Java或你的Java版本較舊,你可以下載OpenJDK或Oracle “OTN” JDK。
macOS操作指導(dǎo)[ ]
請(qǐng)注意:在MacOS 10.4或更老的版本上,服務(wù)器不能正常運(yùn)行,且有可能導(dǎo)致你的機(jī)器崩潰。
安裝Java[ ]
打開(kāi)終端。
- 你可以通過(guò)執(zhí)行
java -version來(lái)檢查你是否安裝了Java。并確保其版本高于1.6(比1.8高要更好)。 - 如果你沒(méi)有Java,你可以使用HomeBrew安裝:
- 先執(zhí)行
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"安裝HomeBrew。 - 再執(zhí)行
brew cask install adoptopenjdk安裝Java(OpenJDK)。
- 先執(zhí)行
- 再次執(zhí)行
java -version,這一次應(yīng)該會(huì)看到一些消息了。
設(shè)置Minecraft服務(wù)器[ ]
參見(jiàn)一般步驟。
使用Time Capsule[ ]
有些家庭使用的無(wú)線(xiàn)路由器是AirPort Time Capsule。此章節(jié)教你如何在不搞壞文件服務(wù)器的情況下做相應(yīng)設(shè)置。
注:你需要知道你的管理員賬戶(hù)和密碼。
- 打開(kāi)系統(tǒng)設(shè)置->網(wǎng)絡(luò)。
- 點(diǎn)擊“高級(jí)”按鈕,然后到TCP/IP的底部。
- 找到配置IPv4的地方,把選項(xiàng)改成使用具有手動(dòng)IP地址的DHCP。
- 把IP地址改為10.0.1.x。注意:x的數(shù)值需要在DHCP范圍內(nèi)(例如:如果DHCP地址池為10.0.1.2-10.0.1.254,那么x可以取2-254的任意值)。
- 轉(zhuǎn)到共享一節(jié),確保Internet共享已開(kāi)啟。
- 打開(kāi)AirPort Utility并編輯你的Time Capsule設(shè)置。
- 轉(zhuǎn)到“網(wǎng)絡(luò)”,確保路由模式選項(xiàng)設(shè)置為“DHCP和NAT”。然后,點(diǎn)擊端口設(shè)置下方的“+”按鈕。
- 輸入以下內(nèi)容:
- 描述:Minecraft Server(隨便怎么寫(xiě)都行)
- 私有IP地址:你在第四步填寫(xiě)的IP地址。
- 把所有名字里面帶“端口”的內(nèi)容改成25565.
- 點(diǎn)擊保存并更新Time Capsule。
你現(xiàn)在可以配置你的服務(wù)器了。
Linux操作指導(dǎo)[ ]
Linux有許多被稱(chēng)為“發(fā)行版”的變種。有一些發(fā)行版是專(zhuān)門(mén)為服務(wù)器設(shè)計(jì)的,或更適合運(yùn)行在服務(wù)器上的。如果你正在架設(shè)一臺(tái)專(zhuān)用服務(wù)器,我們建議你使用這些發(fā)行版中的其中一個(gè)。
一般來(lái)講,Linux更歡迎開(kāi)源軟件。因此,在適用的情況下,建議你使用開(kāi)源程序,例如OpenJDK。
安裝Java[ ]
大多數(shù)發(fā)行版中都有OpenJDK。你可以直接安裝。對(duì)于Oracle Java,請(qǐng)參考Oracle的下載頁(yè)。
注:盡管不影響Minecraft服務(wù)器,JavaFX以及其他專(zhuān)有部分可能需要單獨(dú)安裝。
Solus[ ]
執(zhí)行sudo eopkg install openjdk-8命令安裝OpenJDK。
安裝Oracle JDK,請(qǐng)參考Solus幫助中心。
注:OpenJDK 11不在Solus的倉(cāng)庫(kù)中。
Debian、Ubuntu和Raspbian[ ]
為了正常使用apt-add-repository命令,你可能需要“software-properties-common”(使用sudo apt-get install software-properties-common安裝)和/或“python-software-properties”軟件包(使用sudo apt-get install python-software-properties安裝)。
由于許可證方面的問(wèn)題,常用來(lái)安裝Oracle Java的軟件庫(kù)已經(jīng)停止維護(hù)。推薦你安裝OpenJDK 8及更高版本。
OpenJDK可以使用此命令安裝:sudo apt update; sudo apt-get install openjdk-8-jdk-headless
去掉命令中的“-headless”可以安裝完整的Java。
注:此方法已在Ubuntu 18.04中測(cè)試有效。
openSUSE[ ]
注:由于openSUSE Tumbleweed可能的不穩(wěn)定性,不建議使用此系統(tǒng)架設(shè)專(zhuān)用服務(wù)器。
在終端內(nèi)執(zhí)行命令:sudo zypper in java-1_8_0-openjdk 安裝Java。
注:此方法已在openSUSE Leap 15.1中測(cè)試有效。
Arch Linux[ ]
Arch默認(rèn)提供最新的穩(wěn)定Java版本。若無(wú)特殊需求,建議安裝默認(rèn)版本的Java環(huán)境。
運(yùn)行pacman -S jdk-openjdk安裝Java。
如果希望了解所有可用的Java版本,請(qǐng)運(yùn)行pacman -Ss openjdk進(jìn)行查詢(xún),或訪問(wèn)OpenJDK獲取更多信息。
例如安裝Java 17,請(qǐng)運(yùn)行pacman -S jdk17-openjdk。
注:Arch官方不提供無(wú)頭JDK,只提供無(wú)頭JRE、完整JRE以及JDK。
如果遇到問(wèn)題,請(qǐng)參考ArchWiki。
Gentoo[ ]
執(zhí)行emerge --ask virtual/jdk安裝Java。
Gentoo Wiki
其他發(fā)行版[ ]
查看你使用發(fā)行版的文檔。它們應(yīng)該會(huì)告訴你如何安裝OpenJDK。
另外,你還可以直接訪問(wèn)Java網(wǎng)站下載適用于Linux的安裝包。對(duì)于大部分發(fā)行版都有用(無(wú)論32位還是64位)。在網(wǎng)站上提供了不同安裝包的安裝指導(dǎo)。
如果你在安裝的過(guò)程中詢(xún)問(wèn)了密碼,請(qǐng)輸入它。如果你被問(wèn)到“Is this OK [Y/N]”,(如果需要的話(huà))請(qǐng)回答“Y”然后回車(chē)。Java現(xiàn)在應(yīng)該已經(jīng)安裝好了。
一個(gè)簡(jiǎn)單的安裝腳本(同時(shí)會(huì)安裝Java)[ ]
https://github.com/silvertriclops/MCSLI
注:這是一個(gè)非常早期的項(xiàng)目,設(shè)計(jì)時(shí)考慮了脫機(jī)安裝,并將定期更新以使其對(duì)用戶(hù)更加友好。
FreeBSD操作指導(dǎo)[ ]
此部分需要更新
Java 7已經(jīng)過(guò)時(shí),因?yàn)楣俜揭呀?jīng)使用Java 18了。
一些崩潰問(wèn)題在OpenJDK 18中不會(huì)再出現(xiàn)。
所以如果相關(guān)內(nèi)容測(cè)試成功的話(huà),則下文中關(guān)于Linux兼容相關(guān)的內(nèi)容應(yīng)該就可以刪掉了。
此部分已在FreeBSD 10.0 amd64上測(cè)試有效(JRE使用的是:jre-7u65-linux-i586.tar.gz)。
安裝Java[ ]
由于OpenJDK與Minecraft服務(wù)器的性能和崩潰問(wèn)題,我們會(huì)安裝為L(zhǎng)inux設(shè)計(jì)的Oracle JRE。
在安裝JRE前,你需要安裝FreeBSD的Linux二進(jìn)制文件兼容層,你可以按照此文檔操作。
Java需要從proc中獲取一些信息。你需要執(zhí)行以下命令掛載linprocfs:
kldload linprocfs mount -t linprocfs linprocfs /compat/linux/proc
并向/etc/fstab加入此行:
linprocfs /compat/linux/proc linprocfs rw 0 0
Oracle JRE的一個(gè)依賴(lài)被標(biāo)成“禁止”,所以安裝這個(gè)依賴(lài)會(huì)失敗。切換到/usr/ports/textproc/linux-f10-expat2.0.1/,然后在其中的Makefile文件中刪掉以FORBIDDEN=開(kāi)頭的一行。
由于許可證問(wèn)題,你需要從Java官網(wǎng)上手動(dòng)下載Linux的tar包(例如“jre-7u65-linux-i586.tar.gz”),并把它復(fù)制到/usr/ports/distfiles。 然后,進(jìn)入/usr/ports/java/linux-sun-jre17/目錄并執(zhí)行make install distclean安裝JRE。
注:前一部分以前的說(shuō)法(適用于FreeBSD 9.2 amd64)是:你必須在Makefile文件中設(shè)置JRE_UPDATE_VERSION變量,并將其設(shè)置為一個(gè)數(shù)字(在此例中為45)。然后再執(zhí)行make install NO_CHECKSUM=1。
嘗試執(zhí)行java -version。你可能會(huì)被提示找不到libjli.so。一種解決方法是:將你的Java路徑顯式指定為搜索路徑。 創(chuàng)建一個(gè)符號(hào)連接:
ln -s /usr/local/linux-sun-jre1.7.0/lib/i386 /compat/linux/usr/lib/java
然后在/compat/linux/etc/ld.so.conf.d/java.conf添加:
/usr/lib/java /usr/lib/java/jli
執(zhí)行/compat/linux/sbin/ldconfig。 現(xiàn)在執(zhí)行java -version應(yīng)該是正常的了。
啟動(dòng)Minecraft服務(wù)器[ ]
創(chuàng)建一個(gè)文件夾,然后把Minecraft服務(wù)端jar文件復(fù)制進(jìn)去。
在實(shí)際的版本中,如果你用一般方法運(yùn)行服務(wù)器,你會(huì)得到以下異常:syscall epoll_create not implemented。為了解決這個(gè)問(wèn)題,可以在命令后面加上-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.PollSelectorProvider。
啟動(dòng)命令示例:
java -Xmx1024M -Xms1024M -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.PollSelectorProvider -jar minecraft_server.1.7.10.jar nogui
Plan 9[ ]
alien-convert PATH_TO_YOUR_JRE.deb chmod ~/~ rwx # for current user snarf java -jar PATH_TO_SERVER_JAR.jar xvmf in acme
Hostman[ ]
Hostman是用于云托管應(yīng)用程序的應(yīng)用程序托管提供商。Minecraft可作為Hostman上的一鍵式應(yīng)用程序使用。安裝大約需要2分鐘,有個(gè)關(guān)于如何配置服務(wù)器并開(kāi)始游玩的說(shuō)明。你可以在一臺(tái)服務(wù)器上擁有多個(gè)Minecraft服務(wù)。在此處免費(fèi)試用。
Cloudron[ ]
Cloudron是一個(gè)在服務(wù)器上自托管應(yīng)用程序的平臺(tái)。在Cloudron上,Minecraft是一個(gè)一鍵應(yīng)用。它允許你通過(guò)瀏覽器上的Web界面管理Minecraft服務(wù)器。你也可以在同一臺(tái)服務(wù)器上安裝多個(gè)Minecraft實(shí)例。你可以嘗試此示例(用戶(hù)名:cloudron,密碼:cloudron)。
Docker[ ]
Docker是一種開(kāi)源的容器平臺(tái),可以使不同的Minecraft服務(wù)器實(shí)例和主機(jī)相互隔離開(kāi)來(lái)。Docker本身和其容器倉(cāng)庫(kù)的所有者與Mojang沒(méi)有任何隸屬關(guān)系。
安裝Docker(適用于Linux、Mac和Windows)[ ]
參見(jiàn)https://docs.docker.com/install
Docker鏡像[ ]
關(guān)于完整的Docker鏡像文檔,請(qǐng)參見(jiàn):https://github.com/itzg/docker-minecraft-server/blob/master/README.md。
在一個(gè)名為“mc”的容器中運(yùn)行一個(gè)簡(jiǎn)單的最新版本服務(wù)器,可以在shell中執(zhí)行以下命令:
docker run -d -p 25565:25565 --name mc -e EULA=TRUE itzg/minecraft-server
在Docker鏡像中指定Minecraft版本[ ]
如果要指定特定的版本,請(qǐng)?jiān)诿詈筇砑?code>-e VERSION=
docker run -d -p 25565:25565 --name mc -e VERSION=SNAPSHOT -e EULA=TRUE itzg/minecraft-server
指定為Minecraft 1.7.9:
docker run -d -p 25565:25565 --name mc -e VERSION=1.7.9 -e EULA=TRUE itzg/minecraft-server
服務(wù)器端口[ ]
要更改監(jiān)聽(tīng)的端口,需要用到Docker的端口映射功能。這可以把主機(jī)上的指定端口映射到容器的25565端口上。可以使用下面的命令運(yùn)行一個(gè)非25565端口的服務(wù)器:
docker run -d -p:25565 --name mc -e EULA=TRUE itzg/minecraft-server
更新Docker鏡像[ ]
使用下面的命令更新Docker鏡像。請(qǐng)注意,此命令不會(huì)更新Minecraft,它只會(huì)更新鏡像本身。
docker pull itzg/minecraft-server
配置環(huán)境[ ]
編寫(xiě)腳本用于啟動(dòng)服務(wù)器[ ]
實(shí)際上,我們不需要在每次啟動(dòng)服務(wù)器的時(shí)候輸入命令。我們可以把命令寫(xiě)進(jìn)一個(gè)文件里,然后執(zhí)行它。
Windows[ ]
在Windows中,腳本稱(chēng)為“批處理文件”。在服務(wù)器jar文件所在的文件夾中,創(chuàng)建一個(gè)文本文檔,命名為start.bat,然后右鍵點(diǎn)擊“編輯”,再將下面的內(nèi)容粘貼到里面:
@ECHO OFF java -Xms1024M -Xmx2048M -jar minecraft_server.jar --nogui pause
然后雙擊這個(gè)文件啟動(dòng)你的服務(wù)器。你可能會(huì)收到“Class_Not_Found”和“ServerGuiConcole”錯(cuò)誤信息,直接忽略這些錯(cuò)誤。然后你就可以看到“Server Thread/INFO”這樣的內(nèi)容,這表示你的服務(wù)器啟動(dòng)了。
腳本中的pause命令會(huì)保持窗口開(kāi)啟,這樣是為了讓你能在服務(wù)器停止時(shí)更方便地知道到底發(fā)生了什么。
macOS、Linux和FreeBSD[ ]
這些系統(tǒng)在命令行中都使用一種被稱(chēng)為“POSIX shell script”的腳本語(yǔ)言。在放服務(wù)器jar文件的文件夾中創(chuàng)建一個(gè)文本文件,命名為start.sh,然后寫(xiě)入以下內(nèi)容:
#!/bin/sh cd "$(dirname "$0")" exec java -Xms1G -Xmx1G -jar server.jar --nogui
然后保存文件。執(zhí)行chmod a+x start.sh(或者你放置此腳本的路徑)使其可執(zhí)行。你可以通過(guò)雙擊此文件或者在文件夾中輸入./start.sh(如果在文件夾外,請(qǐng)輸入完整路徑)命令啟動(dòng)服務(wù)器。
如果你想像Windows中一樣能在服務(wù)器關(guān)閉后保留窗口,請(qǐng)刪除腳本中的exec一詞,并在末尾加上read -n 1 -p "Waiting..."一行。此更改對(duì)從圖形界面雙擊打開(kāi)的服務(wù)器有效果。
啟動(dòng)和維護(hù)腳本[ ]
另外,你也可以嘗試使用下面列出的腳本實(shí)現(xiàn)對(duì)Minecraft服務(wù)器的管理和啟動(dòng)、關(guān)閉自動(dòng)化:
- Minecraft Server Control Script (MSCS)適用于UNIX和Linux平臺(tái)的Minecraft服務(wù)器。有以下功能:
- 運(yùn)行多個(gè)Minecraft實(shí)例。
- 啟動(dòng)、停止和重啟單個(gè)或多個(gè)實(shí)例。
- 創(chuàng)建、刪除、禁用和啟用實(shí)例。
- 第三方服務(wù)器支持:Forge、BungeeCord、SpigotMC等。
- 自動(dòng)備份、刪除(X天前)和重啟實(shí)例。
- 詳情參見(jiàn):MSCS的Github。
- Minecraft Server Manager是一個(gè)適用于原版服務(wù)端和Bukkit的全面的啟動(dòng)腳本(支持Debian系系統(tǒng),例如Ubuntu)。
- MSM可以定期創(chuàng)建可兼容World Edit的備份。
- 可配置用于提醒玩家的消息,例如“將在10秒內(nèi)關(guān)閉服務(wù)器!”。
- 可以在終端內(nèi)執(zhí)行游戲內(nèi)命令(例如“say”、“op”和“whitelist”)。
- 支持Tab鍵補(bǔ)全命令,使學(xué)習(xí)更簡(jiǎn)單。
- 查看完整功能:MSM的GitHub。
- 服務(wù)器架設(shè)腳本
- FreeBSD啟動(dòng)腳本
- OpenBSD啟動(dòng)腳本
- Ubuntu啟動(dòng)腳本
- rfwadmin是一個(gè)適用于Linux的具有Web界面的啟動(dòng)腳本。有很好的用于快速保存和加載存檔的Web界面。
- Minecraft Systemd Service是一個(gè)完全集成systemd的Minecraft服務(wù):
- 適用于CentOS和Fedora。
- 使用大量的只讀和不可訪問(wèn)的權(quán)限來(lái)保護(hù)服務(wù)器。
- 使用rcon執(zhí)行安全的重啟和停機(jī)操作。
- 為了更方便的管理,可以與Minecraft Command Center Script一起組合使用。
- Arch Linux systemd wrapper
端口轉(zhuǎn)發(fā)[ ]
參見(jiàn): 端口轉(zhuǎn)發(fā)
如果你有一臺(tái)路由器,并且想讓用戶(hù)通過(guò)路由器連接進(jìn)來(lái)時(shí),就需要使用端口轉(zhuǎn)發(fā)。如果你只是想架設(shè)一臺(tái)內(nèi)部服務(wù)器,那么你就不需要做這樣的事。請(qǐng)注意:端口轉(zhuǎn)發(fā)可能會(huì)導(dǎo)致安全風(fēng)險(xiǎn)。
不同路由器設(shè)置端口轉(zhuǎn)發(fā)的方式不同。如果你不知道如何在你的路由器設(shè)置端口轉(zhuǎn)發(fā),可以嘗試在網(wǎng)絡(luò)上找適用于你路由器型號(hào)的教程。
此示例適用于TP-Link家庭路由器的新版界面。
進(jìn)入你路由器的管理界面,找到端口轉(zhuǎn)發(fā)頁(yè),然后點(diǎn)擊新建服務(wù)或自定義服務(wù)。選擇一個(gè)“協(xié)議類(lèi)型”,“TCP”表示只轉(zhuǎn)發(fā)TCP協(xié)議,“UDP”只轉(zhuǎn)發(fā)UDP協(xié)議,而“ALL”則兩者都轉(zhuǎn)發(fā)。內(nèi)部端口和外部端口都填寫(xiě)25565(如果你服務(wù)器不是標(biāo)準(zhǔn)端口,可以按需填寫(xiě))。IP地址則填寫(xiě)你Minecraft服務(wù)器的內(nèi)部IP地址,其余保持不變即可。
要獲取你電腦的IP地址,請(qǐng)按以下步驟操作:
- Windows
-
按 ? Win?+? R打開(kāi)“運(yùn)行”,輸入
cmd然后 ? Enter,打開(kāi)命令提示符。在命令提示符中輸入
ipconfig然后 ? Enter。找到對(duì)應(yīng)你使用的網(wǎng)絡(luò)適配器上的IPv4地址(有線(xiàn)連接的一般是“以太網(wǎng)”,無(wú)線(xiàn)連接的一般是“WLAN”)。一個(gè)IP地址的形式應(yīng)該是
xxx.xxx.xxx.xxx,然后把這樣的內(nèi)容記錄下來(lái)。
注意不要包含任何除了數(shù)字或點(diǎn)的部分。
OS X上IP地址的顯示位置
- Mac
- 打開(kāi)在logo下的菜單,找到“系統(tǒng)首選項(xiàng)”,然后選擇“網(wǎng)絡(luò)”。你的IP地址應(yīng)該會(huì)顯示在右側(cè)(應(yīng)該是xxx.xxx.xxx.xxx形式)。將它復(fù)制下來(lái)即可。
- Linux
-
你可以使用網(wǎng)絡(luò)診斷中心(有一些發(fā)行版有)。或者在終端中執(zhí)行
ifconfig,此命令會(huì)輸出你所有網(wǎng)絡(luò)接口的IP地址,找到例如
inet addr:xxx.xxx.xxx.xxx的內(nèi)容,將xxx.xxx.xxx.xxx的部分復(fù)制下來(lái)即可。
如果你獲得了你的IP地址,請(qǐng)把它輸入到前面轉(zhuǎn)發(fā)設(shè)置中的“IP地址”中。 填寫(xiě)好這些需要的信息后,請(qǐng)點(diǎn)擊“保存”(或者其他類(lèi)似意思的按鈕)。這樣你就成功的設(shè)置了端口轉(zhuǎn)發(fā)。當(dāng)你啟動(dòng)Minecraft服務(wù)器時(shí),需要把server.properties中的IP地址一項(xiàng)留空。 其他人需要通過(guò)你的外部IP地址來(lái)連接到你的服務(wù)器。你可以通過(guò)例如IP Chicken的網(wǎng)站獲取外部IP地址。如果你不想用IP地址連接,可以使用動(dòng)態(tài)DNS服務(wù),例如NoIP DynDNS。
接下來(lái)可以配置并連接了。
設(shè)置VPN[ ]
該段落的內(nèi)容不代表Mojang Studios或Minecraft Wiki的官方意見(jiàn)。
注意
使用虛擬專(zhuān)用網(wǎng)絡(luò)可能對(duì)連接至Mojang服務(wù)器,Minecraft服務(wù)器,或者你的互聯(lián)網(wǎng)造成影響。
在你和你的朋友之間設(shè)置服務(wù)器的另一種方法是設(shè)置虛擬專(zhuān)用網(wǎng)絡(luò)。由于希望連接到服務(wù)器的所有用戶(hù)必須下載外部軟件以加入或創(chuàng)建服務(wù)器,因此該方法可能會(huì)被認(rèn)為是不推薦而且不方便的。另外一種可行的辦法是端口轉(zhuǎn)發(fā)。可用于建立虛擬專(zhuān)用網(wǎng)絡(luò)的免費(fèi)簡(jiǎn)單程序是Hamachi和Radmin虛擬專(zhuān)用網(wǎng)絡(luò)。這是另外一種免費(fèi)開(kāi)源且支持大多數(shù)操作系統(tǒng)的方案,但是配置較困難。Hamachi免費(fèi)版只允許5個(gè)玩家連接。
設(shè)置Hamachi[ ]
- 在希望加入服務(wù)器的每臺(tái)計(jì)算機(jī)上安裝Hamachi,包括主機(jī)。下載地址:
Windows / Mac
Linux (32位與64位.deb和.rpm包均可找到。欲在 Gentoo 上安裝,使用net-misc/logmein-hamachi) - 在主機(jī)上創(chuàng)建新的Hamachi網(wǎng)絡(luò)。
- 主機(jī)安裝并配置Minecraft服務(wù)器軟件(server.jar):server.properties中的服務(wù)器IP字段保留為空(默認(rèn)情況下)。
- 主機(jī)將新創(chuàng)建的Hamachi網(wǎng)絡(luò)憑證傳遞給每個(gè)玩家。
- 玩家連接到主機(jī)的Hamachi網(wǎng)絡(luò)。
- 當(dāng)所有機(jī)器都連接在同一個(gè)Hamachi網(wǎng)絡(luò)中,主機(jī)將其機(jī)器的Hamachi IPv4地址提供給玩家。
- 每個(gè)玩家使用主機(jī)的IPv4地址輸入到“直接連接”框里。
- 請(qǐng)注意,Hamachi占用了已經(jīng)被IANA分配的IP塊(25.0.0.0/8)。 所以,Hamachi有可能會(huì)和互聯(lián)網(wǎng)沖突。
設(shè)置Radmin VPN[ ]
其配置方法和Hamachi的很相像。
- 在這里下載Radmin VPN。
- 創(chuàng)建網(wǎng)絡(luò):在本地計(jì)算機(jī)上安裝Radmin VPN后,按“創(chuàng)建網(wǎng)絡(luò)”按鈕。 設(shè)置網(wǎng)絡(luò)名稱(chēng)和密碼,然后按“創(chuàng)建”按鈕。
- 現(xiàn)在新網(wǎng)絡(luò)將出現(xiàn)在主窗口。給朋友發(fā)送連接信息,然后運(yùn)行Minecraft。
- 連接:Radmin程序啟動(dòng)后按“加入網(wǎng)絡(luò)” - >在對(duì)話(huà)框中按輸入網(wǎng)絡(luò)名稱(chēng)和從主機(jī)網(wǎng)絡(luò)的密碼 - >“加入” - >新網(wǎng)絡(luò)及其節(jié)點(diǎn)將顯示在主窗口中。 - > 在Minecraft中連接到主機(jī)。(如同配置Hamachi的第七步)
- 如果Radmin VPN上的連接已經(jīng)建立,但你沒(méi)有看到游戲中的其他玩家,則需要調(diào)整防火墻,或者直接關(guān)閉防火墻。
配置Minecraft服務(wù)器[ ]
- 編輯
server.properties文件(格式可參見(jiàn)server.properties#server.properties)。請(qǐng)使用純文本編輯器修改此文件(例如記事本)。可能不需要做額外配置,默認(rèn)生成的內(nèi)容也可以啟動(dòng)服務(wù)器。 - 如果你要成為管理員(op)或添加管理員,請(qǐng)?jiān)诜?wù)器控制臺(tái)或GUI上輸入
/op <玩家或玩家實(shí)體目標(biāo)選擇器>命令。此命令會(huì)把你指定的用戶(hù)的UUID添加到ops.json文件中。管理員權(quán)限不會(huì)隨著用戶(hù)名的更改而消失,因?yàn)榇鎯?chǔ)的是你的UUID而不是用戶(hù)名。- 管理員可以執(zhí)行命令。換句話(huà)說(shuō),管理員有權(quán)限控制游戲的某些方面(例如傳送玩家)。
ops.json的內(nèi)容:
[
{
"uuid": "",
"name": "",
"level": 4,
"bypassesPlayerLimit": false
}
]
- 如果在你的server.properties中設(shè)置了開(kāi)啟白名單,你可以在服務(wù)器控制臺(tái)或GUI上使用
/whitelist add <玩家或玩家實(shí)體目標(biāo)選擇器>命令把玩家添加進(jìn)whitelist.json文件中(由于過(guò)渡到UUID系統(tǒng)的原因,不建議直接修改此文件的內(nèi)容)。
連接到Minecraft服務(wù)器[ ]
- 如果你是在作為服務(wù)端的電腦上玩Minecraft,先選擇“多人游戲”,輸入“l(fā)ocalhost”或者是“127.0.0.1”,而不是你的IP地址。
- 這是不推薦的。除非你有一個(gè)性能良好,內(nèi)存比較大的電腦。(服務(wù)器4GB,客戶(hù)端2GB,其余的給系統(tǒng))
- 在你的局域網(wǎng)內(nèi)的玩家可以通過(guò)內(nèi)網(wǎng)IP來(lái)連接到你的服務(wù)器(因?yàn)橥婕以诰钟蚓W(wǎng)內(nèi),所以你不需要接口轉(zhuǎn)發(fā))。
- 從Internet鏈接的玩家(也就是不在你的局域網(wǎng)中的玩家)必須使用你的外部ip來(lái)鏈接. 你必須為這些從外部鏈接的玩家使用端口轉(zhuǎn)發(fā)。
- (部分支持IPv6的客戶(hù)端和服務(wù)端,客戶(hù)端可以直接通過(guò)IPv6地址訪問(wèn)服務(wù)端。)
- 特定網(wǎng)絡(luò)適配器上的IP地址可以通過(guò)在命令提示符中輸入“ipconfig”或者通過(guò)此網(wǎng)站來(lái)查看。如果在server.properties文件中指定了非25565的端口,則需要在地址欄中加上端口號(hào)。地址(IP和端口)看起來(lái)應(yīng)該像
192.168.0.168:25565這樣。
關(guān)于IP地址的一些注意事項(xiàng)[ ]
- 除非你為正在做服務(wù)器的電腦設(shè)定一個(gè)靜態(tài)IP,否則的話(huà),內(nèi)部IP地址是有可能改變的。這會(huì)影響到接口轉(zhuǎn)發(fā)規(guī)則并使得它們失效。不同的路由器有不同的設(shè)置靜態(tài)ip的方法。你可以從你的設(shè)備的說(shuō)明書(shū)或者在線(xiàn)文檔中獲得更多的幫助。
- 如果你有連接到你外部IP的玩家,你應(yīng)該明白如果你沒(méi)有從你的Internet服務(wù)商處獲得一個(gè)靜態(tài)IP,那么你的外部IP是會(huì)變化的。你可以使用類(lèi)似MyWANIP的工具來(lái)定時(shí)的檢查你的外部IP。此外,你可以嘗試使用DDNS服務(wù),這會(huì)允許你使用一個(gè)固定的域名,而不是動(dòng)態(tài)的IP地址。不管你的外部IP地址是否改變,這個(gè)域名會(huì)指向你當(dāng)前的外部IP地址(即,當(dāng)你的外部IP改變時(shí),DNS會(huì)自動(dòng)更新)。
- 在解決服務(wù)器故障時(shí),你可以嘗試在運(yùn)行服務(wù)器的機(jī)器上使用客戶(hù)端來(lái)調(diào)試,使用本地IP地址(
localhost)、內(nèi)網(wǎng)IP地址(例如192.168.x.x)或者公網(wǎng)IP都是可以的。 - 如果你在公網(wǎng)上連接你服務(wù)器的公網(wǎng)IPv4地址時(shí)有問(wèn)題,可以嘗試使用IPv6地址來(lái)連接。你僅應(yīng)在測(cè)試服務(wù)器是否在線(xiàn)時(shí)執(zhí)行此操作。對(duì)于其他玩家而言,還是最好使用你的IPv4地址來(lái)連接。
服務(wù)端網(wǎng)絡(luò)設(shè)置[ ]
- 服務(wù)器需要開(kāi)啟防火墻相應(yīng)端口(默認(rèn)為25565)才能使服務(wù)端正常工作。
- 確認(rèn)網(wǎng)絡(luò)設(shè)置正確并使用在線(xiàn)工具如You Get Signal確定服務(wù)端在國(guó)際互聯(lián)網(wǎng)的IP。測(cè)試端口應(yīng)與服務(wù)端設(shè)置的端口一致(默認(rèn)為25565), 測(cè)試時(shí)請(qǐng)啟動(dòng)服務(wù)端。
服務(wù)器有可能會(huì)遭到惡意攻擊,在服務(wù)器投入使用以前,請(qǐng)務(wù)必做好物理保護(hù)及數(shù)據(jù)備份工作,否則有可能會(huì)帶來(lái)經(jīng)濟(jì)及精神上的損失。
針對(duì)接入NAT的家庭網(wǎng)絡(luò)的服務(wù)器[ ]
- 如果家庭路由器的服務(wù)器接入NAT網(wǎng)絡(luò),那么他在啟動(dòng)后外網(wǎng)的玩家是無(wú)法連接的。
- 購(gòu)買(mǎi)路由器,進(jìn)入路由器配置頁(yè)面(一般是192.168.1.1:80或192.168.0.1:80)查看WAN IP記錄下來(lái),使用搜索引擎搜索IP,將該IP與之前的WAN IP對(duì)比,若相同則為一般有IP,若不同則為接入NAT的家庭網(wǎng)絡(luò)。
這種情況,你可以使用內(nèi)網(wǎng)穿透類(lèi)應(yīng)用,如花生殼,或協(xié)商運(yùn)營(yíng)商請(qǐng)求許可獲取公網(wǎng)IP的資格。
針對(duì)使用家庭路由器的服務(wù)器[ ]
- 如果服務(wù)器位于一個(gè)家庭路由器的局域網(wǎng)內(nèi),則需要在路由器設(shè)置相應(yīng)的端口映射法則。
- 關(guān)于端口映射的具體設(shè)置,可以訪問(wèn) portforward.com。從網(wǎng)站給出的列表中選擇你使用的路由器型號(hào),網(wǎng)站將給出設(shè)置端口映射的相應(yīng)步驟(有廣告,可跳過(guò))。調(diào)制解調(diào)器、路由器等網(wǎng)絡(luò)器材附帶的說(shuō)明文件也可能包括了設(shè)置端口映射的相關(guān)信息。
- 部分路由器提供了DMZ選項(xiàng),與端口映射有同樣效果,但遭到攻擊的可能性相比使用端口映射更大(DMZ主機(jī)暴露在外網(wǎng),不受路由器安全設(shè)置保護(hù))。新手使用請(qǐng)咨詢(xún)熟悉的業(yè)內(nèi)人士。
- 一般來(lái)說(shuō)可以首先嘗試使用 UPnP 進(jìn)行端口映射,大部分路由器都支持并默認(rèn)開(kāi)啟該功能??梢允褂弥T如 miniupnpc 軟件包的 upnpc 命令一類(lèi)的程序進(jìn)行映射。
針對(duì)使用動(dòng)態(tài)IP的服務(wù)器[ ]
- 由于大部分家庭用戶(hù)(部分服務(wù)器代理的服務(wù)器也沒(méi)有固定IP)使用ADSL或PPPoE等方式接入互聯(lián)網(wǎng),此種情況下的服務(wù)器無(wú)論通過(guò)路由器與否,IP地址是不定的。解決此問(wèn)題可以使用動(dòng)態(tài)DNS服務(wù),屆時(shí)玩家只需要知道服務(wù)器使用的域名即可連接到服務(wù)器。
- 請(qǐng)聯(lián)系網(wǎng)絡(luò)供應(yīng)商(家庭用戶(hù))或服務(wù)器代理商確定正在使用的網(wǎng)絡(luò)接入方式。
- 使用動(dòng)態(tài)DNS需要進(jìn)行以下準(zhǔn)備工作:
- 獲得一個(gè)域名,可以從dot.tk或Oray等網(wǎng)站獲得免費(fèi)域名,也可以支付一定費(fèi)用注冊(cè);
- 選擇一個(gè)動(dòng)態(tài)DNS服務(wù)商,注冊(cè)賬號(hào)并按服務(wù)商提供的操作方法設(shè)置服務(wù)器及域名,維基百科有部分動(dòng)態(tài)DNS的服務(wù)商列表
使用動(dòng)態(tài)DNS需要一定網(wǎng)絡(luò)理論及實(shí)踐的基礎(chǔ),新手在做出決定前,請(qǐng)先咨詢(xún)熟悉的業(yè)內(nèi)人士。
- 設(shè)置動(dòng)態(tài)DNS請(qǐng)按照服務(wù)商的指示對(duì)服務(wù)器、路由器(僅限使用路由器的用戶(hù))進(jìn)行設(shè)置。
- 路由器設(shè)置需要進(jìn)入管理頁(yè)面進(jìn)行操作,新手請(qǐng)參照說(shuō)明文檔或在業(yè)內(nèi)人士的指導(dǎo)下進(jìn)行。
局域網(wǎng)中的專(zhuān)用服務(wù)器[ ]
這一段的內(nèi)容只適用于Classic(v0.30)服務(wù)器。
管理員不能在內(nèi)網(wǎng)中通過(guò)一臺(tái)另一臺(tái)機(jī)器進(jìn)入那臺(tái)架設(shè)了服務(wù)器的機(jī)器,這是一個(gè)普遍性的問(wèn)題。典型的情景是:你有一臺(tái)專(zhuān)用服務(wù)器,而且有另一臺(tái)供你玩游戲的機(jī)器。而它們同時(shí)連接到同一個(gè)路由器或交換機(jī)下,且內(nèi)部IP為“192.168.x.x”。通常,通過(guò)服務(wù)器生成的URL連接時(shí),會(huì)返回“服務(wù)器離線(xiàn)”的錯(cuò)誤信息。
要解決這個(gè)問(wèn)題,你需要在你的URL、書(shū)簽以及其他你用來(lái)連接的東西后面加上?override=true
例如:http://www.minecraft.net/classic/play/4c3bebb1a01816acbe31c5ece1570da5?override=true
以前(1.8 beta和網(wǎng)站更新前)上面要加的東西是&override=true。這一點(diǎn)并沒(méi)有被Mojang在網(wǎng)站Applet頁(yè)面上說(shuō)明,導(dǎo)致出現(xiàn)了很多誤用。在此更新前,通過(guò)網(wǎng)站連接到你自己的URL會(huì)導(dǎo)致出現(xiàn)在Applet窗口底部出現(xiàn)“If you can't connect, try this link instead.”的紅色文字,返回的是同樣以“&override=true”結(jié)尾的連接。
注:Beta服務(wù)器沒(méi)有這樣的情況,你應(yīng)該能通過(guò)內(nèi)部或外部IP連接上服務(wù)器。
SRV記錄[ ]
從Java版1.3開(kāi)始支持玩家可以在不輸入端口號(hào)的情況下連接到一個(gè)使用非標(biāo)準(zhǔn)端口號(hào)的服務(wù)器。相關(guān)的信息是作為一種服務(wù)被記錄在DNS上的SRV記錄中的。SRV記錄告知客戶(hù)端實(shí)際上應(yīng)該連接的主機(jī)名和端口。一些動(dòng)態(tài)DNS(DDNS)服務(wù)和大多數(shù)的靜態(tài)DNS服務(wù)都會(huì)允許你設(shè)置這樣的記錄。[1]
如果你要手動(dòng)驗(yàn)證SRV記錄是否生效,請(qǐng)參考下面的內(nèi)容(假設(shè)給玩家的域名是“YOUR.DOMAIN.com”):
> nslookup -q=srv _minecraft._tcp.YOUR.DOMAIN.com
Server: UnKnown
Address: [REDACTED]
Non-authoritative answer:
_minecraft._tcp.YOUR.DOMAIN.com SRV service location:
priority = 5
weight = 5
port = 65312
svr hostname = ACTUAL.DOMAIN.com
常見(jiàn)問(wèn)題[ ]
問(wèn):如果我有一個(gè)沒(méi)在這里提到的問(wèn)題,我應(yīng)該怎么辦?
答:你可以在Minecraft Forums上發(fā)帖說(shuō)明你的問(wèn)題。為了能幫到你,請(qǐng)?zhí)峁┮韵滦畔ⅲ?
- 使用的操作系統(tǒng)
- Java版本
- 一臺(tái)還是多臺(tái)電腦
- 問(wèn)題的具體描述
- 你為解決問(wèn)題已嘗試的步驟
- 你遇到的任何錯(cuò)誤
- (如果可以的話(huà))問(wèn)題的截圖
- 其他可能有助于幫你解決問(wèn)題的內(nèi)容(一般也不會(huì)有多少。注意不要提供密碼)
如果我們解決了你的問(wèn)題,請(qǐng)說(shuō)明具體解決問(wèn)題的地方和方法。這可以對(duì)其他人有所幫助(也能幫我們解決常見(jiàn)問(wèn)題)!
問(wèn):在Windows上雙擊批處理文件啟動(dòng)服務(wù)器,命令提示符窗口閃退且服務(wù)器沒(méi)有啟動(dòng)。
答:請(qǐng)?jiān)谀愕呐幚砦募詈蠹由?code>pause再運(yùn)行。如果顯示的是無(wú)效路徑,這可能是你Java可執(zhí)行文件或者服務(wù)端jar文件的路徑不正確導(dǎo)致的。把批處理文件路徑里的/jre7/換成/jre6/,確定運(yùn)行環(huán)境在/Program Files/里還是在/Program Files (x86)/里,或者根據(jù)自己電腦的情況對(duì)路徑進(jìn)行相應(yīng)調(diào)整。多說(shuō)一句,運(yùn)行服務(wù)端需要JRE運(yùn)行環(huán)境,而不是瀏覽器里的Java插件。
也可能是你沒(méi)有修改你的eula.txt文件。在雙擊你的minecraft_sever.jar文件后,你會(huì)看到文件夾內(nèi)有個(gè)eula.txt文件。用記事本打開(kāi)這個(gè)文件
(https://account.mojang.com/documents/minecraft_eula). Datum Uhrzeit eula=false
將最后一行修改為
eula=true
然后保存并退出。重新雙擊服務(wù)器啟動(dòng)的批處理文件應(yīng)該就可以正常啟動(dòng)了。
問(wèn):當(dāng)我嘗試啟動(dòng)服務(wù)器時(shí),服務(wù)器顯示"Failed to bind to port!"。
答:可能是路由器端口映射設(shè)置有誤,確認(rèn)路由器為Minecraft開(kāi)放的端口(默認(rèn)為25565)正確地映射到你的服務(wù)器上。如果你的服務(wù)器是直接接入網(wǎng)絡(luò)的且網(wǎng)絡(luò)服務(wù)商不開(kāi)放你所設(shè)置的端口,將server.properties文件中的server-port=25565中的“25565”改為其他可用端口號(hào)。
或者是你在server.properties文件中的IP地址一項(xiàng)中設(shè)置了IP地址。如果這個(gè)IP地址不與你系統(tǒng)上任何接口上的地址一致,服務(wù)端會(huì)顯示這樣的信息。如果把此項(xiàng)留空,你就可以在所有接口上綁定。這樣,你和內(nèi)網(wǎng)內(nèi)的人就可以通過(guò)localhost或內(nèi)網(wǎng)IP地址連接到服務(wù)器了。
此外,問(wèn)題也可能是由于你嘗試使用一個(gè)已被占用或無(wú)權(quán)限綁定的端口(小于1024的端口需要root或管理員特權(quán)才能使用)導(dǎo)致的。要解決這個(gè)問(wèn)題,你可以嘗試修改server.properties文件中的server-port=25565一行。
注:你應(yīng)該避免使用下列端口,這些端口在有些ISP那里是被封禁的。并且,為了安全考慮,最好不要用root用戶(hù)運(yùn)行服務(wù)器(適用于Linux系統(tǒng)且端口小于1024的情況):
- 21(由大多數(shù)FTP服務(wù)器使用)
- 22(由SSH服務(wù)器使用)
- 25(由郵件服務(wù)器使用,用于SMTP協(xié)議)
- 53(由DNS服務(wù)器使用)
- 80 (由大多數(shù)Web服務(wù)器使用)
- 110(由郵件服務(wù)器使用,用于POP3協(xié)議)
- 115(由簡(jiǎn)單文件傳輸協(xié)議使用)
- 143(由郵件服務(wù)器使用,用于IMAP協(xié)議)
- 443(由Web服務(wù)器使用的SSL端口)
- 3306(由大多數(shù)MySQL服務(wù)器使用)
一般要避免使用端口號(hào)低于1024的端口,因?yàn)檫@些端口是“公認(rèn)端口”,用于在IANA處注冊(cè)的重要服務(wù);另外因?yàn)榘踩?,一些網(wǎng)絡(luò)服務(wù)商還會(huì)屏蔽3306(MySQL服務(wù)器默認(rèn)使用)端口等。除此之外,49152-65535段端口屬于“動(dòng)態(tài)端口”范圍,沒(méi)有被注冊(cè)占用。
此類(lèi)問(wèn)題亦有可能是操作者疏忽導(dǎo)致服務(wù)端未關(guān)閉就再次開(kāi)啟了服務(wù)端,典型的錯(cuò)誤操作有:Windows中直接雙擊了核心jar,Linux中使用守護(hù)進(jìn)程運(yùn)行Java等,導(dǎo)致服務(wù)端在后臺(tái)運(yùn)行而操作者未注意的情況。遇到此類(lèi)問(wèn)題可先檢查占用該端口的進(jìn)程,獲取控制或?qū)⑵浣Y(jié)束,再啟動(dòng)服務(wù)端。
問(wèn):我嘗試在Solaris/OpenSolaris上運(yùn)行服務(wù)器,但是出現(xiàn)了以下錯(cuò)誤:
java.io.InterruptedIOException: Operation interrupted at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.net.SocketInputStream.read(SocketInputStream.java:182) at java.io.FilterInputStream.read(FilterInputStream.java:66) at gq.a(SourceFile:131) at ji.g(SourceFile:197) at ji.c(SourceFile:17) at oq.run(SourceFile:84) 2011-05-31 16:57:26 [INFO] /:44673 lost connection
答:只有Solaris系統(tǒng)在線(xiàn)程中斷連接時(shí)會(huì)發(fā)生這種異常,這種異常可以通過(guò)改變啟動(dòng)命令來(lái)避免:
java -Xmx1G -Xms32M -XX:-UseVMInterruptibleIO -XX:+UseConcMarkSweepGC \ -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:+AggressiveOpts\ -jar minecraft.jar nogui
這樣的命令讓Java使用一種可中斷的IO棧來(lái)防止異常發(fā)生。
問(wèn):當(dāng)我嘗試連接到我的服務(wù)器上,服務(wù)器顯示:
Connection lost The server responded with an invalid server key
答:此錯(cuò)誤通常在服務(wù)端發(fā)送了一個(gè)客戶(hù)端不能識(shí)別的功能時(shí)出現(xiàn),這可能是由于使用了不能識(shí)別的服務(wù)器軟件、不平衡的客戶(hù)端/服務(wù)器版本或修改過(guò)的客戶(hù)端導(dǎo)致的。
問(wèn):為什么我不能破壞或放置方塊!?
答:聯(lián)系服主關(guān)閉保護(hù)出生點(diǎn)的功能,或離出生點(diǎn)遠(yuǎn)一些,除非你是服務(wù)器的op,否則在該功能開(kāi)啟時(shí)你不能在出生點(diǎn)附近放置或破壞方塊。
問(wèn):我的服務(wù)器運(yùn)行正常,但是我不能連接上去!
答:這可能是由一連串問(wèn)題導(dǎo)致的。請(qǐng)按照上方提供的模板發(fā)帖詢(xún)問(wèn)。
問(wèn):如何給服務(wù)器更多內(nèi)存?
答:修改啟動(dòng)命令行中的“-Xmx1G -Xms1G”部分中的數(shù)字。“-Xms”部分指定的是服務(wù)器啟動(dòng)時(shí)使用的內(nèi)存量,而“-Xmx”部分指定的是服務(wù)器最大可以使用的內(nèi)存量。 -Xmx1G -Xms2G = 1GB -Xmx2G -Xms1G = 2GB 等等。
問(wèn):為什么服務(wù)器CPU經(jīng)常滿(mǎn)載?
答:這可能是由于GUI(圖形界面)窗口導(dǎo)致的。在啟動(dòng)命令行加入nogui可以禁用這個(gè)窗口。
問(wèn):我要怎么獲取服務(wù)器的IP地址?
答:請(qǐng)參閱連接到Minecraft服務(wù)器一節(jié)。
問(wèn):我設(shè)置了端口轉(zhuǎn)發(fā),并且允許java.exe通過(guò)防火墻,但仍然不起作用!
答:你的調(diào)制解調(diào)器有可能運(yùn)行在路由模式下。你可能會(huì)從ISP處拿到調(diào)制解調(diào)器和路由器二合一的設(shè)備。 要驗(yàn)證這一點(diǎn),請(qǐng)查看你路由器上顯示的WAN IP,如果這個(gè)IP是一個(gè)私有IP,那么你需要登陸到ISP提供給你的調(diào)制解調(diào)器的管理界面,然后把端口轉(zhuǎn)發(fā)中的IP地址設(shè)置為你路由器的WAN IP。
性能優(yōu)化Java參數(shù)[ ]
對(duì)于各類(lèi)JDK(Oracle或Open)用戶(hù),使用JDK的一些參數(shù)進(jìn)行優(yōu)化是可行的。以下參數(shù)在一定程度上優(yōu)化了GC內(nèi)存操作且利用了一些CPU命令集。
使用Java 8或之前的版本[ ]
java -server -XX:-UseVMInterruptibleIO -XX:NewRatio=3 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=4 -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+CMSParallelRemarkEnabled -XX:MaxGCPauseMillis=50 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -XX:+DisableExplicitGC -Xnoclassgc -oss4M -ss4M -XX:CMSInitiatingOccupancyFraction=60 -XX:SoftRefLRUPolicyMSPerMB=2048 -Xms(視情況) -Xmx(視情況) -jarnogui
使用Java 9或之后的版本[ ]
因?yàn)閺?.17開(kāi)始不支持Java 8,而在高版本Java上,上面的許多參數(shù)都被刪除,暫時(shí)沒(méi)有替代品,故可以使用以下參數(shù):
java -jar -Xms(視情況) -Xmx(視情況) -server -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32Mnogui
其他[ ]
如果上述兩個(gè)用例都報(bào)錯(cuò)的話(huà),可以使用服務(wù)端所屬版本的官方客戶(hù)端參數(shù),此參數(shù)可以在編輯“配置”界面上的“JVM參數(shù)”中找到,然后使用以下參數(shù):
java -jar -Xms(視情況) -Xmx(視情況) -server <在官方啟動(dòng)器中獲得的參數(shù)>nogui
視頻和替代教程[ ]
這里給出了一些其他的Minecraft服務(wù)器架設(shè)教程:
- Windows
- How to make a Minecraft Server in under 10 Minutes! (Port Forward Guide Too!)
- How to Make a Minecraft Server in 2020 (1.15.2) | 5:43 Pt. 2 - Easy: Port Forward | 3:11
- How to create a Minecraft Server in 2020 tutorial
- Mac OS X
- How to SET UP MINECRAFT SERVER on Mac OS
- Port Forward (easy method)
- Alternative video tutorial on setting up a Minecraft server with Mac
- Linux
- Linux tutorial for more advanced users
- How to Install Minecraft Server on CentOS
- How to make a Minecraft Server on Ubuntu for beginners
- 其他
- How to Set Up Port Forwarding
- How to Port Forward any Minecraft Server (1.6.2)
- Alternative port forwarding tutorial for Windows (with pictures)
- 一體化教程
- Course: How to Make a Server
參考[ ]
- ↑ https://www.noip.com/support/knowledgebase/how-to-add-a-srv-record-to-your-minecraft-server-remove-the-port-on-the-end-of-the-url/
教程(作下劃線(xiàn)標(biāo)記的教程為中文獨(dú)有教程) |
||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||


咨詢(xún)
建站咨詢(xún)
