## 在openwrt上搭建MC服务器
一次在TG群水群的时候,偶然得知了openwrt能安装alpine linux的包管理器`apk`,还因为alpine和openwrt都是使用的musl libc库的原因,能正常使用由apk安装的软件。
![alpine_1.png](https://s2.loli.net/2022/06/05/kDxtLrhdoyJf68H.png)
![alpine_2.png](https://s2.loli.net/2022/06/05/aBmXcfLHbSYVCGw.png)
<br/>
先安装apk
```shell
opkg update && opkg install apk alpine-keys alpine-repositories screen
```
screen用于新建一个shell窗口,保证在断开连接后,服务器依旧能运行。
<br/>
更新源,并安装java环境
```
apk update && apk add openjdk11-jre
```
要是有特殊需求也可以安装完整的jdk
```
apk add openjdk11-jdk
```
java安装在`/usr/lib/jvm`文件夹下,使用`du -h`命令计算,发现完整的jdk占用了160M的空间,需要注意自己的overlay空间是否足够。
<br/>
然后找个地方建个文件夹,下载服务器核心,我比较喜欢使用papermc: [https://papermc.io/downloads](https://papermc.io/downloads)。
建议把硬盘剩余空间建立成一个分区,然后在那里面开服,防止不知道什么时候服务器相关的文件把overlay空间用完了,导致在web界面修改的配置无法保存。
<br/>
下载好核心后就可以启动服务器了,这里使用到最开始安装的screen。
```shell
screen -S 任意名字 # 创建一个shell窗口
screen -x 上面任意写的名字 # 回到某个已经创建的shell窗口
screen -ls # 查看已创建的shell窗口
```
同时按下`Ctrl+A+D`用于退出当前的screen,并将当前screen放在后台运行。也可以输入`exit`来退出screen,这种方式会销毁当前的screen。
<br/>
简单启动服务器
```shell
java -jar 服务器核心.jar
```
如果软路由内存1G的话,建议给个750M到800M的内存,不过会占用一部分的虚拟内存,但如果硬盘速度不够快就算了,虚拟内存速度慢会影响软路由的运行;软路由内存2G及以上可以分配1300M及以上的内存。
具体优化参数可以参考MCBBS的这篇帖子[Minecraft服务器优化教程 —— 让多带50%的玩家不再是梦](https://www.mcbbs.net/thread-478126-1-1.html)。
[学习,记录,骚操作] 在openwrt上搭建MC服务器