ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

使用FRP实现《我的世界》服务器内网穿透:从原理到实战部署

使用FRP实现《我的世界》服务器内网穿透:从原理到实战部署 大家好我是专注于技术实战分享的博主。很多《我的世界》Java版玩家都梦想着和朋友一起搭建一个专属服务器但往往卡在“如何让外网朋友连进来”这一步。购买云服务器成本高而使用一些现成的内网穿透工具又可能面临速度慢、不稳定或收费的问题。本文将手把手教你使用FRP这一开源、高性能的反向代理工具免费实现《我的世界》服务器的内网穿透让你用家里的电脑就能稳定开服告别联机卡顿。无论你是想体验“远梦之棺”这类整合包还是想搭建原版生存服这套方案都能让你从零开始完成服务器部署与公网访问。1. 核心概念为什么需要内网穿透在开始实战之前我们首先要理解面临的问题和将要使用的工具。1.1 家庭网络与公网访问的障碍当你在家中的电脑上运行《我的世界》服务器时这台电脑处于你的家庭局域网内网中。你的朋友在互联网公网上是无法直接通过你的家庭公网IP假设你有加上服务器端口默认25565连接到你的电脑的。原因主要有两个运营商封锁端口绝大多数家庭宽带为了安全和管理运营商会封锁入站连接即从公网主动发往你家宽带的连接请求如连接25565端口会被拦截。动态公网IP即使少数用户拥有公网IP这个IP地址也通常是动态变化的每次重启光猫就可能改变无法提供一个固定的地址给朋友连接。内网穿透技术就是为了解决这个问题。它的核心原理是让你内网的服务器主动去连接一个拥有固定公网IP和域名的中间服务器称为“服务端”或“中转服务器”在两者之间建立一个稳定的通道。当你的朋友想连接时他实际上是连接到这个公网中转服务器然后数据通过已建立的通道转发到你内网的服务器上。1.2 为什么选择 FRP内网穿透工具有很多如 ngrok、cpolar 等。选择FRP (Fast Reverse Proxy)的主要原因如下开源免费代码完全开源可以自行部署没有流量或连接数限制取决于你的服务器带宽。高性能采用 Go 语言编写资源占用低转发效率高非常适合《我的世界》这类对延迟敏感的应用。配置灵活支持 TCP、UDP、HTTP、HTTPS 等多种协议可以精细控制端口映射。自主可控你可以使用自己的云服务器搭建 FRP 服务端完全掌控数据中转安全性和稳定性更高。简单来说我们需要准备两台机器FRP 服务端 (Server)一台拥有公网 IP 的云服务器如阿里云、腾讯云轻量应用服务器用于中转数据。FRP 客户端 (Client)《我的世界》服务器运行在你家中的电脑上。客户端负责与服务端建立连接。2. 环境准备与资源规划在开始下载和配置之前请确认好以下环境与资源。2.1 服务器端公网服务器要求系统推荐 Linux 发行版如 CentOS 7/8 或 Ubuntu 20.04/22.04。本文以Ubuntu 22.04为例。配置1核1G内存的轻量应用服务器即可完全满足 FRP 服务端和一个小型《我的世界》服务器中转的需求。带宽建议 3Mbps 或以上直接影响联机速度。安全组/防火墙必须在云服务器的防火墙安全组中放行以下端口7000FRP 服务端默认监听端口用于与客户端建立控制连接。25565准备映射的《我的世界》服务器端口或其他你自定义的端口。2.2 客户端家用电脑要求系统Windows 10/11 或 Linux 均可。本文客户端以Windows为例进行演示。Java 环境必须安装合适版本的 Java。对于《我的世界》1.17 及以上版本需要Java 171.18 及以上推荐Java 17/18更早版本使用 Java 8。请从 Oracle 或 Adoptium 官网下载安装。《我的世界》服务端核心准备好你要开服的版本对应的服务端.jar文件例如paper-1.20.4-497.jar。2.3 软件下载前往 FRP 的 GitHub 发布页下载对应版本https://github.com/fatedier/frp/releases你需要下载两个包对于Linux 服务端下载frp_*_linux_amd64.tar.gz(Intel/AMD 64位 CPU)。对于Windows 客户端下载frp_*_windows_amd64.zip。注意如果你的家用电脑或服务器是 ARM 架构例如树莓派、苹果 M系列芯片请选择linux_arm64或darwin_arm64的版本。这是frp arm64和amd64 的区别的关键所在务必根据 CPU 架构选择否则无法运行。3. 部署 FRP 服务端云服务器首先我们在公网云服务器上安装和配置 FRP 服务端。3.1 上传并解压 FRP使用 SSH 工具如 Xshell, FinalShell连接到你的云服务器。# 创建一个目录用于存放 frp mkdir -p /opt/frp cd /opt/frp # 使用 wget 下载最新版 frp (请替换链接中的版本号) wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz # 解压下载的文件 tar -zxvf frp_0.54.0_linux_amd64.tar.gz # 进入解压后的目录 cd frp_0.54.0_linux_amd64解压后你会看到一系列文件其中frps/frps.exe服务端程序。frps.ini服务端配置文件。frpc/frpc.exe客户端程序。frpc.ini客户端配置文件。3.2 配置 FRP 服务端我们需要编辑frps.ini文件。# 使用 vim 或 nano 编辑配置文件 vim frps.ini将配置文件内容修改为如下所示。这里我们设置了最基础的配置并启用了 Web 控制台以便监控。[common] # FRP 服务端监听的端口客户端通过此端口连接 bind_port 7000 # 身份验证令牌客户端需要配置相同的 token 才能连接增强安全性 token your_secure_token_123456 # 启用 Web 控制台方便查看连接状态 dashboard_port 7500 dashboard_user admin dashboard_pwd admin_pwd_123 # 日志设置 log_file ./frps.log log_level info log_max_days 3关键参数解释bind_port这是 FRP 的“控制通道”端口必须开放。token强烈建议设置一个复杂的令牌防止未经授权的客户端连接。dashboard_port管理后台端口可以通过http://你的服务器IP:7500访问查看连接状态。3.3 启动 FRP 服务端并设置开机自启首先直接运行测试一下./frps -c ./frps.ini如果看到“frps started successfully”之类的日志说明服务端启动成功。按CtrlC停止。为了让它能在后台持续运行并在服务器重启后自动启动我们将其配置为系统服务。# 创建 systemd 服务文件 sudo vim /etc/systemd/system/frps.service将以下内容写入服务文件[Unit] DescriptionFrp Server Service Afternetwork.target [Service] Typesimple Usernobody Restarton-failure RestartSec5s WorkingDirectory/opt/frp/frp_0.54.0_linux_amd64 ExecStart/opt/frp/frp_0.54.0_linux_amd64/frps -c /opt/frp/frp_0.54.0_linux_amd64/frps.ini [Install] WantedBymulti-user.target保存后启用并启动服务# 重新加载 systemd 配置 sudo systemctl daemon-reload # 设置开机自启 sudo systemctl enable frps # 启动 frps 服务 sudo systemctl start frps # 查看服务状态和日志确认运行正常 sudo systemctl status frps sudo journalctl -u frps -f至此FRP 服务端已在你的云服务器上部署完毕。请确保云服务商控制台的安全组已经放行了7000(FRP控制端口) 和7500(控制台端口)。4. 配置《我的世界》服务器与 FRP 客户端家用电脑现在我们回到家用电脑先配置《我的世界》服务器再配置 FRP 客户端。4.1 搭建《我的世界》Java 版服务器创建专用目录在电脑上创建一个文件夹例如D:\MinecraftServer。放置服务端核心将下载好的服务端.jar文件如paper-1.20.4-497.jar放入该目录。首次运行生成配置在该目录打开命令提示符 (CMD) 或 PowerShell。运行命令java -Xmx2G -Xms1G -jar paper-1.20.4-497.jar nogui首次运行会失败并生成eula.txt文件。打开此文件将eulafalse改为eulatrue表示你同意 Mojang 的最终用户许可协议。基础配置编辑生成的server.properties文件确保以下关键设置server-port25565 # 服务器端口保持默认即可 online-modetrue # 正版验证如果朋友没有正版可设为 false离线模式 max-players20 # 最大玩家数 motdMy FRP Minecraft Server # 服务器描述再次启动服务器使用同样的命令java -Xmx2G -Xms1G -jar paper-1.20.4-497.jar nogui启动服务器。看到“Done (XXs)! For help, type “help””即表示服务器启动成功。此时你可以在本地电脑上用localhost:25565或127.0.0.1:25565连接服务器。先关闭服务器在控制台输入stop。4.2 配置 FRP 客户端解压 FRP 客户端将下载的frp_*_windows_amd64.zip解压到一个方便的位置例如D:\frp。编辑客户端配置用记事本或代码编辑器打开frpc.ini文件。配置连接和隧道将内容修改为如下所示。你需要将server_addr替换为你云服务器的公网IP地址。[common] # 你的 FRP 服务端的公网 IP 地址 server_addr 123.123.123.123 # FRP 服务端的 bind_port server_port 7000 # 必须与服务端配置的 token 一致 token your_secure_token_123456 # 客户端管理配置可选 admin_addr 127.0.0.1 admin_port 7400 admin_user admin admin_pwd admin # 日志 log_file ./frpc.log log_level info log_max_days 3 # 最重要的部分定义一个《我的世界》的隧道 [minecraft_tcp] type tcp # 本地《我的世界》服务器运行的 IP通常是本机 local_ip 127.0.0.1 # 本地《我的世界》服务器端口 local_port 25565 # 远程端口这是你朋友要连接的端口。它映射到云服务器的这个端口上。 remote_port 25565 # 如果你还需要 UDP 支持用于服务器查询等可以额外添加一个 UDP 隧道 [minecraft_udp] type udp local_ip 127.0.0.1 local_port 25565 remote_port 25566配置详解[minecraft_tcp]这是一个代理规则的名字可以自定义。type tcp《我的世界》Java 版主要使用 TCP 协议。local_port必须和你server.properties里的server-port一致。remote_port这是关键。它指定了在云服务器上开放的端口。你的朋友将通过你的服务器IP:25565来连接。请确保云服务器安全组也放行了此端口。4.3 启动 FRP 客户端与《我的世界》服务器启动 FRP 客户端在D:\frp目录下按住Shift并右键选择“在此处打开 PowerShell 窗口”或“打开命令窗口”。运行命令.\frpc.exe -c .\frpc.ini如果连接成功你将看到类似“proxy [minecraft_tcp] start success”和“login to server success”的日志。启动《我的世界》服务器回到你的D:\MinecraftServer目录再次启动《我的世界》服务器。确保服务器完全启动完成。5. 联机测试与验证现在可以进行最终的联机测试了。服务端验证在浏览器访问http://你的云服务器IP:7500使用配置的 dashboard_user 和 dashboard_pwd 登录。在“TCP 隧道”或“代理”列表中你应该能看到minecraft_tcp处于活跃Active状态。朋友连接让你的朋友打开《我的世界》Java版。在“多人游戏”中点击“添加服务器”。在“服务器地址”中填写你的云服务器公网IP:25565例如123.123.123.123:25565。点击“完成”然后尝试连接。本地连接测试你自己也可以使用服务器公网IP进行连接以测试穿透是否成功。如果一切顺利你和你的朋友就应该能成功进入你家用电脑上运行的《我的世界》服务器了6. 常见问题与排查思路在搭建过程中你可能会遇到一些问题。下面是一个快速排查指南。问题现象可能原因排查步骤与解决方案FRP 客户端连接失败(login to server failed)1. 服务器IP/端口错误2. 防火墙/安全组未放行3. Token 不匹配4. 服务端未启动1. 检查server_addr和server_port(7000) 是否正确。2. 登录云服务器控制台确认安全组已放行7000端口。3. 对比服务端和客户端的token是否完全一致。4. 在服务器上执行sudo systemctl status frps查看服务状态。能连接 FRP但无法进入MC服务器(Connection timed out: No further information)1. MC服务器未启动2. FRP 客户端local_port错误3. 云服务器安全组未放行remote_port4. 家用电脑防火墙阻止1. 确认《我的世界》服务器进程已运行本地能用localhost:25565连接。2. 检查frpc.ini中的local_port是否与server.properties的server-port一致。3.重点确保云服务器安全组放行了你在frpc.ini中设置的remote_port(如 25565)。4. 暂时关闭家用电脑的防火墙进行测试。连接不稳定频繁掉线1. 云服务器带宽不足2. 网络波动3. FRP 版本过旧1. 升级云服务器带宽。对于2-3人联机3-5Mbps是基础。2. 检查服务端和客户端日志看是否有网络错误。3. 尝试升级 FRP 到最新版本。FRP 客户端启动后立即关闭配置文件语法错误检查frpc.ini文件格式确保没有中文括号、多余空格每行配置正确。建议用 Notepad 或 VS Code 编辑。Dashboard 无法访问1. 安全组未放行7500端口2. 配置错误1. 检查安全组是否放行了7500端口。2. 检查frps.ini中的dashboard_port配置。7. 进阶优化与最佳实践为了让你的《我的世界》服务器运行得更稳定、安全可以参考以下建议。7.1 使用域名替代 IP 地址长期使用 IP 连接不便记忆且如果服务器IP变更会很麻烦。你可以购买一个便宜的域名。在域名解析处添加一个A 记录将域名例如mc.yourdomain.com指向你的云服务器 IP。让朋友使用mc.yourdomain.com:25565进行连接。可选在 FRP 服务端配置subdomain_host可以实现通过子域名直接访问无需输入端口但这需要额外的 HTTP 代理配置对于纯 TCP 的 MC 服务器不是必须的。7.2 增强安全性修改默认端口可以将 FRP 服务端的bind_port(7000) 和dashboard_port(7500) 改为不常见的端口减少被扫描的风险。使用强 Tokentoken不要使用示例中的简单字符串应使用高强度随机字符串。限制 Dashboard 访问仅允许特定 IP 访问 Dashboard 端口7500可以在云服务器安全组或系统防火墙如ufw中设置。定期更新关注 FRP GitHub 发布页定期更新到新版本修复潜在安全漏洞。7.3 服务器性能优化Java 参数调优-Xmx和-Xms参数决定了服务器可用内存。例如-Xmx4G -Xms4G表示分配 4GB 内存。建议Xmx和Xms设置相同值避免内存动态调整带来的卡顿。不要超过你物理内存的70%。使用优化版服务端相比官方服务端Paper、Purpur等服务端核心进行了大量性能优化能显著提升 TPS每秒刻数和降低延迟尤其适合多人联机和安装模组。FRP 客户端自启动将 FRP 客户端配置为 Windows 任务计划程序或系统服务实现开机自启避免每次手动启动。7.4 备份与维护定期备份世界定时将服务器目录下的world或world_nether,world_the_end文件夹压缩备份到网盘或其他位置。监控日志定期查看frps.log、frpc.log和 Minecraft 服务器的logs/latest.log及时发现错误。使用 screen 或 tmux (Linux)在 Linux 服务端上使用screen或tmux会话运行 FRP 和 MC 服务即使断开 SSH 连接程序也不会停止。通过以上步骤你不仅成功搭建了一个基于 FRP 内网穿透的《我的世界》私服还掌握了一套稳定的、自主可控的联机方案。这套方案的核心在于理解“客户端主动连接服务端建立隧道”的原理。无论是玩“远梦之棺”这样的大型整合包还是原版生存都可以获得比某些免费穿透工具更稳定、更高速的联机体验。遇到问题多查看日志大部分故障都能快速定位。动手试试吧开启你和朋友的方块世界之旅
返回列表