WittF's Blog

WittF's Blog

如何搭建Hypixel的加速IP?

396
2024-06-13

引言

大部分海外MC服务器没有针对中国网络进行优化,导致大陆玩家直连时常遇到高延迟和掉包问题。通过配置一个专用的加速IP,可以显著降低延迟并稳定连接。

准备

使用 layou233/ZBProxy 项目来搭建Hypixel的加速IP。

本文以雨云的美国2区E5v4中配版为例进行演示,环境为Debian12系统。

服务器

首先需要一台可公网访问的服务器。那么如何选择服务器呢?

确定需求

对于游戏加速而言,这台服务器需要尽可能稳定和低延迟,对CPU/内存/存储的性能要求不大,私人使用带宽5+Mbps就绰绰有余。

选择服务器

接下来要考虑的就是使用哪家的服务器了,尽量选择靠近MC服务器物理位置的服务器,比如Hypixel的服务器是在美国,那就建议选有优化大陆线路的美国服务器,如果不了解可以直接选择雨云的美国2区机器(本文演示所用,不如专线但是便宜方便)。

https://www.rainyun.com/sb_

远程连接

一般云服务商在购买后在面板内提供的远程连接服务都不好用,大部分都不能复制粘贴,建议使用第三方ssh远程连接客户端(如Xshell、Xterminal、Termius...)。

配置

开放相应端口(若启用防火墙),远程连接上服务器的终端控制台。

拉取并构建项目

安装应用

更新系统应用列表并安装Go编程语言、Git版本控制工具和Nano文本编辑器。

sudo apt update
sudo apt-get install golang git nano

克隆仓库

从项目远程仓库克隆项目代码到本地。

git clone https://github.com/layou233/ZBProxy.git

构建项目

用于进入项目的根目录,编译项目代码并生成可执行文件。

cd ZBProxy
go build

构建完成后,会在当前目录下生成一个名为ZBProxy的可执行文件。

配置选项

运行ZBProxy以生成默认配置文件。

chmod +x ZBProxy
./ZBProxy

现在目录中应该有一个名为ZBProxy.json的配置文件,可以通过ls命令查看目录文件来确认。

ls

接下来使用nano编辑配置文件。

nano ZBProxy.json

编辑完成后按下 Ctrl + X,按 Y 确认保存,然后按 Enter 退出 Nano 文本编辑器。

基本配置说明

Name: 服务名称

TargetAddress: 需要加速的目标IP

TargetPort: 需要加速的目标端口

Listen: 服务器的加速端口

MotdFavicon: 列表中的服务器图标

MotdDescription: 列表中的服务器描述信息

Max: 服务器的最大在线人数

一般只需要配置以上几个选项即可。

配置详细说明

{
    "Services": [
        {
            "Name": "HypixelDefault", // 服务名称,用于在日志中显示或作为多人游戏列表描述信息中的{NAME}占位符
            "TargetAddress": "mc.hypixel.net", // 目标地址,即你想要加速的目标IP(不包括端口号)
            "TargetPort": 25565, // 目标端口,即你想要加速的目标端口(范围0-65535)
            "Listen": 25565, // 本地监听端口,即加速后用来加入游戏的端口(范围0-65535)
            "Flow": "auto", // 流控模式,可选项包括 "auto"(默认),"linux-zerocopy","multiple",和 "origin"
            "IPAccess": {
                "Mode": "", // 客户端IP访问控制模式,详见访问控制页
                "ListTags": [] // 用于访问控制的标签列表
            },
            "Minecraft": {
                "EnableHostnameRewrite": true, // 是否启用主机名重写
                "RewrittenHostname": "", // 重写后的主机名
                "OnlineCount": {
                    "Max": 114514, // 服务器的最大在线人数
                    "Online": -1, // 服务器当前在线人数,-1表示不限制
                    "EnableMaxLimit": false // 是否启用最大人数限制
                },
                "IgnoreFMLSuffix": false, // 是否忽略FML后缀
                "HostnameAccess": {
                    "Mode": "", // 主机名访问控制模式
                    "ListTags": [] // 用于主机名访问控制的标签列表
                },
                "NameAccess": {
                    "Mode": "", // 名称访问控制模式
                    "ListTags": [] // 用于名称访问控制的标签列表
                },
                "EnableAnyDest": false, // 是否启用任意目的地
                "AnyDestSettings": {}, // 任意目的地设置
                "PingMode": "", // Ping模式
                "MotdFavicon": "{DEFAULT_MOTD}", // 多人游戏列表服务器图标
                "MotdDescription": "§d{NAME}§e service is working on §a§o{INFO}§r\n§c§lProxy for §6§n{HOST}:{PORT}§r" // 多人游戏列表服务器描述信息
            },
            "TLSSniffing": {
                "RejectNonTLS": false, // 是否拒绝非TLS连接
                "RejectIfNonMatch": false, // 如果不匹配,是否拒绝连接
                "SNIAllowListTags": [] // SNI允许列表标签
            },
            "SocketOptions": {
                "Mark": 0, // 出站连接的路由标记,不为0时生效
                "Interface": "", // 绑定出站连接到指定网卡,不为空时生效
                "TCPFastOpen": false, // 启用TCP快速打开支持
                "TCPCongestion": "", // 出站连接的TCP拥塞控制算法
                "MultiPathTCP": false // 启用多路径TCP支持
            },
            "Outbound": {
                "Type": "", // 出站类型,可选项包括:空字符串(默认),"socks"/"socks5","socks4a","socks4"
                "Network": "tcp", // 出站连接的网络类型,可选项包括:"tcp","tcp4","tcp6"
                "Address": "" // 出站服务器地址,格式为 "host:port",例如 "localhost:1080"
            }
        }
    ],
    "Lists": {} // 定义用于访问控制的列表
}

重置配置方式

ZBProxy启动时会自动检查配置文件,如果配置文件不存在,就会自动生成一个新的。因此,如果配置错误,可以直接删除ZBProxy.json文件,然后重新启动生成默认配置。

rm ZBProxy.json && timeout 3s ./ZBProxy

使用

配置完成后,启动加速服务。

./ZBProxy

使用服务器IP和Listen端口就可以加入游戏了。

常见问题

构建失败

不同系统软件包工具内的软件版本不同, 一般运行go build构建时报错都是因为 Go 版本不对导致的, 请自行前往 Go Download 下载最新的稳定版本。