CentOS 7.3 搭建 Minecraft 服務器

CentOS 7點3搭建 Minecraft 服務器


最近 Mojang 登不上,所以 Realms 就買不了。在朋友的慫恿下,自己又想嘗試去管理一臺服務器,於是就租了一臺雲服務器試試。記錄一下過程。


注意如何購買及使用雲服務器和 Minecraft 服務端的配置不在此文討論範圍
本文只關注如何配置 CentOS7.3 系統使其能運行 Minecraft 服務端
僅供參考,請結合實際情況操作
如有錯誤,歡迎指正,謝謝



服務器上預裝了 CentOS7.3 ,我就省去分區等一些麻煩問題。
目測是最小安裝,連 Vim 都沒有。
先安裝一些軟件。

安裝基礎軟件

因爲系統是預裝的,所以網絡已經配置好了,又輕鬆不少。
先安裝一些我覺得必需的軟件:
yum install [軟件名]

  • yum_untils
  • wget
  • vim

sta003
剩下的用到再說。
下載速度還挺快的。


更改yum源

此項不是必須的,可以跳過。
我把原來的源改爲阿里的。

mkdir ~/bk #建立備份目錄
mv /etc/yum.repos.d/CentOS-Base.repo ~/bk/CentOS-Base.repo.bak #備份文件
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all #清理緩存
yum makecache #建立包的本地緩存

sta004


安裝服務器所需軟件

這些是Minecraft開服所需的

Java

我選的版本是 Java1.8
yum list java* | grep java-1.8.0-openjdk #搜索java1.8版本
sta006
yum install java-1.8.0-openjdk.x86_64 #選擇相應版本
sta007
下載的東西挺多的。
安裝完成後,測試一下:
java -version
sta010
安裝成功。

Screen

這玩意是一個虛擬終端,可以讓命令在後臺運行。
yum install screen
它有很多用法,我最常用就這幾個:

screen -S screenname #新建一個叫screenname的screen會話
screen -ls #列出當前所有的screen會話
screen -r #恢復上一次離線的會話
screen -x [會話id] #恢復指定id的會話,id可通過 screen -ls 查看
screen -d #離線(不是關閉)當前會話
#離線會話還可以通過快捷鍵C-a d完成(先按組合鍵Ctrl+a,再按d)

更多信息請自行搜索或見此


添加用戶和組

由於是預裝系統,系統管理員就只有root。
安全起見,我新建兩個用戶,一個用於管理系統,另一個用於啓動mc服務器。
首先新建一個用戶組(並不是必須的),再新建一個用戶,指定其初始用戶組。
然後爲此用戶設置密碼。

groupadd hadmin #新建用戶組
useradd -g hadmin yangdeng #新建用戶並指定其初始用戶組爲 hadmin
passwd yangdeng #爲yangdeng設置密碼

sta011
但是,這只是一個普通用戶,並沒有管理員權限。
提權的方法有很多,這裏我只寫一種。
把用戶添加到wheel組
1. usermod -a -G wheel yangdeng #將yangdeng添加到wheel組
id yangdeng #查看用戶信息
sta014
2. 更改/etc/sudoers使yangdeng能夠使用sudo來運行root權限的命令
visudo #更改sudo配置信息
找到如下一行,把開頭的註釋符#去掉
sta023
3. ok

現在添加一個普通用戶並設置密碼

groupadd minecraft #新建用戶組
useradd -g minecraft mcadmin #新建用戶並指定其初始用戶組
passwd mcadmin #爲mcadmin設置密碼

配置SSH

以上操作都是在網頁端的控制檯完成的,是時候改用ssh連接。
本地爲 Windows ,所以操作稍微麻煩。
ssh客戶端爲 PuTTY ,如何連接,生成密鑰對就不寫了。
配置公鑰登陸需要把公鑰上傳至服務器相應用戶的~/.ssh/authorized_keys中。
但是sshd的嚴格模式對~/.ssh~/.ssh/authorized_keys的權限有要求。我又找不到可以運行ssh-copy-id的客戶端,只能自己新建。
~/.ssh權限爲700,~/.ssh/authorized_keys權限爲600

#先以yangdeng賬戶登錄
mkdir ~/.ssh #新建目錄
chmod 700 ~/.ssh #設置權限
touch ~/.ssh/authorized_keys #新建文件
chmod 600 ~/authorized_keys

建好目錄後就可以導入公鑰,公鑰很長,但只能在authorized_keys中佔一行的位置(即很長的一行)。
另外一個賬號也是這樣配置。

搞定公鑰導入後配置ssh服務端即sshd:
sudo vim /etc/ssh/sshd_config
找到並修改或添加:

PubkeyAuthentication yes #允許公鑰登陸
#以下是一些安全選項
LoginGraceTime 25 #認證時間,超過時間未完成登陸則斷開連接,單位爲秒
PermitRootLogin no #不允許root在ssh上登陸
StrictModes yes #嚴格模式
MaxAuthTries 4 #最大登陸認證錯誤次數
MaxSessions 5 #最大ssh會話數

更多關於sshd配置可

最後重啓sshd服務:service sshd restart #用systemctl也可以


啓動 Minecraft 服務器

我用 FileZilla 來上傳文件。
把上傳好的文件解壓到相應文件夾,是時候用screen

  • 新建一個screen會話:screen -S official-ie-180211
  • 然後接下來的操作都在此會話窗口進行,如果想離開(該會話仍會在後臺運行)可以Ctrl+a 再按d
  • 若想恢復會話:screen -r #恢復上一次離線的會話
    screen -x [會話id] 而會話id可通過screen -ls查看
    stb006 (圖有點不清晰)

  • 離線會話可以做很多事情:

    free -h查看內存使用情況
    netstat -antup 查看網絡連接情況,需要安裝net-tools
    備份一下服務器日誌
    …..

  • 退出會話可在該會話用exit

screen的功能很強大,利用它能寫一些有用的腳本。

由於服務器的提供商提供防火牆,所以 CentOS 7.3 自帶的防火牆是默認關閉的。
不然要在系統裏頭開啓mc服務端的默認端口:25565
sudo firewall-cmd --Permanent --add-port=25565/tcp #永久添加25565端口
雲服務器則要在其虛擬防火牆中添加准入規則,幫助文檔都有。


其他


  • 如果ssh的公鑰登陸沒問題了建議關閉密碼登陸。
  • 公鑰的哈希摘要可以通過sudo ssh-keygen -lf [公鑰路徑]查看
  • java運行mc客戶端時應該是不需root權限的,否則就要修改/etc/sudoers/文件
  • 參考鏈接:

CentOS 7 上的 FirewallD 簡明指南
Tutorials/Setting up a server

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章