Frp内网穿透实现minecraft远程联机

想玩minecraft,公网多人游戏,做了一些尝试

  1. VPS搭建minecraft服务器。
  2. 内网穿透,VPS做TCP端口转发。

第一个方案,服务器端架设成功了,但是不可以加mods和插件。另外由于服务器配置太低,运行一段时间就会崩溃。以失败告终。
第二个方案,花点时间琢磨了一下,发现可行。下文为配置方法

实现功能和原理

minecraft公网联机,公网服务器安装Frps,来实现转发服务。内网主机安装Frpc,来实现穿透。

配置前准备

公网服务器一台 ,假设我的服务器IP是155.155.155.156
内网电脑一台
域名一个 ,假设我的域名是baidu.com

解析域名到公网服务器的IP

添加一条A记录,主机记录自定义,我写的是router

安装Frp

项目地址

公网服务器端

找到与自己服务器和本地主机对应版本,下载即可。
我的VPS是搬瓦工的低配,如下

安装的是CentOS6_32位系统,所以就下载Linux32位的软件 frp_x.x.x_linux_386.tar.gz
下载并解压后得到一个文件夹,里面有七个文件,对于公网服务器来说只有frps和frps.ini是我们必需的。

配置frps.ini

1
2
3
4
5
6
#frps.ini
[common]
bind_port = 7000
bind_udp_port = 7001
vhost_http_port = 80
vhost_https_port = 10443

3,4两行是必须配置的,端口可以自定义,5,6两行是其他的服务,可以照抄或者不予理会。
使用下面命令运行
./frps -c ./frps.ini
我相信你可以通过Screen插件让此服务保持后台运行,此服务建议一直运行。

内网电脑端

打开minecraft游戏,开启局域网联机,生成一个端口号,记下来。

找到与自己电脑对应的版本,下载即可。我本地电脑win_x64系统,所以下载frp_0.22.0_windows_amd64.zip。
和之前一样解压得到7个文件,只有frpc.exe和frpc.ini是我们必需的。

配置frpc.ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[common]

# x.x.x.x为公网服务器IP地址,只需设置一次
server_addr = x.x.x.x

# server_port填写上面配置的bind_port值,只需设置一次
server_port = 7000

[range:test_tcp]
type = tcp
# local_ip填写我们电脑的局域网ip,每次开启游戏需要修改。
local_ip = 127.0.0.1

# local_port填写刚才记下的minecraft生成的端口号,每次开启游戏需要修改。
local_port = 10240

#这里自定义,建议填写五位数的端口号,不超过65535,小伙伴开启游戏时候填这个。只需设置一次
remote_port = 25600

双击frpc.exe,弹出一个黑框,把这个黑框最小化后台。

在远方的小伙伴,开启游戏,选择多人游戏,直接连接,输入router.baidu.com:25600,加入服务器玩耍吧。

【注】:router为设置的主机记录,baidu.com为自己的域名,25600为上面设置的remote_port端口号。


以后每次开游戏,先打开游戏生成端口号,然后修改frpc.ini,打开frpc.exe并后台,小伙伴联机即可。