Giter Site home page Giter Site logo

elytrium / elytraproxy Goto Github PK

View Code? Open in Web Editor NEW
31.0 5.0 7.0 5.01 MB

Really customizable Minecraft proxy server with Auth, AntiBot, etc, based on Velocity. Supports 1.7 - 1.17.1

Home Page: https://elytrium.net/

License: GNU Affero General Public License v3.0

Shell 100.00%
minecraft minecraft-proxy minecraft-server minecraft-server-proxy minecraft-server-software botfilter velocity proxy bungee bungeecord

elytraproxy's Introduction

Elytrium

Deprecated: go back i want to be monke plugin

ElytraProxy's Virtual Server, Auth, and BotFilter features are now available in simple Velocity plugins: LimboAPI, LimboAuth and LimboFilter 🥳

ElytraProxy

Join our Discord Proxy Stats Proxy Stats

Really customizable Minecraft proxy server with Auth, AntiBot (aka BotFilter) and some another helpful stuff, based on Velocity. Developed for Elytrium, cheap and modern Russian game hosting with powerful AntiBot system.

Описание и обсуждение на русском языке (spigotmc.ru)
Описание и обсуждение на русском языке (rubukkit.org)

Test server: ely.su

Features

  • 1.7 - 1.17.1 is supported
  • The most powerful bot protection on market (see below) via Falling Check, Captcha and ClientSettings + MC|Brand packets decryption.
  • Customizable Captcha - change font, backplate or alphabet of captcha
  • SQLite/MySQL + BCrypt Auth System with IP Limit (by default: 3 accounts on 1 IP during 6 hours), "Online Mode (aka Premium) accounts skip auth" mode is supported, 2FA TOTP (aka Google Authenticator)
  • Change dimension of VirtualServer
  • BungeeCord common commands(/find, /send, /alert)
  • Hostnames Manager(blocklist or allowlist)
  • Maintenance Motd Mode
  • Fully customisable messages, incl. Velocity messages and server brand/version

Build

You need JDK11+ and git to compile ElytraProxy.

  • Clone this repo: git clone https://github.com/Elytrium/ElytraProxy/
  • Apply patches: ./elytraproxy b
  • Get your binary: ElytraProxy-Build/proxy/build/libs/elytraproxy-proxy-VERSION-all.jar

AntiBot info

Test server: i7-3770 (4c/8t 3.4GHz) Dedicated server, Ubuntu Server 20.04, OpenJDK 11, 16GB DDR3 1600MHz RAM, 4GB RAM is allocated to proxy.
Attack: Motd + Join bot attack (100k joins per seconds, 1.17 Protocol)

Proxy server Info Boot time % CPU on attack
ElytraProxy ElytraProxy Auth Online/Offline Mode 2 sec 20%
ElytraProxy Offline Mode 2 sec 20%
Leymooo's BungeeCord BotFilter JPremium Online/Offline Mode 8 sec 95%
Leymooo's BungeeCord BotFilter Offline Mode 8 sec 40%
yooniks' BungeeCord Aegis Escanor 1.3.1 Offline Mode 10 sec 20%
yooniks' BungeeCord Aegis 9.2.1 Offline Mode 10 sec 100% (what?)
Velocity JPremium Online/Offline Mode 2 sec 95%
Velocity Online Mode 2 sec 70%
Velocity Offline Mode 2 sec 55%

Donation

Your donations are really appreciated. Donations wallets/links/cards:

Contribution

Follow this instruction, if you want to create your own patch.

  • Apply current patches: ./elytraproxy b
  • Do your changes and try to build: ./gradlew build
  • Create git commit: cd ElytraProxy-Build && git add . && git commit -m "Patch Name"
  • Rebuild patches: ./elytraproxy rb
  • Now you can upload your patch and submit a pull request :)

elytraproxy's People

Contributors

hevav avatar mdxd44 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

elytraproxy's Issues

Auth server Not remembering players login password and when logging in after registering it will redirect you even without loggining in.

This was the error message I got


