ZSTDNET avatar

ZSTDNET [1.21.1] [1.20.1]

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:25565

ZstdNet автоматически перехватывает публичный порт сервера из 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=false

ZstdNet обрабатывает пересылку и сжатие. Если вы хотите сохранить проверку премиум-аккаунтов, оставив бэкенд офлайн, вы можете объединить эту настройку с таким модом, как 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)

Почему я не могу подключиться к серверу?

Сначала проверьте следующее:

  1. Если auto_takeover=true, игроки должны продолжать использовать обычный публичный порт из server.properties.
  2. Если auto_takeover=false, убедитесь, что игроки используют настроенный порт listen.
  3. Убедитесь, что FRP или другие туннели перенаправляют трафик на порт listen ZstdNet.
  4. Убедитесь, что в config/zstdnet-server.properties установлено enabled=true.
  5. Убедитесь, что listen и target не перепутаны местами в ручном режиме.
  6. Убедитесь, что порт Zstd не заблокирован правилами брандмауэра или не используется другой программой.
  7. При LAN-хостинге используйте фактический порт Zstd, указанный в чате. Порт игры обычно можно оставить пустым, так как ZstdNet автоматически следует за портом текущего LAN-сеанса.
  8. Убедитесь, что никакой другой мод не перехватывает поток входа в систему или рукопожатия.

Означает ли коэффициент, близкий к 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 = 3

level управляет степенью сжатия Zstd от клиента к серверу. Более высокие значения могут обеспечить лучшее сжатие, но требуют больше ресурсов CPU. Значение около 3-5 обычно является хорошим балансом.

Зависимость

  • zstd-jni

Скачать ZSTDNET

 
Тип Скачать Версия Загрузчик Обновлено Размер
Releasezstdnet-1.20.1-neoforge-1.4.7.jar1.20.1NeoForge16 июля 20268,3 МБ
Releasezstdnet-1.20.1-fabric-1.4.7.jar1.20.1Fabric16 июля 20268,3 МБ
Releasezstdnet-1.20.1-forge-1.4.7.jar1.20.1Forge16 июля 20268,3 МБ
Releasezstdnet-1.21.1-neoforge-1.4.7.jar1.21.1NeoForge16 июля 20268,3 МБ
Releasezstdnet-1.21.1-fabric-1.4.7.jar1.21.1Fabric16 июля 20268,3 МБ
Releasezstdnet-1.20.1-forge-1.4.6.jar1.20.1Forge30 июня 20268,2 МБ
Releasezstdnet-1.20.1-fabric-1.4.6.jar1.20.1Fabric30 июня 20268,2 МБ
Releasezstdnet-1.20.1-neoforge-1.4.6.jar1.20.1NeoForge30 июня 20268,2 МБ
Releasezstdnet-1.21.1-neoforge-1.4.6.jar1.21.1NeoForge30 июня 20268,2 МБ
Releasezstdnet-1.21.1-fabric-1.4.6.jar1.21.1Fabric30 июня 20268,3 МБ