Skip to content

使用内网穿透 (FRP)

如果通过修改路由器、使用虚拟局域网等方法都无法联机,或者你受限于复杂的网络环境,那么FRP(Fast Reverse Proxy)是目前最强大、最灵活的解决方案。
核心原理:你需要一台有公网 IP 的服务器作为“跳板”。你在家里的电脑(游戏主机)运行 FRP 客户端,这台公网服务器运行 FRP 服务端。当你的朋友连接到这台公网服务器的指定端口时,FRP 服务会将所有流量“穿透”到你的内网,直接转发到你家里的游戏主机上,从而实现联机。

使用公共FRP服务商(推荐,低门槛)

这个方法特别适合那些不想购买云服务器、不想接触复杂命令行,但又受困于网络限制的玩家。
你不需要自己的公网服务器。像 Sakura Frp、OpenFrp 这样的服务商已经为你准备好了大量的公网服务器(他们称之为“节点”)。
你只需要在他们的网站上进行简单的配置,然后在你的电脑上运行一个轻量级的客户端,就能把你的本地游戏端口“映射”到他们的公网服务器上,让朋友通过这个公网地址连接进来。
无论你使用哪个 FRP 服务商,基本步骤都是相似的:

  1. 注册账号:在 FRP 服务商的官方网站上注册一个账号。
  2. 实名认证:根据国家相关规定,大部分国内服务商需要进行实名认证后才能使用。
  3. 创建隧道:在网站的管理后台创建一个“隧道”或“映射规则”。
  4. 下载客户端:下载对应你操作系统的客户端软件。
  5. 配置并运行客户端:在你的电脑上运行客户端,并让它连接到你创建的隧道。
  6. 启动游戏:在你的电脑上开启 Minecraft 世界并“对局域网开放”。
  7. 分享地址:将 FRP 服务商提供给你的公网地址分享给朋友。

Sakura Frp 是国内非常老牌和知名的 FRP 服务商,在 MC 玩家群体中很受欢迎。本文以 Sakura Frp 为例进行说明,首先需要创建隧道:

  1. 访问 Sakura Frp 官网 并注册登录。根据提示完成实名认证。
  2. 在左侧菜单栏点击“隧道” -> “创建隧道”,并填写隧道信息,这是最关键的一步
    • 隧道名称:随便起一个,比如 我的MC世界
    • 隧道类型必须选择 TCP。Minecraft使用TCP协议。
    • 本地IP:填写 127.0.0.1 (这代表“本机”)。
    • 本地端口:这里先随便填一个,比如 25565后面启动游戏后,我们会回来修改它!
    • 远程端口:选择一个节点后,系统会自动分配或让你选择一个端口。免费节点的端口通常是随机的。记下这个端口。
    • 选择节点:选择一个离你地理位置近、延迟低的节点。你可以Ping一下节点地址来测试延迟。
  3. 在网站上方菜单点击“软件下载”,下载适合你电脑系统(Windows/macOS/Linux)的“启动器”,并打开。
  4. 回到网站,在左侧菜单栏点击“API & 密钥”,复制你的访问密钥,在启动器内输入“访问密钥 (Token)”,此时,你就应该能看到你的隧道了。

当你每次开启游戏打算联机时,你需要进行以下步骤:

  1. 在单人游戏中按下 Esc,点击“对局域网开放 (Open to LAN)”,然后点击“创造一个局域网世界”。
    聊天框会显示一个端口号,比如 本地游戏已在端口 54321 上开启记住这个端口 54321
  2. **关键一步:**回到隧道管理页面,找到你创建的隧道,点击“配置”,将“本地端口”修改为你刚刚从游戏里得到的端口,即 54321。保存修改。
  3. 在 Sakura Frp 客户端里,选中你的隧道,点击“启动”。如果一切正常,状态会显示为“在线”。
  4. 你的联机地址是:你选择的节点域名:远程端口,例如:cn-zj-bgp-1.sakurafrp.com:12345,让你的朋友在“多人游戏”->“添加服务器”输入这个地址即可。

提示

