最近 Mojang 登不上,所以 Realms 就买不了。在朋友的怂恿下,自己又想尝试去管理一台服务器,于是就租了一台云服务器试试。记录一下过程。
注意,如何购买及使用云服务器和 Minecraft 服务端的配置不在此文讨论范围
本文只关注如何配置 CentOS7.3 系统使其能运行 Minecraft 服务端
仅供参考,请结合实际情况操作
如有错误,欢迎指正,谢谢
服务器上预装了 CentOS7.3 ,我就省去分区等一些麻烦问题。
目测是最小安装,连 Vim 都没有。
先安装一些软件。
因为系统是预装的,所以网络已经配置好了,又轻松不少。
先安装一些我觉得必需的软件:
yum install [软件名]
此项不是必须的,可以跳过。
我把原来的源改为阿里的。
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开服所需的
我选的版本是 Java1.8
yum list java* | grep java-1.8.0-openjdk #搜索java1.8版本
yum install java-1.8.0-openjdk.x86_64 #选择相应版本
下载的东西挺多的。
安装完成后,测试一下:
java -version
安装成功。
这玩意是一个虚拟终端,可以让命令在后台运行。
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连接。
本地为 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也可以
我用 FileZilla 来上传文件。
把上传好的文件解压到相应文件夹,是时候用screen
screen -S official-ie-180211
若想恢复会话: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端口
云服务器则要在其虚拟防火墙中添加准入规则,帮助文档都有。
sudo ssh-keygen -lf [公钥路径]
查看/etc/sudoers/
文件 CentOS 7 上的 FirewallD 简明指南
Tutorials/Setting up a server