首页 > 基础资料 博客日记
针对高校教育网、纯IPv4网络下的minecraft java版联机攻略
2024-11-01 08:00:07基础资料围观145次
温馨提示:这是一篇穷鬼联机攻略,适合学生党等低收入人群,联机人数不超过10人。本文介绍的mc联机经验,除了购买电脑/服务器的费用、宽带费、电费等常规消费外不包含其他额外费用(例如使用VPN、购买内网穿透服务、租赁云服务器、域名、申请公网IPv4地址等),用到的电脑系统均为windows,用来充当服务器的是ubuntu系统的orangepi 5 plus开发板,如果你舍得花钱,那么就不用往下看,可以划走了,很多问题花钱就能解决。
我和我的朋友们虽然都在同一个省,但是各自的网络条件区别很大,网络上大部分的教程都没有指明适用的条件,也正因如此,我们几人无法用同一种方法进行联机,搞得我很头大。
下面先介绍一下我们几人的网络条件:
- A(我本人,服务器在我家):中国移动家用宽带1000M,向中国移动宽带师傅要了超级管理员密码,将家里的光猫改成了“桥接模式”,同时关闭了ipv6防火墙(这一步很重要,不然外网无法访问只有公网IPv6的服务器),家里用路由器拨号上网,路由器如果有IPv6防火墙也要关闭。
- 服务器:通过连接家里的路由器,获得公网IPv6地址(因为全球公网IPv4不够用了,运营商现在一般都不会分配给家用宽带公网IPv4地址)。在ubuntu上安装了mcsmanager用于部署mc服务器,mcsmanager还挺简单的,不怎么需要敲命令行。
- B:在ZJU,用的学校的教育网,有公网IPv6。
- C:在单位,单位的网络只有内部分配的静态IPv4(不是公网ip),无法访问纯IPv6站点。
目录
联机方法一:IPv6直连
由于服务器有公网IPv6地址,所以用IPv6直连是最简单的联机方法,只需要把服务器的IPv6地址(形如2409:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX)告诉朋友们,在mc多人游戏连接[2409:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX]:25565(服务器默认开放在端口25565)就可以了。
实测朋友B可以通过这种方式连接到服务器,但C无法使用IPv6直连,于是我们找到了第二种方法。
联机方法二:frp内网穿透
frp是一款开源的内网穿透工具,可以在github上直接下载对应系统的版本。frp中文网站
根据官方教程,frp需要一台有公网ip的设备充当frp server,因此我们去华为云租了一台云服务器(新用户有一个月试用期或者选择第一年三十几块钱)。我们选择使用frp提供的xtcp点对点连接方式,因为根据frp文档的说明,客户端的流量不会通过frp server端也就是云服务器端转发(节约了云服务器的流量)。
云服务器配置步骤:
- 配置 frps.toml并保存
bindPort = 7000 #这里以7000端口为例
- 运行frps
./frps -c ./frps.toml
- 注意查看是否有配置防火墙,将7000端口设置为允许通过,例如如果用ufw:
sudo ufw allow 7000
注意:在linux下可以使用systemd让frps服务后台运行、开机自启,详见frp文档
服务器(开发板)配置步骤:
- 在mcsmanager中开启服务器,默认端口为25565,注意查看是否有配置防火墙,将25565端口设置为允许通过
- 配置frpc.toml并保存
serverAddr="XXX.XXX.XXX.XXX" # 云服务器的ip
serverPort =7000 # 注意和云服务器frps设置的端口一致
[[proxies]]
name = "test" # 服务器名称,随便写
type ="xtcp"
secretkey ="123456" # 相当于连接服务器的密码,自定义就行
localIP ="127.0.0.1"
LocalPort =25565 # 游戏端口
- 运行frpc
./frpc -c ./frpc.toml
此时看一下终端是否显示“login to server success”,成功就说明连上云服务器的frp服务端了,这里一般只要能ping通云服务器且端口没有被拦截都能成功。
联机玩家配置步骤:
- 配置frpc.toml并保存
serverAddr = "XXX.XXX.XXX.XXX" # 云服务器的ip
serverPort = 7000 # 注意和云服务器frps设置的端口一致
[[visitors]]
name = "abc" # 你的id,和其他用户不一样就行
type = "xtcp"
serverName = "test" # 要访问的 P2P 代理的名称,注意和服务器frpc.toml一致
secretKey = "123456" # 密码,注意和服务器frpc.toml一致
bindAddr = "127.0.0.1"
bindPort = 25565
- 运行frpc
./frpc.exe -c ./frpc.toml
- 打开mc多人游戏,连接127.0.0.1:25565
这里朋友C使用这种方法实现了联机,但是朋友B所在的教育网因为某些不确定的原因frp穿透失败了,同时,由于云服务器租赁一年下来也要几百块钱(新人优惠除外),但我们只是用了一下云服务器的公网ip,同时运行了一下frps,frp也没走云服务器流量,花这个钱感觉不划算,于是我们找到了第三种方法。
联机方法三:虚拟局域网
古早时期,我还记得用hamachi和朋友联机,但这东西貌似只有windows的,于是现在我们找了zerotier来创建虚拟局域网。zerotier官网
zerotier的免费版可以创建3个局域网加入10台设备,对于小规模联机来说已经够用了。
通过创建虚拟局域网,我们只要把服务器和联机玩家的电脑都加入这个虚拟局域网就能实现“局域网联机”了。
服务器安装zerotier:
- 根据官网教程,ubuntu环境在终端输入:
curl -s https://install.zerotier.com | sudo bash
- 显示success后,终端加入创建的虚拟局域网id:
sudo zerotier-cli join your-networkid
- 然后在zerotier网站上授权一下加入的设备,就能获得一个虚拟局域网ip了:
联机玩家安装zerotier:
- 下载安装windows版本客户端
- 点击zerotier图标,join new network,输入创建的局域网id
- 和上面一样,在zerotier网站上授权一下加入的设备
- 此时可以ping一下服务器的局域网ip,看看是否加入了虚拟局域网
这种联机方式,由于zerotier是国外的,不是很稳定,效果因人而异,我自己用这种方式联机的延迟可以接受,但是朋友C用这种方式延迟很高,很卡,完全无法联机游玩。
联机方法四:frp+zerotier(创新的联机方法,朋友B和C都适用)
通过上面的介绍我们知道,在不同的方法下,不是朋友B不能联机就是朋友C不能联机,我很头疼,试用的云服务器也快到期了。通过总结经验,我发现根本原因就是缺少公网IPv4地址的设备,那我就想到是不是可以把zerotier的虚拟局域网提供的ip看做公网ip,直接在服务器(开发板)上同时运行frp server端和frp client端,测试下来后,朋友B和C都联机成功了!而且流畅,没有只用zetotier局域网联机那么卡,至此,穷鬼联机方法介绍完毕,大家可以选择适合自己的方法和朋友们联机了。
frp+zerotier的方法只需要在前面的基础上,对frpc.toml文件以及frps.toml文件进行修改。
服务器配置:
- frps.toml
不需要云服务器了,直接服务器自己运行frp server端(记得防火墙开7000端口)。
bindPort = 7000 #这里以7000端口为例
- 运行frps
./frps -c ./frps.toml
- 配置frpc.toml并保存
服务器ip填虚拟局域网的ip
serverAddr="XXX.XXX.XXX.XXX" # 服务器的虚拟局域网ip
serverPort =7000 # 注意和服务器frps设置的端口一致
[[proxies]]
name = "test" # 服务器名称,随便写
type ="xtcp"
secretkey ="123456" # 相当于连接服务器的密码,自定义就行
localIP ="127.0.0.1"
LocalPort =25565 # 游戏端口
- 运行frpc
./frpc -c ./frpc.toml
联机玩家配置:
- 配置frpc.toml并保存
serverAddr = "XXX.XXX.XXX.XXX" # 服务器的虚拟局域网ip
serverPort = 7000 # 注意和服务器frps设置的端口一致
[[visitors]]
name = "abc" # 你的id,和其他用户不一样就行
type = "xtcp"
serverName = "test" # 要访问的 P2P 代理的名称,注意和服务器frpc.toml一致
secretKey = "123456" # 密码,注意和服务器frpc.toml一致
bindAddr = "127.0.0.1"
bindPort = 25565
- 运行frpc
./frpc.exe -c ./frpc.toml
- 打开mc多人游戏,连接127.0.0.1:25565
以上都是个人经验总结,如果错误,敬请指正;如有疑问,欢迎交流。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
上一篇:OpenJDK 8 安装指南
下一篇:更改IDEA中的jdk版本