利用 FRP 协议把我的世界本地端口映射到公网 VPS 实现联机

准备工作

  1. 客户端
  2. 服务端(带公网 ip 的VPS)

以下示例

  1. 客户端(MacOs)
  2. 服务端 (debian)

1)登录服务器

ssh root@你的服务器公网ip

2)下载并安装 frp

cd /root
wget https://github.com/fatedier/frp/releases/download/v0.68.0/frp_0.68.0_linux_amd64.tar.gz
tar -xzf frp_0.68.0_linux_amd64.tar.gz
mv frp_0.68.0_linux_amd64 /opt/frp

安装后主要文件在:

/opt/frp/frps
/opt/frp/frpc

3)创建服务端配置文件

vim 编辑:
1.

vim /opt/frp/frps.toml

没有 vim 就先下再执行重新执行 1

apt install vim

2.写入内容:

bindPort = 7000

auth.method = "token"
auth.token = "mc-frp-super-secret-token-please-change"

transport.tls.force = true

这几项的意思

  • bindPort = 7000
    服务端监听 7000(可以改),等客户端连进来

  • auth.method = "token"
    使用 token 认证

  • auth.token = "..."
    客户端和服务端必须一样

  • transport.tls.force = true
    强制客户端用 TLS


4)(选择性)创建 systemd 服务以便 VPS重启后自动启动

编辑:

vim /etc/systemd/system/frps.service

写入:

[Unit]
Description=frp server
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
ExecStart=/opt/frp/frps -c /opt/frp/frps.toml
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

5)启动服务

systemctl daemon-reload
systemctl enable frps
systemctl start frps
systemctl status frps --no-pager

看到 active (running) 就说明服务端起来了。


6)开放防火墙端口

ufw allow 7000/tcp
ufw allow 25565/tcp
ufw reload
ufw status

这两个端口的作用

  • 7000/tcp:给本地 frpc 连服务端

  • 25565/tcp:给朋友从公网连 Minecraft


二、客户端流程

1)确认 Minecraft 服务已监听本地 25565

进入 Minecraft 世界后进入菜单把局域网联机打开,端口设置为 25565 (或者任意端口,后面要使用)

终端执行

lsof -iTCP:25565 -sTCP:LISTEN -n -P

看到:

java ... TCP *:25565 (LISTEN)

这说明你本地 Minecraft 服务器已经开着。


2)安装 frpc

注意不同的系统安装指令不一样
macos:

brew install frpc

win:

winget install Vim.Vim

3)创建客户端配置文件

mkdir -p ~/frp
vim ~/frp/frpc.toml

写入:

serverAddr = "这里输入服务器ip"
serverPort = 7000
auth.method = "token"
auth.token = "mc-frp-super-secret-token-please-change"
transport.tls.enable = true

[[proxies]]
name = "minecraft-25565"
type = "tcp"
localIP = "127.0.0.1"
localPort = 25565
remotePort = 25565

4)启动客户端

frpc -c ~/frp/frpc.toml

成功时你看到的关键日志是:

login to server success
proxy added: [minecraft-25565]
start proxy success

5) 好友游戏连接公网地址

朋友在 Minecraft 主页面->多人游戏->直接连接或者添加服务器输入 ip 地址: 端口:

公网ip:25565