我的世界异地联机:内网穿透与云主机自建中转实战
发布时间:2026/10/23 11:02:15 锦皓数字建站

1. 先想清楚异地联机到底难在哪我的世界联机这件事说简单也简单说折腾也折腾。几个朋友不在同一个屋檐下想进同一个存档一起挖矿、盖房子最先撞上的问题不是游戏版本对不对而是网络根本找不到对方。很多人第一次尝试时会以为“输入IP就能连”结果要么连接超时要么显示无法连接至服务器折腾一下午连主界面都没进去过。这类教程常被归到“内网穿透”这个大类里但真要把事情做明白得先把它拆成三个更朴素的问题你的电脑有没有公网地址、端口有没有对外开放、数据包该从哪条路绕过去。把这三件事理顺联机就不再是靠运气。这篇内容面向的是有一定电脑基础、愿意自己动手的玩家你有一台能开游戏的电脑可能还有一台便宜的云主机想让最多五六个人在同一个世界里玩。下面会从方案选型讲到具体配置再到踩坑排查尽量把“为什么这么做”讲透。需要先说明一点所有操作只建议用于自己或熟人小圈子的游戏联机不要拿来做任何超出授权范围的网络访问这是底线。1.1 三个现实约束公网地址、端口、中转家用宽带大多数情况下拿到的是运营商内网地址路由器WAN口上那个IP并不是真正的公网IP。这意味着外部朋友直接填你家IP数据包到了运营商那一层就被丢了根本进不了你家路由器。即便运气好有公网IP光猫和路由器两层NAT也会让端口映射变得麻烦。所以第一个约束是地址可见性要么想办法拿到公网地址要么找一个有公网地址的中间人帮你转发。第二个约束是端口。游戏服务端启动后会监听一个端口Java版默认是25565基岩版默认是19132。端口没开或者开了但防火墙没放行外面的人照样连不进来。很多人只改了服务端配置忘了云主机的安全组结果本地测试一切正常朋友一连接就超时问题就出在这。第三个约束是中转。当双方都不具备直接互访条件时就需要一台双方都能访问的机器做“二传手”。这台机器可以是云主机也可以是具备公网地址的服务器。它的作用不是替你玩游戏而是把朋友的连接接住再转给你的电脑。理解了这个模型后面所有配置都是在回答“中转机怎么搭、端口怎么开、流量怎么走”。1.2 方案选型对比官方联机、虚拟局域网、自建中转常见做法大致三类各有各的适用场景。官方提供的联机服务省心不用自己维护服务器但通常按人数或时长计费而且对模组、插件、存档迁移有一定限制适合“就想快速开一局”的人。虚拟局域网类工具的思路是把几台电脑拉进同一个虚拟网络游戏里直接填对方虚拟地址配置门槛低但依赖第三方客户端长期使用要看服务条款延迟也受中转节点影响。自建中转的优势是可控机器是你的端口是你的配置和日志都能看到出了问题能定位。缺点是前期要花一两个小时搭环境后续还要做备份和更新。我的建议是如果你只是偶尔玩一两次用官方联机最省事如果你想长期开一个固定存档或者要装模组、加插件自建中转更划算。下面这套流程就是围绕自建中转展开的使用一台低配云主机作为入口把游戏流量转到你自己的电脑或另一台服务器上。需要补充的是选择方案时别只看“能不能连上”还要看延迟和带宽。中转节点离你和朋友越近延迟越低上行带宽越足能容纳的人越多。这两个指标后面会具体算。2. 自建中转的核心原理与参数计算2.1 数据是怎么从朋友电脑走到你的存档的假设朋友A在上海你的游戏服务端跑在成都家里的电脑上中转机租在离两边都不远的一个机房。朋友A启动游戏客户端向中转机的公网地址发起连接中转机上的转发程序收到连接后根据事先配置好的规则把这条连接转给你的电脑你的服务端处理完游戏逻辑数据再沿原路返回。整个过程中朋友A只知道中转机的地址你的家庭地址始终没有暴露这也是自建中转的一个附带好处。这里的关键是“规则”怎么写。转发程序通常需要知道三件事监听哪个端口、把流量转给哪个内网地址和端口、用什么协议。监听端口就是朋友填的那个端口转发目标就是你电脑的局域网IP加游戏端口。协议方面Java版主要走TCP基岩版走UDP两者不能混。很多人配置完发现Java版能进、基岩版进不去八成是协议只写了TCP。还有一点容易被忽略你家电脑的局域网IP最好是固定的。路由器重启后DHCP重新分配IP从192.168.1.100变成192.168.1.101中转规则就失效了。在路由器里给游戏电脑做一条静态地址绑定或者在系统里手动设固定IP能省掉后面很多莫名其妙的“昨天还能连今天不行”。2.2 带宽、延迟、并发人数怎么估算我的世界对带宽的要求没有想象中高但也不能忽略。Java版一个玩家正常游走、挖矿上行大概占用几十到一百多KB/s如果有人在跑图、加载新区块瞬时能冲到几百KB/s开红石机器或者大量掉落物时还会更高。按经验值粗算五个人同时在线给服务端预留2Mbps到4Mbps的上行比较稳妥十个人建议6Mbps以上。注意这里说的是上行家用宽带的下行通常很大上行往往只有二三十Mbps甚至更低这是很多人忽略的瓶颈。中转机的带宽也要看。中转机承接的是所有玩家的流量总和如果五个人每人平均100KB/s中转机至少要有4Mbps左右的转发能力再加上协议开销留一倍余量更保险。云主机通常按带宽计费买之前先确认峰值带宽和流量包别玩到一半被限速。延迟方面中转机的地理位置决定了基础延迟。朋友和中转机之间的延迟、中转机和你之间的延迟会叠加。如果朋友在南方、你在北方中转机选在中间区域通常比选在一边更均衡。实际测试方法很简单在中转机上对两边分别做网络质量测试看平均延迟和丢包别只看最低值。2.3 端口与协议TCP和UDP都要考虑Java版服务端默认监听25565/TCP基岩版默认监听19132/UDP。如果你只开Java版配TCP就够了如果两个版本都想支持或者朋友里有手机、主机玩家UDP也要放行。端口不是非得用默认值改成高位端口能减少被扫描的概率但改完要同步改转发规则、安全组和客户端连接地址三处缺一不可。这里有个实操细节云主机的安全组和系统防火墙是两层。安全组在云平台控制台配置系统防火墙在机器内部配置两层都放行才算真正打开。我见过不少人只在系统里关了防火墙忘了安全组或者反过来折腾半天以为是转发程序的问题。排查时先用本机命令测端口是否监听再从外部测是否可达一层一层往下剥。3. 云主机中继环境搭建实操3.1 选机器与系统别一上来就买高配中转机不需要显卡也不需要大内存它只负责转发流量。一个人数不多的小服1核1G或者1核2G的入门配置就够用系统选常见的Linux发行版即可装个轻量级环境别选带图形界面的镜像白白占资源。地域选择上优先选离你和朋友网络路径都比较顺的节点买之前可以先看看各地区的测试地址简单测一下延迟。系统装好后第一件事是更新软件源并装好常用工具比如文本编辑器、网络诊断工具、进程管理工具。命令不复杂但建议养成先更新再装东西的习惯避免版本太旧导致后面编译或运行报错。第二件事是创建一个普通用户来跑转发程序不要一直用管理员账号权限收窄一点出了意外影响也小。注意云主机的登录凭证要保管好建议使用密钥登录并关闭密码登录。中转机暴露在公网弱口令是最常见的风险来源。3.2 安全组与系统防火墙开端口假设我们规划三个端口一个给Java版联机用比如30000/TCP一个给基岩版用比如30001/UDP再留一个管理端口只允许你自己的地址访问。在云平台控制台的安全组里入方向分别添加规则来源可以先填具体地址段确认能通之后再考虑是否放宽。出方向一般默认放行不用特别处理。系统层面的防火墙也要对应放行。以常见的firewalld为例添加端口的命令是firewall-cmd --add-port30000/tcp --permanentUDP同理改完记得reload。如果用ufw则是ufw allow 30000/tcp。命令本身不难难的是别忘了执行重载否则规则写了不生效。配置完之后做一次自检在机器上用ss -lntup看端口有没有被程序监听从另一台机器用nc -vz 中转机地址 30000测连通性。两步都通过才说明网络层没问题。如果第一步通过、第二步不通多半是安全组或防火墙如果第一步就不通说明程序没起来或者端口写错了。3.3 部署开源中转工具配置示例转发程序的选择上建议用成熟的开源方案社区文档多出问题好查。不同工具配置字段不一样但核心逻辑一致一端跑在公网机器上负责接客一端跑在内网机器上负责把流量送到游戏服务端。下面给一份通用配置思路字段名用占位符表示实际使用时对照所选工具的文档替换。# 中转机侧配置示例 server_addr 0.0.0.0 server_port 30000 protocol tcp auth_token 换成你自己的长随机字符串 # 内网侧配置示例 remote_addr 中转机的公网地址 remote_port 30000 local_addr 127.0.0.1 local_port 25565 protocol tcp auth_token 与中转机保持一致几个关键点。第一认证令牌一定要改别用示例值长度建议二十位以上混合大小写和数字。第二local_addr如果游戏服务端和转发客户端在同一台电脑上填127.0.0.1即可如果不在同一台填服务端的局域网IP。第三协议要和游戏版本对应Java版用TCP基岩版用UDP两者分开配置不要图省事写成一个。配置写好后先在前台运行观察日志有没有报错确认显示“连接成功”“监听中”之类的信息再用游戏客户端测试。前台跑通之后再改成后台服务避免一上来就配开机自启出了问题连日志都找不到。3.4 开机自启与日志查看中转机重启后程序如果没起来朋友就会突然连不上所以开机自启要配好。常见做法是写一个systemd服务单元把启动命令、工作目录、运行用户写进去然后systemctl enable加systemctl start。写单元文件时注意Restarton-failure程序异常退出能自动拉起省得半夜掉线没人管。日志方面建议把标准输出重定向到固定文件并用日志轮转控制大小别让一个日志文件涨到几个G把磁盘撑满。查看日志时重点看三类信息启动时有没有绑定端口失败、运行中有没有大量连接超时、退出前有没有内存或权限相关报错。这三类基本覆盖了八成问题。内网侧的那台电脑同样要配自启尤其是家里电脑偶尔重启的情况。可以把转发客户端做成计划任务或服务开机自动连上中转机。家里路由器最好也给游戏电脑保留固定地址减少变量。4. 游戏服务端配置与联机验证4.1 Java版服务端最小配置Java版服务端启动后会生成server.properties里面有几项和联机直接相关。server-port是监听端口默认25565如果你打算让转发程序转到本机保持默认也行改的话记得同步改转发配置。online-mode控制正版验证公开服建议保持开启熟人小圈子如果都是正版玩家也建议开启减少冒名顶替的风险。white-list建议设为true配合白名单文件只放行熟人。max-players按实际人数设置别开太大。view-distance和simulation-distance直接影响性能人少可以适当调高机器弱就调低别盲目拉满。启动命令里要分配足够内存比如-Xms2G -Xmx2G具体看机器内存和玩家人数。内存太小会频繁卡顿甚至崩溃太大又浪费。第一次启动建议看日志确认“Done”出现表示服务端加载完成。如果卡在生成世界或者报端口占用先解决再继续。4.2 白名单、正版验证与权限白名单的用法是先在控制台执行whitelist on再用whitelist add 玩家ID逐个添加。注意玩家ID区分大小写填错了对方就进不来。正版验证开启时玩家必须使用正版账号登录这对小圈子来说更省心不用额外装验证插件。如果确实有朋友使用离线账号需要关闭正版验证但一定要配合白名单和访问控制别把端口公开给所有人。权限方面普通玩家不需要给OP。需要建筑或者调试时临时给用完就撤。OP权限过大误操作能直接把存档搞坏。建议至少保留一份自动备份后面会讲。4.3 基岩版与Java版的差异处理基岩版走UDP端口默认19132服务端程序也和Java版不同。如果你要同时支持两个版本最省事的做法是分别开两个服务端分别配转发规则而不是指望一个端口通吃。手机上玩的朋发连接时填中转机地址加端口注意基岩版客户端对地址格式比较敏感别多打空格或者漏掉端口。还有一种情况是跨版本互通需要额外的互通层配置更复杂延迟也会增加。小圈子建议统一版本少折腾。4.4 让朋友连进来的三种方式第一种是直接填中转机公网地址加端口比如中转机IP:30000这是最直接的方式。第二种是用域名把域名解析到中转机朋友填域名加端口好处是换机器时不用通知所有人改地址。第三种是通过游戏内的“添加服务器”保存书签把地址存下来下次直接点。无论哪种第一次连接前先让朋友用网络测试工具确认能通到中转机端口能省掉大量“我这边连不上”的扯皮。验证顺序建议是本机先连127.0.0.1确认服务端正常再用中转机本地地址连一次确认转发程序正常最后让朋友从外部连。逐层验证出了问题能立刻定位是哪一段。5. 常见问题排查实录5.1 连接超时与握手失败连接超时通常出在网络层安全组没开、防火墙没放行、端口写错、中转程序没监听。排查时先在服务器上用ss -lntup确认端口处于LISTEN状态再从外部用nc或在线端口检测工具测。如果外部不通而本机通重点查安全组和防火墙。握手失败则多半是协议不匹配比如客户端走TCP、转发配了UDP或者游戏版本和服务端版本差太多。看日志里有没有“protocol error”“unexpected packet”之类的关键词能快速缩小范围。还有一种隐蔽情况中转机和内网侧都正常但家里电脑的局域网IP变了转发目标指向了一个不存在的地址。表现就是中转机日志显示连接建立后立刻断开。解决办法是给游戏电脑固定IP或者用主机名代替IP减少变动。5.2 进去了但卡顿、方块回弹能进游戏但体验差先分清是延迟问题还是带宽问题。按F3看延迟数值如果延迟持续偏高说明路径绕远或者中转节点不合适考虑换节点。如果延迟不高但频繁回弹、方块挖了又出现多半是上行带宽被占满或者服务端性能不足。检查家里宽带上行是否被其他程序占用比如网盘同步、视频上传检查服务端日志有没有“Cant keep up”提示有的话降低视距、减少实体、增加内存。中转机带宽被打满也会造成类似现象。云主机控制台一般能看到带宽监控对照游戏时段看曲线如果持续贴着上限就该升级带宽或者限制人数。5.3 掉线、内存溢出与服务端崩溃偶发掉线先看中转机日志和游戏服务端日志的时间点是否对得上。如果中转机先报连接重置问题在网络如果服务端先报异常问题在游戏侧。内存溢出常见于模组较多或者区块加载量大的存档表现是运行一段时间后突然卡死然后退出。解决方向是加内存、减模组、限制视距以及设置定时重启。崩溃后别急着重开先保留日志。日志里搜索“Exception”“Error”“OutOfMemory”能快速定位。养成崩溃前自动备份的习惯比事后补救有用得多。5.4 排查速查表现象优先检查常见原因处理方向连接超时安全组、防火墙、端口监听端口未放行或程序未启动逐层测试连通性握手失败协议类型、版本号TCP/UDP配错、版本不匹配对照日志改配置能进但卡顿上行带宽、延迟、服务端负载带宽占满、视距过高降视距、升带宽、限人数频繁掉线中转日志、服务端日志网络抖动、内存不足查时间点、加内存昨天能连今天不能局域网IP、端口占用DHCP重新分配、程序未自启固定IP、配自启6. 安全运维与长期使用心得6.1 最小权限与访问控制中转机暴露在公网最基本的几条要守住管理端口不对外网开放只允许自己的地址访问认证令牌定期更换转发程序用普通用户运行系统补丁及时更新。游戏侧开启白名单别为了方便把online-mode关了又不设限制。端口可以选高位随机值减少被自动扫描命中的概率但这只是降低噪音不能替代访问控制。如果发现日志里有大量陌生地址尝试连接说明端口被扫到了。处理方法很简单换端口、更新令牌、检查白名单必要时在安全组里限制来源地址段。别慌也别去研究对方是谁把入口收紧就行。6.2 备份与更新节奏存档是这类项目里最值钱的东西。建议至少每天自动备份一次保留最近七到十四天的版本备份文件放到另一块磁盘或者另一台机器上。手动备份也很重要在装新模组、改配置、给OP权限之前先备一份出问题能回滚。更新方面游戏服务端、转发程序、系统组件都不要追最新。先在测试环境跑一遍确认存档能加载、朋友能连上再切到正式环境。更新前看一遍变更说明重点看有没有配置格式变化很多“更新完连不上”都是字段改名导致的。6.3 成本控制与替代方案一台低配云主机按月计费成本通常不高但如果只是周末玩几个小时可以考虑按量计费或者用更轻量的方案。替代思路包括用官方联机服务按需开房间用虚拟局域网工具临时组网或者把服务端放在一台常开的低功耗设备上只在需要时开启中转。选择哪种取决于你玩的频率和对存档控制权的要求。我自己折腾下来最深的体会是别把联机当成一次性任务。网络环境会变IP会变程序会更新朋友的时间也对不上。把配置写成文档、把备份做成自动、把排查步骤记下来下次出问题能少花一半时间。还有一个小技巧给中转机和游戏服务端各建一个简单的状态检查脚本定时看端口和进程异常时给自己发个提醒比等朋友来问“怎么又连不上”要主动得多。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。