器:從零到一的完整實(shí)踐指南)
1. 從零到一為什么選擇阿里云ECS搭建MC服務(wù)器如果你和我一樣是個(gè)《我的世界》Minecraft簡(jiǎn)稱MC的老玩家玩久了單人模式或者去別人的服務(wù)器總會(huì)萌生一個(gè)念頭能不能自己搭一個(gè)完全按照自己的規(guī)則來(lái)邀請(qǐng)三五好友打造一個(gè)專屬的方塊世界。這個(gè)想法很好但第一步就卡住了服務(wù)器放哪用家里的舊電腦網(wǎng)絡(luò)不穩(wěn)定電費(fèi)還心疼。用第三方托管月租不菲配置還受限。折騰了一圈我發(fā)現(xiàn)對(duì)于絕大多數(shù)個(gè)人玩家和小型社群來(lái)說(shuō)阿里云ECS彈性計(jì)算服務(wù)是目前最平衡、最靠譜的選擇。它不像家里電腦那樣受制于網(wǎng)絡(luò)和硬件也不像某些游戲服務(wù)器托管商那樣有各種隱性限制。你可以把它理解為一臺(tái)24小時(shí)不間斷運(yùn)行、擁有公網(wǎng)IP的“虛擬電腦”你擁有完全的控制權(quán)。成本上對(duì)于一個(gè)小型MC服務(wù)器比如支持10人左右同時(shí)在線選擇按量付費(fèi)或者低配的包月套餐一個(gè)月幾十塊錢就能搞定遠(yuǎn)比升級(jí)自家寬帶和硬件劃算。更重要的是可控性。從Java版本、服務(wù)端核心比如Paper、Spigot的選擇到各種插件Plugin的安裝配置再到世界存檔的備份與恢復(fù)每一個(gè)環(huán)節(jié)你都能親手把控。這個(gè)過(guò)程本身就是一次極佳的學(xué)習(xí)和實(shí)踐機(jī)會(huì)你能深入理解服務(wù)器運(yùn)維、網(wǎng)絡(luò)配置乃至Linux系統(tǒng)的基礎(chǔ)操作。接下來(lái)我就把我用阿里云ECS搭建個(gè)人MC服務(wù)器的完整過(guò)程以及其中踩過(guò)的坑、總結(jié)的經(jīng)驗(yàn)毫無(wú)保留地分享給你。2. 戰(zhàn)前準(zhǔn)備服務(wù)器選型、系統(tǒng)與安全組配置搭建服務(wù)器不是上來(lái)就敲命令前期的規(guī)劃選型直接決定了后續(xù)體驗(yàn)的順暢度。這一步走對(duì)了后面能省下一大半的麻煩。2.1 ECS實(shí)例規(guī)格與地域選擇進(jìn)入阿里云控制臺(tái)創(chuàng)建ECS實(shí)例。這里有幾個(gè)關(guān)鍵決策點(diǎn)1. 實(shí)例規(guī)格vCPU和內(nèi)存對(duì)于MC Java版服務(wù)器內(nèi)存RAM是重中之重CPU反而不是最吃緊的。一個(gè)基礎(chǔ)的、帶少量插件的生存服務(wù)器我建議的起步配置是2核 vCPU4GB 內(nèi)存這個(gè)配置足夠支撐5-10人同時(shí)在線進(jìn)行常規(guī)游戲。如果你的朋友比較多或者打算安裝大量大型插件如地形生成、大型RPG任務(wù)那么將內(nèi)存提升到8GB是更穩(wěn)妥的選擇。CPU方面2核足夠應(yīng)對(duì)MC服務(wù)端主要是單線程運(yùn)算更看重單核性能阿里云新一代的實(shí)例如ecs.g7或ecs.c7系列通常都能滿足。2. 鏡像操作系統(tǒng)強(qiáng)烈推薦選擇最新的穩(wěn)定版Linux系統(tǒng)例如Alibaba Cloud Linux 3或Ubuntu 22.04 LTS。我個(gè)人更傾向于Alibaba Cloud Linux它對(duì)阿里云硬件兼容性更好開(kāi)箱即用。絕對(duì)不要選擇Windows Server除非你有非常特殊的理由。Linux系統(tǒng)資源占用極低穩(wěn)定性強(qiáng)通過(guò)命令行操作效率更高是服務(wù)器領(lǐng)域的絕對(duì)主流。3. 地域選擇一個(gè)離你和你的朋友們物理位置最近的地域。例如玩家主要在國(guó)內(nèi)就選華東1杭州、華東2上?;蛉A北2北京。這能最大程度降低網(wǎng)絡(luò)延遲Ping值提升游戲體驗(yàn)。延遲是MC聯(lián)機(jī)體驗(yàn)的殺手一個(gè)遠(yuǎn)在海外地域的服務(wù)器即使配置再高卡頓也會(huì)讓人崩潰。4. 磁盤系統(tǒng)盤選擇40GB或以上的高效云盤即可。MC服務(wù)器本身不大但世界存檔尤其是長(zhǎng)期游玩后可能會(huì)增長(zhǎng)到幾個(gè)GB40GB提供了充足的緩沖空間。如果預(yù)算充足可以額外掛載一塊數(shù)據(jù)盤專門存放世界存檔和備份。5. 公網(wǎng)IP與帶寬務(wù)必勾選分配公網(wǎng)IPv4地址。這是你的服務(wù)器能被外界訪問(wèn)的“門牌號(hào)”。帶寬方面對(duì)于MC這種游戲峰值帶寬選擇3~5 Mbps就完全足夠了。MC的數(shù)據(jù)包很小但對(duì)延遲敏感高帶寬對(duì)提升體驗(yàn)幫助不大反而會(huì)增加成本。選擇按使用流量計(jì)費(fèi)通常比固定帶寬更劃算因?yàn)镸C服務(wù)器的實(shí)際流量消耗很低。2.2 安全組服務(wù)器的防火墻規(guī)則安全組是阿里云提供的虛擬防火墻這是保障服務(wù)器安全的第一道也是最重要的一道關(guān)卡。配置錯(cuò)誤會(huì)導(dǎo)致無(wú)法連接服務(wù)器。創(chuàng)建實(shí)例時(shí)系統(tǒng)會(huì)提示你配置安全組。你需要手動(dòng)添加兩條入方向規(guī)則SSH規(guī)則管理服務(wù)器用授權(quán)策略允許協(xié)議類型SSH (22)端口范圍22/22授權(quán)對(duì)象0.0.0.0/0初期為了方便可以這么設(shè)。強(qiáng)烈建議在服務(wù)器配置好后改為你自己的固定公網(wǎng)IP/32例如123.123.123.123/32這樣只有你的IP能SSH登錄極大提升安全性。Minecraft服務(wù)器規(guī)則游戲連接用授權(quán)策略允許協(xié)議類型自定義 TCP端口范圍25565/25565這是MC服務(wù)器的默認(rèn)端口授權(quán)對(duì)象0.0.0.0/0這意味著任何IP的玩家都可以嘗試連接。如果你只想讓特定IP段的朋友玩也可以在這里做限制但通常沒(méi)必要因?yàn)镸C服務(wù)器本身可以通過(guò)白名單插件管理玩家。注意0.0.0.0/0代表允許所有IPv4地址訪問(wèn)。在開(kāi)放25565端口時(shí)使用它是OK的因?yàn)橛螒蜻B接需要。但絕對(duì)不要在SSH22端口上長(zhǎng)期使用它那等于向全網(wǎng)黑客敞開(kāi)了大門。務(wù)必在初始化配置完成后將SSH規(guī)則的源IP限制為你自己的IP。完成購(gòu)買和配置后記下你的ECS實(shí)例的公網(wǎng)IP地址。稍后我們就要用這個(gè)IP來(lái)連接和管理服務(wù)器。3. 服務(wù)器初始化連接、基礎(chǔ)環(huán)境與Java安裝拿到服務(wù)器后我們首先需要通過(guò)SSH連接它并進(jìn)行一系列基礎(chǔ)設(shè)置。3.1 使用SSH客戶端連接服務(wù)器Windows用戶推薦使用PuTTY或Windows TerminalWin11自帶macOS和Linux用戶直接使用系統(tǒng)自帶的終端Terminal。連接命令格式如下ssh root你的服務(wù)器公網(wǎng)IP例如ssh root123.123.123.123首次連接會(huì)提示主機(jī)密鑰確認(rèn)輸入yes即可。然后輸入你在創(chuàng)建ECS時(shí)設(shè)置的root用戶密碼或者密鑰如果你選擇了密鑰對(duì)登錄方式。成功登錄后你會(huì)看到類似[rootiZbp1... ~]#的命令行提示符這表示你已經(jīng)進(jìn)入了你的云端服務(wù)器。3.2 系統(tǒng)更新與基礎(chǔ)工具安裝首先更新系統(tǒng)軟件包列表并升級(jí)現(xiàn)有軟件確保系統(tǒng)是最新?tīng)顟B(tài)。# 對(duì)于 Alibaba Cloud Linux / CentOS / Rocky Linux 系列 yum update -y # 對(duì)于 Ubuntu / Debian 系列 apt update apt upgrade -y安裝一些我們后續(xù)會(huì)用到的工具如用于解壓的unzip用于下載文件的wget等。# Alibaba Cloud Linux / CentOS / Rocky Linux yum install -y wget unzip tar # Ubuntu / Debian apt install -y wget unzip tar3.3 安裝合適版本的JavaMC服務(wù)端是Java程序所以必須安裝Java運(yùn)行環(huán)境JRE。但不是所有Java版本都適合MC。高版本MC1.17需要Java 16或更高版本而1.18推薦使用Java 17。為了兼容性和性能我建議直接安裝Java 17。這里我們安裝OpenJDK 17這是一個(gè)開(kāi)源免費(fèi)的JDK。# Alibaba Cloud Linux 3 可以直接從默認(rèn)源安裝 yum install -y java-17-openjdk-devel # Ubuntu 22.04 需要先添加倉(cāng)庫(kù) apt install -y software-properties-common add-apt-repository -y ppa:openjdk-r/ppa apt update apt install -y openjdk-17-jre-headless # 如果也需要編譯則安裝 openjdk-17-jdk安裝完成后驗(yàn)證Java版本java -version你應(yīng)該能看到類似openjdk version 17.0.10 2024-01-16的輸出確認(rèn)版本號(hào)是17即可。4. 核心部署服務(wù)端選擇、配置與首次啟動(dòng)這是最核心的一步我們將下載MC服務(wù)端軟件并進(jìn)行初步配置。4.1 選擇并下載服務(wù)端核心官方原版服務(wù)端Vanilla性能一般對(duì)于多人游戲社區(qū)優(yōu)化的服務(wù)端是更好的選擇。我首推Paper它是Spigot的優(yōu)化分支修復(fù)了大量Bug提升了性能并且兼容絕大部分Spigot/Bukkit插件。創(chuàng)建一個(gè)專用目錄并進(jìn)入mkdir -p /opt/minecraft cd /opt/minecraft從Paper官網(wǎng)下載最新構(gòu)建版本。 訪問(wèn) PaperMC 下載頁(yè)面 找到最新版本的Paper例如1.20.4。右鍵點(diǎn)擊Jar下載鏈接復(fù)制鏈接地址。 在服務(wù)器上使用wget下載鏈接地址需要替換成你復(fù)制的wget https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/445/downloads/paper-1.20.4-445.jar -O paper.jar-O paper.jar參數(shù)將下載的文件重命名為paper.jar方便后續(xù)操作。4.2 首次啟動(dòng)與EULA同意MC服務(wù)端需要你同意其最終用戶許可協(xié)議EULA才能運(yùn)行。首次啟動(dòng)服務(wù)端這會(huì)生成必要文件并退出java -Xms2G -Xmx2G -jar paper.jar --nogui-Xms2G設(shè)置JVM堆內(nèi)存初始大小為2GB。-Xmx2G設(shè)置JVM堆內(nèi)存最大大小為2GB。這里我設(shè)置為2G是因?yàn)槲覀兎?wù)器總內(nèi)存4G需要留出約2G給操作系統(tǒng)和其他進(jìn)程。如果你的服務(wù)器內(nèi)存是8G這里可以設(shè)置為-Xms4G -Xmx4G或-Xms6G -Xmx6G。--nogui在無(wú)圖形界面模式下運(yùn)行服務(wù)器環(huán)境沒(méi)有圖形界面。運(yùn)行后你會(huì)看到一些日志輸出然后進(jìn)程停止并生成了幾個(gè)新文件其中最重要的是eula.txt。編輯eula.txt文件表示同意nano eula.txt找到eulafalse這一行將其改為eulatrue然后按CtrlO保存按CtrlX退出nano編輯器。4.3 基礎(chǔ)服務(wù)端配置現(xiàn)在我們可以進(jìn)行一些基礎(chǔ)配置了。編輯主配置文件server.propertiesnano server.properties這里有幾個(gè)關(guān)鍵參數(shù)需要關(guān)注和修改server-ip保持為空即server-ip不要填寫(xiě)你的公網(wǎng)IP。讓服務(wù)器綁定到所有網(wǎng)絡(luò)接口。server-port25565服務(wù)器端口默認(rèn)即可需與安全組開(kāi)放端口一致。online-modetrue非常重要。設(shè)為true時(shí)服務(wù)器會(huì)連接正版Mojang服務(wù)器驗(yàn)證玩家身份防止盜版玩家進(jìn)入。如果你希望允許離線非正版玩家加入需要將其設(shè)為false并配合白名單插件使用但這存在安全風(fēng)險(xiǎn)且無(wú)法獲得完整的游戲體驗(yàn)如皮膚。max-players20最大玩家數(shù)根據(jù)你的預(yù)期設(shè)置。view-distance10玩家視距。這是性能殺手視距越大服務(wù)器需要加載和計(jì)算的區(qū)塊越多負(fù)載呈幾何級(jí)數(shù)增長(zhǎng)。對(duì)于2核4G的配置建議設(shè)置為8-10。降低視距是提升服務(wù)器流暢度最有效的方法之一。simulation-distance8模擬距離1.18即實(shí)體更新和隨機(jī)刻生效的范圍。同樣建議設(shè)置得比視距小一些如8。motdA My Private Minecraft Server服務(wù)器描述玩家在服務(wù)器列表里看到的文字。修改完成后保存退出。4.4 使用Screen或Systemd讓服務(wù)器在后臺(tái)運(yùn)行我們不能一直開(kāi)著SSH窗口運(yùn)行服務(wù)器一旦斷開(kāi)連接進(jìn)程就終止了。我們需要一個(gè)“守護(hù)進(jìn)程”工具。方案一使用Screen簡(jiǎn)單易用Screen可以創(chuàng)建一個(gè)虛擬終端即使SSH斷開(kāi)其中的進(jìn)程也會(huì)繼續(xù)運(yùn)行。# 安裝screen yum install -y screen # 或 apt install -y screen # 創(chuàng)建一個(gè)名為mc的screen會(huì)話并進(jìn)入 screen -S mc # 在screen會(huì)話中啟動(dòng)服務(wù)器 cd /opt/minecraft java -Xms2G -Xmx2G -jar paper.jar --nogui # 要暫時(shí)離開(kāi)這個(gè)screen會(huì)話按 CtrlA然后按 DDetach # 要重新連接回這個(gè)會(huì)話使用screen -r mc # 如果只有一個(gè)screen會(huì)話可以直接用screen -r方案二使用Systemd服務(wù)更專業(yè)、推薦Systemd是Linux的系統(tǒng)和服務(wù)管理器可以設(shè)置服務(wù)器開(kāi)機(jī)自啟、自動(dòng)重啟、日志管理。創(chuàng)建服務(wù)文件nano /etc/systemd/system/minecraft.service寫(xiě)入以下內(nèi)容根據(jù)你的路徑和內(nèi)存調(diào)整[Unit] DescriptionMinecraft Server (Paper) Afternetwork.target [Service] Typesimple Userroot WorkingDirectory/opt/minecraft ExecStart/usr/bin/java -Xms2G -Xmx2G -jar paper.jar --nogui Restarton-abort RestartSec10 [Install] WantedBymulti-user.target啟用并啟動(dòng)服務(wù)systemctl daemon-reload systemctl enable minecraft.service # 開(kāi)機(jī)自啟 systemctl start minecraft.service # 立即啟動(dòng) systemctl status minecraft.service # 查看狀態(tài)查看實(shí)時(shí)日志journalctl -u minecraft.service -f按CtrlC退出日志跟蹤。現(xiàn)在你的MC服務(wù)器已經(jīng)在后臺(tái)穩(wěn)定運(yùn)行了你可以關(guān)閉SSH窗口服務(wù)器不會(huì)停止。5. 進(jìn)階管理插件、世界與日常運(yùn)維一個(gè)基礎(chǔ)的“純凈”服務(wù)器已經(jīng)就緒。但要讓服務(wù)器更有趣、更易管理我們需要引入插件。5.1 插件的安裝與管理Paper服務(wù)端兼容Spigot/Bukkit插件。插件是以.jar結(jié)尾的文件。安裝插件從可信的網(wǎng)站如 SpigotMC 下載插件jar包然后將其放入服務(wù)器的plugins目錄首次啟動(dòng)后自動(dòng)生成。cd /opt/minecraft/plugins # 假設(shè)你通過(guò)SFTP上傳了插件文件或者用wget下載 # wget [插件下載鏈接] -O 插件名.jar加載插件放入插件后需要在游戲內(nèi)或控制臺(tái)執(zhí)行重載命令??刂婆_(tái)推薦如果你用systemd先journalctl -u minecraft.service -f進(jìn)入日志然后直接輸入命令。或者用screen -r mc進(jìn)入screen會(huì)話。游戲內(nèi)以O(shè)P管理員身份進(jìn)入游戲輸入/reload confirmPaper或/reload原版。注意/reload命令并不安全可能導(dǎo)致插件狀態(tài)錯(cuò)亂更好的方式是重啟服務(wù)器。推薦的基礎(chǔ)管理插件LuckPerms當(dāng)今最強(qiáng)大、最流行的權(quán)限管理插件替代了陳舊的GroupManager和PermissionsEx。EssentialsX提供一系列基礎(chǔ)命令如家/home、傳送/tpa、傳送點(diǎn)/warp等是服務(wù)器必備。WorldEdit/WorldGuard如果你是創(chuàng)造模式服務(wù)器或需要保護(hù)領(lǐng)地這兩個(gè)插件是黃金組合。CoreProtect強(qiáng)大的方塊和物品操作記錄與回滾插件用于追查破壞行為或誤操作恢復(fù)。Plan性能分析插件可以監(jiān)控服務(wù)器TPS每秒刻數(shù)、實(shí)體數(shù)量等幫你定位卡頓元兇。安裝插件后通常第一次重啟服務(wù)器時(shí)會(huì)生成各自的配置文件在plugins/插件名/目錄下你需要根據(jù)文檔進(jìn)行配置。5.2 世界管理備份、回滾與多世界1. 手動(dòng)備份世界世界存檔位于/opt/minecraft/world默認(rèn)世界world_nether下界world_the_end末地。備份就是打包這些目錄。cd /opt/minecraft # 停止服務(wù)器確保存檔完整性 systemctl stop minecraft.service # 創(chuàng)建備份目錄如果不存在 mkdir -p backups # 打包并壓縮世界文件夾以日期命名 tar -czf backups/world-backup-$(date %Y%m%d-%H%M).tar.gz world world_nether world_the_end # 啟動(dòng)服務(wù)器 systemctl start minecraft.service2. 自動(dòng)化備份使用Cron定時(shí)任務(wù)編輯Cron任務(wù)crontab -e添加一行例如每天凌晨3點(diǎn)備份0 3 * * * cd /opt/minecraft systemctl stop minecraft.service tar -czf /opt/minecraft/backups/world-backup-$(date \%Y\%m\%d).tar.gz world world_nether world_the_end systemctl start minecraft.service警告這個(gè)命令會(huì)短暫停止服務(wù)器。對(duì)于小型服務(wù)器在凌晨進(jìn)行可以接受。如果要求24小時(shí)不間斷需要考慮更復(fù)雜的“熱備份”方案或者使用支持熱備份的插件如BackupOnEvent。3. 多世界管理使用Multiverse-Core插件可以輕松創(chuàng)建和管理多個(gè)世界如資源世界、生存世界、空島世界。安裝后在游戲內(nèi)使用/mv create 世界名 normal即可創(chuàng)建新世界。5.3 日常運(yùn)維與問(wèn)題排查1. 查看服務(wù)器狀態(tài)systemctl status minecraft.service查看服務(wù)運(yùn)行狀態(tài)。journalctl -u minecraft.service -n 50查看最近50行日志。top或htop查看系統(tǒng)資源CPU、內(nèi)存使用情況。如果Java進(jìn)程內(nèi)存占用RES持續(xù)接近你設(shè)置的-Xmx值說(shuō)明需要增加內(nèi)存或優(yōu)化插件/玩家行為。2. 常見(jiàn)問(wèn)題排查玩家無(wú)法連接檢查安全組25565端口規(guī)則。檢查服務(wù)器日志看是否有錯(cuò)誤信息。常見(jiàn)錯(cuò)誤是io.netty網(wǎng)絡(luò)錯(cuò)誤可能是網(wǎng)絡(luò)波動(dòng)或玩家客戶端問(wèn)題。讓玩家檢查是否輸入了正確的服務(wù)器IP:端口端口默認(rèn)25565可不填。服務(wù)器卡頓TPS低使用/tps命令EssentialsX或Paper自帶或在控制臺(tái)輸入tps查看TPS。20為滿低于15就明顯卡頓。使用/timings report命令Paper生成性能報(bào)告上傳到 Timings Viewer 網(wǎng)站分析它能精確告訴你哪個(gè)插件、哪種實(shí)體Entity或事件Event最消耗資源。通常的罪魁禍?zhǔn)资沁^(guò)高的視距/模擬距離、大量密集的紅石機(jī)械、過(guò)多的掉落物實(shí)體Item、超量的生物尤其是村民、某些設(shè)計(jì)不良的插件??刂婆_(tái)輸入命令無(wú)反應(yīng) 如果你使用systemd直接向服務(wù)輸入命令是無(wú)效的。你需要通過(guò)RCON遠(yuǎn)程控制或者連接到服務(wù)器進(jìn)程的輸入。更簡(jiǎn)單的方法是安裝一個(gè)管理面板或者使用screen -r mc如果你用的是Screen方式。6. 性能調(diào)優(yōu)與安全加固指南服務(wù)器跑起來(lái)只是第一步讓它跑得穩(wěn)、跑得安全才是長(zhǎng)久之計(jì)。6.1 JVM參數(shù)調(diào)優(yōu)之前我們用的-Xms2G -Xmx2G是最基礎(chǔ)的參數(shù)。對(duì)于MC服務(wù)器使用更優(yōu)化的JVM參數(shù)可以提升性能特別是減少因垃圾回收GC導(dǎo)致的卡頓。Aikar大神提供的Flags是社區(qū)公認(rèn)的優(yōu)化方案。將你的啟動(dòng)命令在minecraft.service文件或啟動(dòng)腳本中替換為以下內(nèi)容java -Xms2G -Xmx2G -XX:UseG1GC -XX:ParallelRefProcEnabled -XX:MaxGCPauseMillis200 -XX:UnlockExperimentalVMOptions -XX:DisableExplicitGC -XX:AlwaysPreTouch -XX:G1NewSizePercent30 -XX:G1MaxNewSizePercent40 -XX:G1HeapRegionSize8M -XX:G1ReservePercent20 -XX:G1HeapWastePercent5 -XX:G1MixedGCCountTarget4 -XX:InitiatingHeapOccupancyPercent15 -XX:G1MixedGCLiveThresholdPercent90 -XX:G1RSetUpdatingPauseTimePercent5 -XX:SurvivorRatio32 -XX:PerfDisableSharedMem -XX:MaxTenuringThreshold1 -Dusing.aikars.flagshttps://mcflags.emc.gs -Daikars.new.flagstrue -jar paper.jar --nogui核心解釋-XX:UseG1GC使用G1垃圾收集器適合大內(nèi)存、追求低延遲的場(chǎng)景。-XX:MaxGCPauseMillis200設(shè)定GC最大停頓時(shí)間目標(biāo)為200毫秒。-XX:AlwaysPreTouch啟動(dòng)時(shí)預(yù)接觸所有內(nèi)存頁(yè)避免運(yùn)行時(shí)因分配內(nèi)存產(chǎn)生停頓。-Xms和-Xmx必須設(shè)置為相同值這可以防止堆內(nèi)存動(dòng)態(tài)調(diào)整帶來(lái)的性能開(kāi)銷。修改后記得重啟服務(wù)systemctl restart minecraft.service6.2 服務(wù)端配置優(yōu)化再次打開(kāi)server.properties和bukkit.yml、spigot.yml、paper-global.ymlPaper特有進(jìn)行深度優(yōu)化。降低實(shí)體活動(dòng)范圍在spigot.yml中找到entity-activation-range部分適當(dāng)調(diào)低各類實(shí)體的激活范圍如animals: 16monsters: 24讓更遠(yuǎn)距離的實(shí)體進(jìn)入“睡眠”狀態(tài)減少計(jì)算。限制生物生成在bukkit.yml的spawn-limits部分可以限制各種生物的同時(shí)存在數(shù)量。啟用異步區(qū)塊加載Paper在paper-global.yml中有use-async-chunk-loading: true默認(rèn)確保它是開(kāi)啟的這能防止區(qū)塊加載拖垮主線程。視距與模擬距離再次強(qiáng)調(diào)在server.properties中view-distance和simulation-distance是性能的關(guān)鍵。從10/8開(kāi)始測(cè)試如果卡頓就嘗試降到8/6。6.3 服務(wù)器安全加固SSH安全禁用密碼登錄使用密鑰對(duì)這是最重要的安全措施。在阿里云控制臺(tái)創(chuàng)建實(shí)例時(shí)就可以選擇密鑰對(duì)。如果使用密碼務(wù)必修改/etc/ssh/sshd_config將PasswordAuthentication設(shè)為no然后重啟SSH服務(wù)。修改默認(rèn)端口將SSH端口從22改為一個(gè)大于1024的隨機(jī)端口并在安全組中開(kāi)放此端口同時(shí)關(guān)閉22端口。能減少大量自動(dòng)化攻擊腳本的騷擾。使用Fail2ban安裝fail2ban自動(dòng)屏蔽多次嘗試失敗登錄的IP地址。yum install -y fail2ban # 或 apt install -y fail2ban systemctl enable --now fail2ban游戲內(nèi)安全務(wù)必開(kāi)啟online-modetrue這是抵御“外掛”玩家和攻擊的第一道防線。使用白名單在server.properties中設(shè)置white-listtrue然后在游戲內(nèi)或控制臺(tái)使用/whitelist add 玩家ID添加可信玩家。即使服務(wù)器IP泄露無(wú)關(guān)人員也無(wú)法進(jìn)入。謹(jǐn)慎分配OP權(quán)限不要輕易給人OP。使用LuckPerms插件精細(xì)地分配權(quán)限節(jié)點(diǎn)只給玩家他們需要的權(quán)限。定期備份如前所述自動(dòng)化備份是你最后的防線。遇到惡意破壞或系統(tǒng)故障可以快速回滾。7. 玩家接入與后續(xù)擴(kuò)展一切就緒現(xiàn)在可以邀請(qǐng)朋友們加入了。告知連接信息給你的朋友們服務(wù)器的公網(wǎng)IP地址。如果修改了默認(rèn)端口不推薦則需要告知IP:端口。首次進(jìn)入如果開(kāi)啟了正版驗(yàn)證和白名單玩家需要先用正版啟動(dòng)器登錄并在白名單中才能進(jìn)入服務(wù)器。內(nèi)網(wǎng)穿透完全不需要。阿里云ECS自帶公網(wǎng)IP你的服務(wù)器已經(jīng)位于公網(wǎng)上任何能訪問(wèn)互聯(lián)網(wǎng)的人在滿足白名單等條件后都可以直接連接。那些“櫻花穿透”等工具是針對(duì)沒(méi)有公網(wǎng)IP的家庭寬帶用戶的。后續(xù)擴(kuò)展思路域名綁定覺(jué)得IP難記可以去阿里云萬(wàn)網(wǎng)購(gòu)買一個(gè)便宜的域名通過(guò)DNS的A記錄解析到你的服務(wù)器IP。這樣玩家就可以用mc.yourdomain.com來(lái)連接了。Web管理面板如果你不習(xí)慣命令行可以安裝像Pterodactyl Panel或Minecraft Server Control Panel (MSCP)這樣的開(kāi)源面板通過(guò)網(wǎng)頁(yè)瀏覽器來(lái)管理服務(wù)器、文件、插件甚至管理多個(gè)游戲服務(wù)器。使用Docker容器化對(duì)于進(jìn)階用戶可以將MC服務(wù)器打包成Docker鏡像。這能實(shí)現(xiàn)環(huán)境隔離、快速部署和遷移。你可以在阿里云容器鏡像服務(wù)中管理你的鏡像但這需要一定的Docker和容器編排知識(shí)。監(jiān)控與告警利用阿里云云監(jiān)控為你的ECS實(shí)例設(shè)置CPU、內(nèi)存、網(wǎng)絡(luò)流量的監(jiān)控圖表和告警規(guī)則。當(dāng)資源使用率持續(xù)過(guò)高時(shí)你會(huì)收到短信或郵件通知以便及時(shí)擴(kuò)容或優(yōu)化。搭建并維護(hù)一個(gè)MC服務(wù)器就像經(jīng)營(yíng)一個(gè)小型在線社區(qū)。從最初的硬件選型、環(huán)境配置到中期的插件調(diào)試、性能調(diào)優(yōu)再到長(zhǎng)期的安全運(yùn)維、社區(qū)管理每一個(gè)環(huán)節(jié)都有學(xué)問(wèn)。這個(gè)過(guò)程可能會(huì)遇到各種意想不到的問(wèn)題比如某個(gè)插件沖突導(dǎo)致服務(wù)器崩潰或者一次更新后世界地形出錯(cuò)。但正是解決這些問(wèn)題的過(guò)程帶來(lái)了巨大的成就感。當(dāng)你和朋友們?cè)谧约捍罱ǖ姆€(wěn)定世界里暢游時(shí)你會(huì)覺(jué)得這一切的折騰都是值得的。記住耐心查閱日志、善用社區(qū)資源如Paper和SpigotMC的官方文檔、論壇大部分問(wèn)題都能找到答案。