ZstdNet (v1.4.6)
ZstdNet — это мод для Minecraft Java Edition, использующий ZSTD для сжатия ретранслируемого трафика между клиентами и серверами. Он предназначен для снижения использования публичной пропускной способности в высокоповторяющемся модифицированном трафике, особенно для больших сборок модов на основе Create, FRP/NAT-сетей, туннельной пересылки и хостов одиночной игры по LAN, желающих предоставить более эффективный по пропускной способности внешний вход.
ZstdNet обрабатывает пересылку и сжатие. Если вы хотите сохранить проверку премиум-аккаунтов, оставив бэкенд офлайн, вы можете объединить эту настройку с таким модом, как TrueUUID.
Основные возможности
- Автоматически запускает временный локальный клиентский прокси при подключении к адресу ZstdNet.
- Предоставляет сжатую точку входа на стороне сервера и перенаправляет трафик на бэкенд-порт Minecraft.
- Поддерживает выделенные серверы и LAN-миры, запущенные из одиночной игры.
- Поддерживает режим автоматического перехвата по умолчанию, чтобы игроки выделенного сервера могли продолжать использовать тот же публичный адрес и порт.
- Включает внутриигровой HUD для отображения режима подключения, пропускной способности, общего трафика, степени сжатия и количества подключений.
- Обеспечивает нормальную работу пинг-пакета ванильного списка серверов.
- Предоставляет сквозной UDP-проход на одном порту на стороне клиентского локального прокси для таких модов, как Sable / Create Aeronautics.
- Предоставляет маршруты прямого UDP-прохода для Simple Voice Chat и аналогичных UDP-голосовых настроек.
Пример реального результата
Основная цель этого мода — снизить использование публичной пропускной способности, вызванное высокоповторяющимися пакетами трафика. В больших сборках модов выигрыш от сжатия может быть значительным. Пример статистики на стороне сервера из реального окружения на основе Create:
Raw: 189.06 GB (3.6MB/s) | Zstd: 10.28 GB (252.7KB/s) | Ratio: 5.44% | Conns: 8
Raw: 189.06 GB (5.0MB/s) | Zstd: 10.28 GB (234.3KB/s) | Ratio: 5.44% | Conns: 8
Raw: 189.06 GB (3.2MB/s) | Zstd: 10.28 GB (215.5KB/s) | Ratio: 5.44% | Conns: 8
Raw: 189.07 GB (4.8MB/s) | Zstd: 10.28 GB (303.7KB/s) | Ratio: 5.44% | Conns: 8
Чем ниже коэффициент, тем меньше трафика фактически передается после сжатия.
Поддерживаемые версии
Этот репозиторий в настоящее время предоставляет сборки для:
- Forge 1.20.1
- NeoForge 1.20.1
- NeoForge 1.21.1
- Fabric 1.20.1
- Fabric 1.21.1
Установка
Рекомендуемый способ установки зависит от того, как вы используете мод:
- Подключение к удаленному серверу с ZstdNet: установите ZstdNet на клиент.
- Хостинг выделенного сервера со встроенным входом ZstdNet: установите ZstdNet на сервер.
- Открытие мира одиночной игры по LAN и предоставление внешнего доступа через Zstd: установите ZstdNet на клиент-хост.
Для наиболее плавного взаимодействия рекомендуется установить мод как на клиент, так и на сервер.
Как игроки подключаются
При рекомендуемой настройке выделенного сервера оставьте:
auto_takeover=trueВ этом режиме игроки обычно продолжают использовать тот же публичный адрес и порт, которые они уже знают, например:
play.example.com:25565
1.2.3.4:25565ZstdNet автоматически перехватывает публичный порт сервера из server.properties, перемещает бэкенд-сервер Minecraft на другой локальный порт и внутренне перенаправляет сжатый трафик. Игрокам не нужно узнавать второй порт только для ZstdNet.
Только при использовании auto_takeover=false в ручном режиме игрокам необходимо подключаться к настроенному порту listen.
Настройка выделенного сервера
При первом запуске ZstdNet создает:
config/zstdnet-server.propertiesРекомендуемые настройки по умолчанию:
enabled=true
auto_takeover=trueС этой настройкой:
- Игроки продолжают подключаться к исходному публичному порту.
- ZstdNet использует этот порт как сжатую публичную точку входа.
- Бэкенд-сервер Minecraft автоматически перемещается на другой свободный локальный порт.
- Обычно нет необходимости вручную настраивать
listenиtarget.
Если вы используете FRP, HAProxy, NAT-траверс или любой другой уровень пересылки, убедитесь, что публичный вход перенаправляется на порт listen ZstdNet. Не перенаправляйте напрямую на бэкенд-порт ванильной игры, иначе сжатие будет обойдено.
Для UDP-модов на одном порту, таких как Sable / Create Aeronautics, убедитесь, что уровень пересылки перенаправляет как TCP, так и UDP на один и тот же публичный порт.
Примечания к бэкенд-серверу
Для настроек выделенного сервера в стиле прокси бэкенд-сервер Minecraft должен работать с:
online-mode=falseZstdNet обрабатывает пересылку и сжатие. Если вы хотите сохранить проверку премиум-аккаунтов, оставив бэкенд офлайн, вы можете объединить эту настройку с таким модом, как TrueUUID.
Одиночная игра / LAN-хостинг
При открытии мира одиночной игры по LAN ZstdNet добавляет поле порта Zstd на экран Open to LAN и сохраняет совместимость стандартного поля порта игры с ванильными или поддерживаемыми расширенными экранами LAN.
Рекомендуемое использование:
- Оставьте порт игры пустым, если вам явно не нужен фиксированный LAN-порт Minecraft. ZstdNet автоматически следует за фактическим LAN-портом, используемым в текущем сеансе.
- Порт Zstd сначала использует настроенный порт. Если этот порт уже занят или зарезервирован LAN-сеансом или голосовым маршрутом, ZstdNet автоматически переключается на другой доступный порт.
- После открытия LAN-мира в игровом чате выводится фактический порт Zstd. На порт Zstd в этом сообщении можно нажать, чтобы скопировать его.
Активные настройки хранятся в:
config/zstdnet-server.propertiesи поддерживают горячую перезагрузку.
Если друзья подключаются из-за пределов вашей локальной сети, дайте им этот адрес:
Ваш публичный IP или домен:фактический порт Zstd, показанный в чатеПримеры:
mc.example.com:35565
203.0.113.10:35565Если другой LAN-мод полностью заменяет экран Open to LAN и поле Zstd не отображается, используйте:
/zstdport showдля просмотра текущих портов. Используйте:
/zstdport zstd только когда вам нужно закрепить фиксированный публичный или туннельный порт.
Команды
/zstdhud
Используется для проверки или переключения HUD:
/zstdhud
/zstdhud on
/zstdhud off
/zstdhud toggle/zstdport
Используется для просмотра или изменения портов в сценариях одиночной игры / LAN-хостинга:
/zstdport show
/zstdport game 25565
/zstdport zstd 35565
/zstdport voice 25565
/zstdport zstdvoice 24455Примечания:
/zstdport— это клиентская команда.showотображает текущую действующую конфигурацию.gameизменяет предпочтительный бэкенд-порт игры.zstdизменяет предпочтительный порт прослушивания Zstd.voiceизменяетvoice_chat_target, бэкенд-порт голосового чата.zstdvoiceизменяетvoice_chat_listen, публичный вход для голосового чата.- При обычном LAN-хостинге обычно нет необходимости выполнять эти команды вручную.
- Для выделенных серверов редактируйте
config/zstdnet-server.propertiesнапрямую.
Панель HUD
После включения HUD вы можете просматривать:
- Текущий режим подключения
- Адрес прослушивания или адрес удаленной цели
- Сжатую пропускную способность в реальном времени
- Исходную пропускную способность в реальном времени
- Общий переданный трафик
- Степень сжатия
- Текущее количество подключений
HUD — это самый простой способ подтвердить, что соединение действительно использует ZstdNet.
Simple Voice Chat / Примечания по UDP
Аудио Simple Voice Chat не сжимается ZstdNet. ZstdNet перенаправляет UDP-голосовые пакеты как прямой проход.
- Если Simple Voice Chat использует свой собственный UDP-порт, при необходимости явно укажите
voice_chat_listen. voice_chat_targetобычно можно оставить пустым, и он будет по умолчанию использовать локальный голосовой порт.- Если UDP-маршрут не может быть активирован, TCP-путь игры все равно работает, но голосовой чат может оставаться офлайн.
Часто задаваемые вопросы (FAQ)
Почему я не могу подключиться к серверу?
Сначала проверьте следующее:
- Если
auto_takeover=true, игроки должны продолжать использовать обычный публичный порт изserver.properties. - Если
auto_takeover=false, убедитесь, что игроки используют настроенный портlisten. - Убедитесь, что FRP или другие туннели перенаправляют трафик на порт
listenZstdNet. - Убедитесь, что в
config/zstdnet-server.propertiesустановленоenabled=true. - Убедитесь, что
listenиtargetне перепутаны местами в ручном режиме. - Убедитесь, что порт Zstd не заблокирован правилами брандмауэра или не используется другой программой.
- При LAN-хостинге используйте фактический порт Zstd, указанный в чате. Порт игры обычно можно оставить пустым, так как ZstdNet автоматически следует за портом текущего LAN-сеанса.
- Убедитесь, что никакой другой мод не перехватывает поток входа в систему или рукопожатия.
Означает ли коэффициент, близкий к 100%, что мод не работает?
Не обязательно. Некоторые типы трафика плохо сжимаются или могут быть уже зашифрованы, что снижает выгоду.
Может ли это конфликтовать с другими мультиплеерными модами?
Возможно. ZstdNet разработан для совместимости с ванильными и распространенными шаблонами экранов LAN, но переписывание UI с большим количеством элементов может потребовать использования команды /zstdport show или /zstdport zstd .
Файлы конфигурации
- Клиент:
config/zstdnet-client.toml - Сервер:
config/zstdnet-server.properties
zstdnet-server.properties поддерживается автоматически. Когда порты изменяются с помощью команд или автоматического перехвата, файл перезаписывается со встроенным шаблоном с комментариями.
Важные опции сервера:
enabled: включение или отключение службы ZstdNet.auto_takeover: автоматическое использованиеserver-portизserver.propertiesв качестве публичного входа на выделенных серверах.listen: адрес и порт сжатого входа Zstd в ручном режиме.target: адрес и порт бэкенд-сервера Minecraft в ручном режиме.level: степень сжатия, диапазон 1-22.voice_chat_passthrough: включение прямого UDP-прохода для голосового чата.voice_chat_listen: опциональный публичный UDP-вход для голосового чата.voice_chat_target: опциональный бэкенд-адрес UDP для голосового чата.
Конфигурация клиента:
[general]
level = 3level управляет степенью сжатия Zstd от клиента к серверу. Более высокие значения могут обеспечить лучшее сжатие, но требуют больше ресурсов CPU. Значение около 3-5 обычно является хорошим балансом.
Зависимость
- zstd-jni