17:45:46 ERROR: at org.sqlite.jdbc4.JDBC4ResultSet.getObject(JDBC4ResultSet.java:343)
17:45:46 ERROR: at net.elytrium.elytraproxy.database.MySqlDatabase.serializeFromSet(MySqlDatabase.java:210)
17:45:46 ERROR: at net.elytrium.elytraproxy.database.MySqlDatabase.queryResult(MySqlDatabase.java:146)
17:45:46 ERROR: at net.elytrium.elytraproxy.database.MySqlDatabase.getItem(MySqlDatabase.java:125)
17:45:46 ERROR: at net.elytrium.elytraproxy.auth.handler.AuthSessionHandler.fetchInfo(AuthSessionHandler.java:142)
17:45:46 ERROR: at net.elytrium.elytraproxy.auth.handler.AuthSessionHandler.fetchInfo(AuthSessionHandler.java:149)
17:45:46 ERROR: at net.elytrium.elytraproxy.auth.handler.AuthSessionHandler.(AuthSessionHandler.java:68)
17:45:46 ERROR: at net.elytrium.elytraproxy.ElytraProxy.sendToAuthServer(ElytraProxy.java:265)
17:45:46 ERROR: at net.elytrium.elytraproxy.ElytraProxy.lambda$auth$0(ElytraProxy.java:246)
17:45:46 ERROR: at org.asynchttpclient.netty.NettyResponseFuture.lambda$addListener$0(NettyResponseFuture.java:294)
17:45:46 ERROR: at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
17:45:46 ERROR: at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
17:45:46 ERROR: at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
17:45:46 ERROR: at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
17:45:46 ERROR: at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
17:45:46 ERROR: at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
17:45:46 ERROR: at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
17:45:46 ERROR: at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
17:45:46 ERROR: at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
17:45:46 ERROR: at java.base/java.lang.Thread.run(Thread.java:831)
17:45:46 ERROR: java.sql.SQLFeatureNotSupportedException
17:45:46 ERROR: at org.sqlite.jdbc4.JDBC4ResultSet.getObject(JDBC4ResultSet.java:343)
17:45:46 ERROR: at net.elytrium.elytraproxy.database.MySqlDatabase.serializeFromSet(MySqlDatabase.java:210)
17:45:46 ERROR: at net.elytrium.elytraproxy.database.MySqlDatabase.queryResultList(MySqlDatabase.java:171)
17:45:46 ERROR: at net.elytrium.elytraproxy.database.MySqlDatabase.getItems(MySqlDatabase.java:136)
17:45:46 ERROR: at net.elytrium.elytraproxy.auth.handler.AuthSessionHandler.checkIp(AuthSessionHandler.java:160)
17:45:46 ERROR: at net.elytrium.elytraproxy.auth.handler.AuthSessionHandler.onSpawn(AuthSessionHandler.java:133)
17:45:46 ERROR: at net.elytrium.elytraproxy.virtual.server.VirtualServer.spawnPlayer(VirtualServer.java:51)
17:45:46 ERROR: at net.elytrium.elytraproxy.ElytraProxy.sendToAuthServer(ElytraProxy.java:268)
17:45:46 ERROR: at net.elytrium.elytraproxy.ElytraProxy.lambda$auth$0(ElytraProxy.java:246)
17:45:46 ERROR: at org.asynchttpclient.netty.NettyResponseFuture.lambda$addListener$0(NettyResponseFuture.java:294)
17:45:46 ERROR: at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
17:45:46 ERROR: at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
17:45:46 ERROR: at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
17:45:46 ERROR: at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
17:45:46 ERROR: at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
17:45:46 ERROR: at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
17:45:46 ERROR: at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
17:45:46 ERROR: at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
17:45:46 ERROR: at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
17:45:46 ERROR: at java.base/java.lang.Thread.run(Thread.java:831)
17:45:46 ERROR [ElytraProxy]: Error
java.lang.NullPointerException: Cannot invoke "java.util.List.size()" because "alreadyRegistered" is null
at net.elytrium.elytraproxy.auth.handler.AuthSessionHandler.checkIp(AuthSessionHandler.java:166) ~[elytraproxy-proxy-3.0.1-SNAPSHOT-all.jar:3.0.1-SNAPSHOT (git-ec86936b-bunknown)]
at net.elytrium.elytraproxy.auth.handler.AuthSessionHandler.onSpawn(AuthSessionHandler.java:133) ~[elytraproxy-proxy-3.0.1-SNAPSHOT-all.jar:3.0.1-SNAPSHOT (git-ec86936b-bunknown)]
at net.elytrium.elytraproxy.virtual.server.VirtualServer.spawnPlayer(VirtualServer.java:51) ~[elytraproxy-proxy-3.0.1-SNAPSHOT-all.jar:3.0.1-SNAPSHOT (git-ec86936b-bunknown)]
at net.elytrium.elytraproxy.ElytraProxy.sendToAuthServer(ElytraProxy.java:268) ~[elytraproxy-proxy-3.0.1-SNAPSHOT-all.jar:3.0.1-SNAPSHOT (git-ec86936b-bunknown)]
at net.elytrium.elytraproxy.ElytraProxy.lambda$auth$0(ElytraProxy.java:246) ~[elytraproxy-proxy-3.0.1-SNAPSHOT-all.jar:3.0.1-SNAPSHOT (git-ec86936b-bunknown)]
at org.asynchttpclient.netty.NettyResponseFuture.lambda$addListener$0(NettyResponseFuture.java:294) ~[elytraproxy-proxy-3.0.1-SNAPSHOT-all.jar:3.0.1-SNAPSHOT (git-ec86936b-bunknown)]
at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) ~[?:?]
at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837) ~[?:?]
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[elytraproxy-proxy-3.0.1-SNAPSHOT-all.jar:3.0.1-SNAPSHOT (git-ec86936b-bunknown)]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[elytraproxy-proxy-3.0.1-SNAPSHOT-all.jar:3.0.1-SNAPSHOT (git-ec86936b-bunknown)]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[elytraproxy-proxy-3.0.1-SNAPSHOT-all.jar:3.0.1-SNAPSHOT (git-ec86936b-bunknown)]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[elytraproxy-proxy-3.0.1-SNAPSHOT-all.jar:3.0.1-SNAPSHOT (git-ec86936b-bunknown)]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[elytraproxy-proxy-3.0.1-SNAPSHOT-all.jar:3.0.1-SNAPSHOT (git-ec86936b-bunknown)]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[elytraproxy-proxy-3.0.1-SNAPSHOT-all.jar:3.0.1-SNAPSHOT (git-ec86936b-bunknown)]
at java.lang.Thread.run(Thread.java:831) [?:?]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.