CentOS 7.3 搭建 Minecraft 服务器,centosminecraft


CentOS 7点3搭建 Minecraft 服务器


最近 Mojang 登不上,所以 Realms 就买不了。在朋友的怂恿下,自己又想尝试去管理一台服务器,于是就租了一台云服务器试试。记录一下过程。


注意如何购买及使用云服务器和 Minecraft 服务端的配置不在此文讨论范围
本文只关注如何配置 CentOS7.3 系统使其能运行 Minecraft 服务端
仅供参考,请结合实际情况操作
如有错误,欢迎指正,谢谢


CentOS 7点3搭建 Minecraft 服务器 安装基础软件 更改yum源 安装服务器所需软件 Java Screen 添加用户和组 配置SSH 启动 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

相关内容