端口匹配是成功的关键! FRP 配置里的“本地端口”必须和 Minecraft “对局域网开放”后给出的端口完全一致。
每次开服都要改端口? 是的,因为“对局域网开放”功能每次生成的端口都可能是随机的。如果你觉得麻烦,可以考虑在本地搭建一个真正的 MC 服务器(使用官方的server.jar),在配置文件 server.properties 里将端口固定为 25565,这样 FRP 的配置就无需每次都改了。
防火墙问题:请确保你电脑的防火墙(如 Windows Defender 防火墙)没有阻止 FRP 客户端或 Java(Minecraft) 的网络连接。

自建 FRP 服务器(高阶,完全控制)

如果公共 FRP 服务的带宽、延迟无法满足你的需求,此方案能给你最大的控制权和最佳的性能。但需要一台具有公网 IP 的云服务器(VPS)且具备基础的 Linux 命令行操作能力。

你也可以参考以下教程

在云服务器上部署 FRP 服务端 (frps)

  1. 登录云服务器,访问 GitHub Releases 找到最新版本。
    根据服务器的 CPU 架构,复制对应的 .tar.gz 文件下载链接。然后使用以下命令下载并解压:

    bash
    # 粘贴你复制的下载链接
    wget [下载链接]
    # 解压文件(版本号可能不同)
    tar -zxvf frp_*.tar.gz 
    # 进入解压后的目录
    cd frp_*
  2. 创建一个名为 frps.toml 的配置文件,内容如下:

    toml
    # frps.toml
    # FRP 服务端监听的端口,用于和客户端通信
    bind_port = 7000
    # [auth] 部分用于设置身份验证
    [auth]
    # 设置一个复杂的、只有你自己知道的密码(token)
    token = "change_this_to_a_very_secret_password"
  3. 使用配置文件启动服务,并推荐使用 nohup 命令让其在后台执行:

    bash
    ./frps -c ./frps.toml
    nohup ./frps -c ./frps.toml &
  4. 确保在你的云服务器安全组防火墙设置中,确保你的 bind_portremote_portTCP 协议入站规则是开放的。

在你自己的电脑上配置 FRP 客户端 (frpc)

  1. 访问 GitHub Releases 找到最新版本,然后下载适合你电脑系统的版本并解压。

  2. 在解压后的目录中,创建一个名为 frpc.toml 的配置文件,内容如下:

    toml
    # frpc.toml
    # 指向你的云服务器公网IP地址
    server_addr = "你的云服务器公网IP"
    # 必须与 frps.toml 中设置的 bind_port 一致
    server_port = 7000
    [auth]
    # 这里的 token 必须与服务器上 frps.toml 文件中设置的完全一致!
    token = "change_this_to_a_very_secret_password"
    # [[proxy]] 定义一个流量转发规则
    [[proxy]]
    name = "minecraft-server"
    type = "tcp"
    local_ip = "127.0.0.1"
    local_port = 25565   # 你本地Minecraft服务器的端口
    remote_port = 25565  # 玩家将要连接的、暴露在云服务器上的端口

    注意

    server_addr 必须是你的云服务器公网 IP
    token 必须和你的云服务器上的密钥一模一样

  3. 在你的电脑上启动 Minecraft 服务器(或单人游戏“对局域网开放”),并参考以下步骤启动 FRP 客户端来建立安全的连接隧道。
    如果密钥正确,你会看到连接成功的日志。在游戏期间,请保持此命令行窗口开启。

    bash
    # 注意:需要为当前目录
    # Windows
    frpc.exe -c frpc.toml
    # macOS/Linux
    ./frpc -c ./frpc.toml

邀请朋友加入游戏

一切就绪!你的朋友们现在可以在 Minecraft 的“多人游戏” -> “添加服务器”中,使用 你的云服务器公网IP:25565 加入你的世界。
总而言之,对绝大多数普通玩家来说,公共 FRP 服务商是平衡了成本、操作难度和联机效果的最佳选择。祝你和你的朋友们联机愉快!

"Minecraft" is a trademark of Microsoft Corporation. This document is not affiliated with Microsoft Corporation.