云主机搭建多线Minecraft服务器

前言
此教程适合初学者,想看多线的部署请看*后。

相信许多朋友和我一样,很喜欢玩MC,但是用别人的服务器总不是个长久之计。为了有一片自己和朋友们的秘密基地,不如自己开设一个服务器。

正文
准备工作:
云主机一台:作为主要的服务器,性能不必太好,有树莓派般的性能即可带起三四人的服务器了。(国内有许多特价的学生机)

安装Linux:我用的Ubuntu 16发行版,国内可能用CentOS一系的居多,本质上大差不离吧。用Windows server也行,但不在本文讨论范围内。

安装JVM:openJDK 和 Oracle 的官方JDK都可以,请下载适合你的操作系统的JDK;个人感觉openJDK性能差于官方JDK。

open JDK可以用 apt-get install 直接安装。

Oracle JDK请去官网下载,藉由FTP等方法部署到服务器上,此方法需要自己配置环境变量。参见Linux公社-Ubuntu安装JDK

获取用于开设服务器jar包:可在官网下载(也许要科学上网) 下载 MINECRAFT :JAVA 版的服务器

(可选)第二台主机:主要用来利用“端口转发”布置多线访问,解决可能存在的网络质量问题。

部署服务器:
#确认Java安装无误
java -version

#显示版本信息则安装无误
openjdk version “1.8.0_181”
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.16.04.1
b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
#切换目录至存放jar的目录
cd ~/mc/mcserver

#运行服务端
#-Xms为初始分配内存 -Xmx*大内存
#-jar 后跟jar包的*对路径。注意!–你的文件名与路径可能与我不同–!
# nogui不需要图形界面,节约性能
java -Xms512M -Xmx1024M -jar “$PWD”/server1.13.2.jar nogui
#建议把上述命令保存为shell脚本方便启动服务器

#初次运行时会强制退出并生成一些文件
#其中eula.txt为用户协议,打开并修改*后的eula=true既视为同意用户协议
#盗版用户需关闭在线模式:修改server.properties文件的online-mode为false

#更详细的Minecraft服务器配置方法请参阅其它教程
更改好配置后,再次启动服务器

现在可以进行测试了,对于默认端口(25565)可以直接填入主机的外网IP进行访问。

tip:利用ssh开启服务器的话,会在关闭会话的同时结束所有此会话下属的程序,也就是会关闭服务器,这明显不是我们所期望的。对此可以使用screen软件来创建虚拟会话保持服务器的运行,参考:linux screen *简单的五个用法

多线连接的方法
本方法核心思路是利用iptables进行端口映射与转发,既利用一台额外的可选服务器作为跳板去访问主服务器,以此解决有人连接不到主服务器的问题。(请保证主服务器与跳板机之间的网络质量,以免适得其反;同时跳板机*好与主服务器不在同一网段,否则意义不大)

#在跳板机上配置iptables

#需打开fword转发功能
nano /etc/sysctl.conf
#将下项注释去掉
#net.ipv4.ipv4_forward=1
#使改动生效
sudo sysctl -p

#假如没有配置用途的话,*好先清空iptables
#端口转发(假设跳板机IP 172.0.0.1开放9528端口 主服务器IP 106.8.8.8)
#在nat表中新增一个路由:把访问172.0.0.1:9528的TCP包利用目的地址转换转发到106.8.8.8:25565
sudo iptables -t nat -A PREROUTING -d 172.0.0.1 -p tcp –dport 9528 -DNAT –to-destination 106.8.8.8:25565

#在nat表中新增一个路由:把106.8.8.8:25565发送的TCP包的源地址改为172.0.0.1
sudo iptables -t nat -A POSTROUTING -d 106.8.8.8 -p tcp –dport 25565 -j SNAT –to 172.0.0.1
运行上述语句后,转发便开始了,可以利用跳板机的公网IP进行测试了。
%title插图%num