赞
踩
准备6月份了,有个之前玩的挺好的一个朋友提议一下要不要暑假搞一个关于星系生存的联机,我灵机一想,虽然距离上一次游玩也才2年多时间,然后又看了看官网更新了一下模组,想着就试一试的态度成功拉拢了几个好同学入坑。其实你看到这篇文章的时候这个服务端已经上线到服务器(Linux)上了,只是我简单想记录一下而已,因为关于开服的教程还蛮少的。
以上环境都准备差不多了,就准备开搞了
这里说一下为什么客户端和服务器使用的java8不一样
其实本来我也是想用open9在客户端上的,用了几次发现有些mod它不支持就没用了,而本来服务器我也是想用oracle的,结果发现它居然可以运行起来。。。
主要是因为open9以极强大的节约内存空间的能力,我服务器配置才2c4g,使用了Oracle直接内存飙满,而open9却节省了一半的内存就成为了我的首选。而且还有一个原因就是好像open9对Linux会比较友好
使用xshell软件连接远程服务器
#创建一个目录/opt/mc/server
mkdir /opt/mc/server -p
#创建一个java目录
mkdir /opt/mc/java -p
#上传Mohist核心到服务器上的server目录下
#我用的Xshell直接拖到指定目录松开即可
这边的话我们先不要急,由于我们一直处于root用户的环境下,很容易对其他其他文件造成误操作,这时候我们可以创建一个新的普通用户daibaobao,用于管理我们的服务器。
当我们需要root权限的时候,可以使用sudo命令进行提权即可
useradd用法:
useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]
或
useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]
参数说明:
-c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录> 指定用户登入时的起始目录。
-D 变更预设值.
-e<有效期限> 指定帐号的有效期限。
-f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
-g<群组> 指定用户所属的群组。
-G<群组> 指定用户所属的附加群组。
-m 自动建立用户的登入目录。
-M 不要自动建立用户的登入目录。
-n 取消建立以用户名称为名的群组.
-r 建立系统帐号。
-s <shell> 指定用户登入后所使用的shell。
-u <uid> 指定用户ID。
#创建普通用户daibaobao useradd daibaobao passwd daibaobao #授权sudoers whereis sudoers ls -l /etc/sudoers chmod -v +w /etc/sudoers #将普通用户daibaobbao添加到/etc/sudoers vim /etc/sudoers #找到并添加 ## Allow root to run any commands anywhere root ALL=(ALL) ALL daibaobao ALL=(ALL) ALL #回收权限 chmod -v -w /etc/sudoers
添加完sudoers后,我们的普通用户daibaobao正式拥有sudo的权限了
那接下来我们就使用普通用户进行后面的操作吧!
#切换到普通用户
su - daibaobao
sudo ls -l
#输入密码,成功执行
普通用户拥有sudo权限后就没有使用root用户进行裸奔了,所以干脆直接禁用会好一点
sudo vim /etc/ssh/sshd_config # Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server UseDNS no AddressFamily inet SyslogFacility AUTHPRIV #这一行改为no PermitRootLogin no #保存退出 #重启sshd服务 sudo systemctl restart sshd
测试一下是否可以使用root用户
发现,即使我们输入正确的密码也无法远程登录root用户,不过这都是一下简单的操作,更深入的内容请移步付费内容~~
由于仅仅创建上面的普通用户代替root貌似还不够,因为万一,我们的Mohist服务端被非法分子侵入了,则直接就是daibaobao用户,这也是非常危险的。所以我们需要用一个专门的用户运行我们的服务端,这样即使服务端被侵入了也只是mc用户而已,对我们的系统是没有多大的影响。
#创建一个不能用于登录只能用于运行服务的mc用户
sudo useradd -d /opt/mc -m -s /bin/bash mc
#由于之前是使用root创建的mc目录的,所以我们需要对该目录下的所有文件重新归属为mc用户
sudo chown mc:mc -R /opt/mc/
#切换到mc用户
sudo su - mc
接下来我们就需要正式开始部署mc的服务端了,讲了这么久才到正题,抱歉抱歉~
#上传Java8(open9)到服务端 cd /opt/mc/java/ tar -zxvf ibm-semeru-open-jdk_x64_linux_8u332b09_openj9-0.32.0.tar.gz rm -rf ibm-semeru-open-jdk_x64_linux_8u332b09_openj9-0.32.0.tar.gz cd /opt/mc/java/jdk8u332-b09/jre/bin #其实到这一步,本应该要配置环境变量,为了简化操作直接引用java的绝对路径即可 #复制当前路径+上java,后面有用 pwd /opt/mc/java/jdk8u332-b09/jre/bin/java #编写我们的Mohist端启动脚本 cd /opt/mc/server/ vim Start.sh /opt/mc/java/jdk8u332-b09/jre/bin/java -Xms512M -Xmx2048M -XX:+UseG1GC -XX:+AggressiveOpts -XX:+UseCompressedOops -jar mohist-1.12.2-321-server.jar #赋上执行权限 chmod +x Start.sh #一键开机 ./Start.sh
静静等待它直接自动更新,可能会有的同学到这一步会更新失败,是因为资源都是国外的,可以相应设置一下代理(这里就不涉及这块知识讲解)
好了到这一步就需要手动输入一下true同意一下协议才能继续往下操作,回车
到了这一步基本上就已经差不多了,已经看到开服成功了
#我们先暂时停止服务端,进行后面的配置文件设置
stop
可以看到,我们server目录下已经生成了很多相关的配置文件
配置server.properties
vim server.properties
#只是简单的把这个改为false而已,其他游戏规则根据服主的设定进行
#这个是否只支持正版登录,不要笑了,不要笑了,谁买得起150多块的正版,起码我买不起
#关掉这个,我们离线版本呢才能进入服务器
online-mode=false
到这里,你以为结束了?ok了?No,No,No
由于是在公网的环境下,我们的防火墙是必须要保持开启的,不然我们前面做了那么多安全相关的操作是为了什么?
你一手systemctrl stop firewall就能解决问题?
默认的mc服务端的端口为25565,所以,我们的防火墙开放这个端口,咋们就可以愉快的玩耍了!
#退出mc用户,切换回普通用户
exit
#查看已经开放的端口,我就不给你看了,隐私这东西谁都有嘛~
sudo firewall-cmd --list-ports --permanent
#开放25565端口
sudo firewall-cmd --add-port=25565/tcp --permanent
success
#重新加载firewall配置
sudo firewall-cmd --reload
这时候,我们终于可以开机进入服务器了
开机,取决于你们的1.12.2客户端,网上一堆,随便下一个可以使用mod客户端即可
#等会等会,先把服务端起来先,使用mc用户
...
#省略一万行代码
欧耶!成功登录进入我们的服务器了
服务端显示用户进入!
可以和基友一起愉快的玩耍了~!!!
至于插件,模组之类七七八八的东西,只能由各位服主进行更深入配置了!
想不到吧?居然还有扩展内容_
简单讲一下吧,这里就是关于Mohist服务端在服务器上保持后台运行,因为我们的Xshell一旦断开连接,当前连接shell下的所有进程都会关闭,因而我们的服务端也会关闭,这就不利于服务端的稳定性。
所以这个扩展内容就是让你放开双手,放下一切,关上电脑。
#下载screen,这是让你保持后台连接的
sudo yum install -y screen
screen语法:
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]
参数说明:
-A 将所有的视窗都调整为目前终端机的大小。
-d <作业名称> 将指定的screen作业离线。
-h<行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s <shell> 指定建立新视窗时,所要执行的shell。
-S <作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或–list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
#创建一个mc视窗
sudo su - mc
screen -S mc
cd /opt/mc/server
./Start.sh
#退出当前视窗
Ctrl+a+d
#查看正在运行后台任务
screen -ls
这下,你真的可以松开双手了!
关闭服务器
#切换到后台
screen -r mc
#停止服务器
stop
没有总结~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。