CentOS 7點3搭建 Minecraft 服務器
最近 Mojang 登不上,所以 Realms 就買不了。在朋友的慫恿下,自己又想嘗試去管理一臺服務器,於是就租了一臺雲服務器試試。記錄一下過程。
注意,如何購買及使用雲服務器和 Minecraft 服務端的配置不在此文討論範圍
本文只關注如何配置 CentOS7.3 系統使其能運行 Minecraft 服務端
僅供參考,請結合實際情況操作
如有錯誤,歡迎指正,謝謝
服務器上預裝了 CentOS7.3 ,我就省去分區等一些麻煩問題。
目測是最小安裝,連 Vim 都沒有。
先安裝一些軟件。
安裝基礎軟件
因爲系統是預裝的,所以網絡已經配置好了,又輕鬆不少。
先安裝一些我覺得必需的軟件:
yum install [軟件名]
- yum_untils
- wget
- vim
剩下的用到再說。
下載速度還挺快的。
更改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 #建立包的本地緩存
安裝服務器所需軟件
這些是Minecraft開服所需的
Java
我選的版本是 Java1.8
yum list java* | grep java-1.8.0-openjdk #搜索java1.8版本
yum install java-1.8.0-openjdk.x86_64 #選擇相應版本
下載的東西挺多的。
安裝完成後,測試一下:
java -version
安裝成功。
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設置密碼
但是,這只是一個普通用戶,並沒有管理員權限。
提權的方法有很多,這裏我只寫一種。
把用戶添加到wheel組
1. usermod -a -G wheel yangdeng #將yangdeng添加到wheel組
id yangdeng #查看用戶信息
2. 更改/etc/sudoers
使yangdeng能夠使用sudo
來運行root權限的命令
visudo #更改sudo配置信息
找到如下一行,把開頭的註釋符#
去掉
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服務:service sshd restart #用systemctl也可以
啓動 Minecraft 服務器
我用 FileZilla 來上傳文件。
把上傳好的文件解壓到相應文件夾,是時候用screen
- 新建一個screen會話:
screen -S official-ie-180211
- 然後接下來的操作都在此會話窗口進行,如果想離開(該會話仍會在後臺運行)可以Ctrl+a 再按d
若想恢復會話:
screen -r #恢復上一次離線的會話
或
screen -x [會話id]
而會話id可通過screen -ls
查看
(圖有點不清晰)離線會話可以做很多事情:
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/
文件 - 參考鏈接: