使用开源软件内网穿透实现 Minecraft 联机

提示:本教程制作是考虑到服务端和客户端都是Linux系统的情况下编写的,Windows端指令多数情况下只有少量差异。

1. 购买服务器

首先,您需要购买一个Linux服务器。这个服务器至少应该有三个端口的服务器,其中一个是用于SSH登录,另外两个是用于frp工具所需,后文会提及为什么需要两个端口。

在购买时,请注意服务器的配置,确保其能够满足您的需求。不过按照我的实践经验,雨云提供的 云服务器 最低配置也足够稳定运行这套流程。可以参考这张图片的配置。

图片

因为更多的负荷是在本地的电脑所运行的 Java 服务端上,而不是负责转发网络的服务器。

2. 下载并解压frp

接下来,您需要下载最新的frp发行版。您可以通过访问 frp GitHub页面 后点击这里来获取下载链接。

开发者可能会发布更新的版本,这个位置的版本号可能和截图的时候不太一样,这或许不太重要,除非主版本号出现了变动。

下载完成后,解压文件,您将得到以下四个文件:

文件名 说明
frps 服务端主程序
frps.toml 服务端配置文件
frpc 客户端主程序
frpc.toml 客户端配置文件

3. 修改配置文件

在开始使用frp之前,您需要根据您的需求修改服务端和客户端的配置文件(frps.toml和frpc.toml)。具体的配置方法请参考frp的文档,官方提供了中文和英文两种文档,比如这里:https://github.com/fatedier/frp/blob/dev/README_zh.md

客户端配置

serverPort 端口说的是服务器打开的,frps 监听的端口

localPort 端口是本地监听的端口,比如图片中,端口监听 2333 端口,就需要 Minecraft 在这个端口开放局域网游戏服务器

remotePort 就是远程的端口,这直接影响朋友填写的端口号

这就是为什么 frp 需要两个端口的原因

服务端配置

服务端的配置要简单的多

在规定了 auto.token 之后,也只是需要额外写 3 行中提到的密钥就可以了,bindPort 就是上文提到的 serverPort

这样,你的朋友只需要填写 ServerIP:remotePort 就可以加入游戏了

4. 上传文件到服务器

修改完配置文件后,需要将服务端主程序(frps)和服务端配置文件(frps.toml)上传到您购买的服务器。因为之前开放了三个端口,通过 ssh 发送到服务器的对应位置就可以了,这种指令一般是以 scp 开头,就像……

scp -P [端口号] ./frps ./frps.toml user@your_server_ip:~/frp

额外提示:因为雨云服务器中涉及大量的 NAT 服务器,-P 选项指定端口的功能将会非常游泳

5. 启动服务端

上传完成后,通过SSH连接到服务器,进入frp文件所在的目录,使用以下命令启动服务端:

./frps -c frps.toml

请注意,早期版本的frps使用的是ini格式的配置文件,在更新版本中已经废弃,请确保您使用的是最新版本的frp。

6. 启动客户端

在您的本地计算机上,进入frp文件所在的目录,使用以下命令启动客户端:

./frpc -c frpc.toml

请注意,这里假设您的客户端操作系统是Linux。如果您的客户端是Windows系统,请使用相应的命令。

7. 启动Minecraft游戏

启动客户端后,您可以在Minecraft中启动局域网游戏。如果需要,您还可以安装第三方模组来增强游戏体验。例如,您可以尝试安装 mcwifipnp 模组,它提供了更高级的联机设置,如LAN World Plug-n-Play。

这个 mod 可以制定在哪个端口开放服务器,并且不同存档的配置信息分别保存。

8. 开玩

最后,让您的朋友填写服务器的IP地址和对应的穿透端口……这种链接方式仅仅适用于有独立 IP 的服务器。

NAT 转发的服务器可以直接在雨云的控制台中复制链接,直接点击右侧的复制按钮即可。