|
| 1 | +--- |
| 2 | +title: 用闲置树莓派搭建一个Minecraft服务器 |
| 3 | +date: 2025-08-05 18:53:40 |
| 4 | +tags: |
| 5 | +--- |
| 6 | + |
| 7 | +记录一下从0开始搭建一个树莓派minecraft服务器,并且使用FRP内网穿透到公网 |
| 8 | + |
| 9 | +# 硬件准备工作 |
| 10 | + |
| 11 | +一台空闲的树莓派,一台有公网IP地址的VPS服务器 |
| 12 | + |
| 13 | +# 配置树莓派 |
| 14 | + |
| 15 | +安装树莓派OS镜像,配置用户名密码 |
| 16 | +给树莓派通电 |
| 17 | + |
| 18 | +## 固定树莓派的静态IP |
| 19 | + |
| 20 | +打开路由器设置面板,找到DHCP静态IP分配,给树莓派固定一个IP |
| 21 | +如果忘了也可以用指令查看树莓派的IP |
| 22 | + |
| 23 | +```shell |
| 24 | +$ hostname -I # 示例输出:192.168.2.102 |
| 25 | +``` |
| 26 | + |
| 27 | +## 开启VNC远程桌面 |
| 28 | + |
| 29 | +登录ssh开启设置面板 |
| 30 | + |
| 31 | +```shell |
| 32 | +$ sudo raspi-config |
| 33 | +``` |
| 34 | + |
| 35 | +1. 选择 **Interface Options** |
| 36 | +2. 选择 **VNC** |
| 37 | +3. **Would you like the VNC Server to be enabled?** 选择 **YES** |
| 38 | + |
| 39 | +打开自己电脑上的VNC软件,使用用户名密码登录虚拟桌面 |
| 40 | + |
| 41 | +## 安装java |
| 42 | + |
| 43 | +```sh |
| 44 | +$ sudo -i # 临时获得管理员权限 |
| 45 | +$ cd /usr/local |
| 46 | +``` |
| 47 | + |
| 48 | +打开树莓派的浏览器 下载[jdk](https://www.oracle.com/java/technologies/downloads/#java21),此时文件会在`/home/<你的用户名>/Downloads/`目录下 |
| 49 | + |
| 50 | +```sh |
| 51 | +$ mkdir java |
| 52 | +$ mv /home/<你的用户名>/Downloads/* /usr/local/java/ |
| 53 | +$ cd java |
| 54 | +$ tar -zxvf jdk-21_linux-aarch64_bin.tar.gz |
| 55 | +# 会输出一些日志 |
| 56 | +``` |
| 57 | + |
| 58 | +配置环境变量 |
| 59 | + |
| 60 | +```sh |
| 61 | +$ nano /etc/profile |
| 62 | +``` |
| 63 | + |
| 64 | +在文件最后添加 |
| 65 | + |
| 66 | +```sh |
| 67 | +# jdk版本号可能不同,注意辨别 |
| 68 | +export JAVA_HOME=/usr/local/java/jdk-21.0.8 |
| 69 | +export CLASSPATH=.:$JAVA_HOME/lib/ |
| 70 | +export PATH=.:$JAVA_HOME/bin:$PATH |
| 71 | +# 退出方法:Ctrl+O,Enter,Ctrl+X |
| 72 | +``` |
| 73 | + |
| 74 | +重载文件 |
| 75 | + |
| 76 | +```sh |
| 77 | +$ source /etc/profile |
| 78 | +``` |
| 79 | + |
| 80 | +检查是否安装成功 |
| 81 | + |
| 82 | +```sh |
| 83 | +$ java -version |
| 84 | + |
| 85 | +# 看见如下类似输出则表示成功 |
| 86 | +java version "21.0.8" 2025-07-15 LTS |
| 87 | +Java(TM) SE Runtime Environment (build 21.0.8+12-LTS-250) |
| 88 | +Java HotSpot(TM) 64-Bit Server VM (build 21.0.8+12-LTS-250, mixed mode, sharing) |
| 89 | +``` |
| 90 | + |
| 91 | +## 下载mc服务端 |
| 92 | + |
| 93 | +打开浏览器下载安装包,我用[fabric](https://fabricmc.net/use/server/)端 |
| 94 | + |
| 95 | +```sh |
| 96 | +$ cd .. # 应该退回至/usr/local/ |
| 97 | +$ mkdir minecraft |
| 98 | +$ mv /home/<你的用户名>/Downloads/* /usr/local/minecraft |
| 99 | +``` |
| 100 | + |
| 101 | +首次运行必定失败,因为没有同意eula协议 |
| 102 | + |
| 103 | +```sh |
| 104 | +# 我的树莓派8G,这里配置4G内存 |
| 105 | +# 注意安装包的名字,版本不同,名字必定不一样 |
| 106 | +$ java -Xmx4G -jar fabric-server-mc.1.21.1-loader.0.17.0-launcher.1.1.0.jar |
| 107 | +``` |
| 108 | + |
| 109 | +同意eula协议 |
| 110 | + |
| 111 | +```sh |
| 112 | +$ nano eula.txt # 将其改为eula=true |
| 113 | +$ # 退出方法:Ctrl+O,Enter,Ctrl+X |
| 114 | +``` |
| 115 | + |
| 116 | +## 配置frp |
| 117 | + |
| 118 | +树莓派是arm架构,下载[frp](https://github.com/fatedier/frp/releases),本文编写的时候最新版本为0.63.0 |
| 119 | + |
| 120 | +```sh |
| 121 | +$ cd .. # 当前的目录应该在/usr/local/java |
| 122 | +$ wget https://github.com/fatedier/frp/releases/download/v0.63.0/frp_0.63.0_linux_arm64.tar.gz |
| 123 | +# 会输出一些日志 |
| 124 | +$ tar -zxvf frp_0.63.0_linux_arm64.tar.gz |
| 125 | +# 会输出一些日志 |
| 126 | +$ mv frp_0.63.0_linux_arm64 frp # 改个名字方便后续操作 |
| 127 | +``` |
| 128 | + |
| 129 | +编辑配置信息 |
| 130 | + |
| 131 | +```sh |
| 132 | +$ cd frp |
| 133 | +$ nano frpc.toml # 这里frpc中的c代表client客户端 |
| 134 | +``` |
| 135 | + |
| 136 | +编辑`frpc.toml` |
| 137 | + |
| 138 | +```toml |
| 139 | +serverAddr = "VPS公网IP地址" |
| 140 | +serverPort = 7000 # 默认值 |
| 141 | +auth.method = "token" |
| 142 | +auth.token = "设一个密码" |
| 143 | + |
| 144 | +[[proxies]] |
| 145 | +name = "取一个服务名字" |
| 146 | +type = "tcp" |
| 147 | +localIP = "192.168.2.102" # 树莓派IP地址 |
| 148 | +localPort = 25565 # mc开服默认值 |
| 149 | +remotePort = 25565 # mc开服默认值 |
| 150 | + |
| 151 | +## 退出方法:Ctrl+O,Enter,Ctrl+X |
| 152 | +``` |
| 153 | + |
| 154 | +## 安装tmux |
| 155 | + |
| 156 | +本文使用tmux实现,也有screen的用法,但是我喜欢tmux。 |
| 157 | + |
| 158 | +```shell |
| 159 | +$ apt install tmux |
| 160 | +``` |
| 161 | + |
| 162 | +# 配置VPS |
| 163 | + |
| 164 | +ssh登录邮件里的root账户 |
| 165 | + |
| 166 | +## 配置frp |
| 167 | + |
| 168 | +在VPS端安装[frp](https://github.com/fatedier/frp/releases) |
| 169 | + |
| 170 | +```shell |
| 171 | +$ cd /usr/local |
| 172 | +$ wget https://github.com/fatedier/frp/releases/download/v0.63.0/frp_0.63.0_linux_amd64.tar.gz |
| 173 | +$ # 会输出一些日志 |
| 174 | +$ tar -zxvf frp_0.63.0_linux_amd64.tar.gz |
| 175 | +$ # 会输出一些日志 |
| 176 | +$ mv frp_0.63.0_linux_amd64 frp # 改个名字方便后续操作 |
| 177 | +``` |
| 178 | + |
| 179 | +编辑配置文件 |
| 180 | + |
| 181 | +```sh |
| 182 | +$ cd frp |
| 183 | +$ nano frps.toml # 这里frps中的s代表server服务端 |
| 184 | +``` |
| 185 | + |
| 186 | +编辑`frps.toml` |
| 187 | + |
| 188 | +```toml |
| 189 | +bindPort = 7000 |
| 190 | +auth.method = "token" |
| 191 | +auth.token = "和树莓派一样的密码" |
| 192 | + |
| 193 | +[webServer] # 开dashboard功能,不需要可以不配置 |
| 194 | +addr = "127.0.0.1" # 不暴露在公网,可通过ssh隧道访问,要暴露在公网则为"0.0.0.0" |
| 195 | +port = 7500 |
| 196 | +user = "?" |
| 197 | +password = "********" |
| 198 | +``` |
| 199 | + |
| 200 | +## 后台运行frp |
| 201 | + |
| 202 | +同树莓派端操作 |
| 203 | + |
| 204 | +```sh |
| 205 | +$ apt install tmux |
| 206 | +``` |
| 207 | + |
| 208 | +开放frp监听的端口7000和mc服务器用到的端口25565 |
| 209 | + |
| 210 | +```shell |
| 211 | +$ ufw allow 7000/tcp |
| 212 | +$ ufw allow 25565/tcp |
| 213 | +``` |
| 214 | + |
| 215 | +打开一个新窗口运行frp |
| 216 | + |
| 217 | +```sh |
| 218 | +$ tmux new -s <服务名字> |
| 219 | +$ cd /usr/local/frp |
| 220 | +$ ./frps -c frps.toml |
| 221 | +# Ctrl+B再按D,退出窗口 |
| 222 | +``` |
| 223 | + |
| 224 | +重回窗口 |
| 225 | + |
| 226 | +```shell |
| 227 | +$ tmux attach -t <服务名字> |
| 228 | +``` |
| 229 | + |
| 230 | +检查功能是否开启,看到注释中的输出则正常运作 |
| 231 | + |
| 232 | +```sh |
| 233 | +$ tmux ls |
| 234 | +# frp: 1 windows (created 时间..) |
| 235 | +$ ss -tlnp | grep 7000 |
| 236 | +# 有输出则frp工作正常 |
| 237 | +``` |
| 238 | + |
| 239 | +# 在树莓派中启动服务器 |
| 240 | + |
| 241 | +## 编写start脚本 |
| 242 | + |
| 243 | +```sh |
| 244 | +$ cd /usr/local/minecraft |
| 245 | +$ nano start.sh |
| 246 | +``` |
| 247 | + |
| 248 | +将`start.sh`修改为如下 |
| 249 | + |
| 250 | +```sh |
| 251 | +#!/bin/bash |
| 252 | +java -Xmx4G -jar fabric-server-mc.1.21.1-loader.0.17.0-launcher.1.1.0.jar nogui |
| 253 | +``` |
| 254 | + |
| 255 | +添加执行权限 |
| 256 | + |
| 257 | +```shell |
| 258 | +$ chmod +x start.sh |
| 259 | +``` |
| 260 | + |
| 261 | +## 运行frp和服务器 |
| 262 | + |
| 263 | +### 运行frp |
| 264 | + |
| 265 | +```sh |
| 266 | +$ tmux new -s frp |
| 267 | +$ cd /usr/local/frp |
| 268 | +$ ./frpc -c frpc.toml |
| 269 | +# Ctrl+B再按D,退出窗口 |
| 270 | +``` |
| 271 | + |
| 272 | +### 运行服务器 |
| 273 | + |
| 274 | +```sh |
| 275 | +$ tmux new -s mcserver |
| 276 | +$ cd /usr/local/minecraft |
| 277 | +$ ./start.sh |
| 278 | +# Ctrl+B再按D,退出窗口 |
| 279 | +``` |
| 280 | + |
| 281 | +检查功能是否开启,看到如下输出则正常运行 |
| 282 | + |
| 283 | +```sh |
| 284 | +$ tmux ls |
| 285 | +# frp: 1 windows (created 时间..) |
| 286 | +# mcserver: 1 windows (created 时间..) |
| 287 | +``` |
| 288 | + |
| 289 | +# (可选)配置域名 |
| 290 | + |
| 291 | +现在已经可以通过VPS的公网IP登录游戏进行游玩了 |
| 292 | + |
| 293 | +``` |
| 294 | +?.?.?.?:25565 # VPS公网IP |
| 295 | +``` |
| 296 | + |
| 297 | +如果有自己的域名,可以登录[cloudflare dashboard](https://dash.cloudflare.com/),在DNS中添加记录 |
| 298 | +示例: |
| 299 | +| | | |
| 300 | +| :- | :- | |
| 301 | +| 类型 | A | |
| 302 | +| 名称(必需) | rasp | |
| 303 | +| IPv4 地址(必需) | <VPS公网IP> | |
| 304 | +| 代理状态 | 仅DNS | |
| 305 | + |
| 306 | +就可以通过你的域名登录了 |
| 307 | + |
| 308 | +``` |
| 309 | +rasp.<你的域名>:25565 |
| 310 | +``` |
0 commit comments