2013-04-02 20 views
12

Przez ostatnie kilka tygodni przeszukałem internet, umysły programistów komputerowych i kilka osób losowo nad sytuacją, którą chcę przezwyciężyć. Zasadniczo, próbuję to napisać "wtyczkę" AntiJoinBot (jeśli wolisz) do popularnej gry Minecraft. Byłoby to podobne do wszystkich innych pod względem blokowania adresów IP na podstawie tego, czy używają proxy, czy nie, ale AntiJoinBot działa na innym VPS niż na rzeczywistym serwerze.Przekierowywanie adresu IP w Javie

Jest to najlepszy wykres mogę sytuacji (to nie jest tak dobra):

(serwer non-minecraft) Connection -> Sprawdź Proxy -> Przekierowanie do serwera -> Minecraft

Jedynym problemem jest to, że muszę mieć możliwość przekierowania adresu IP i zamknięcia połączenia, aby prawdziwy adres IP odtwarzacza był połączony z serwerem. Jeśli połączenie nie może zostać zamknięte, spowodowałoby to rzeczywiste problemy z powodu niektórych uruchomionych wtyczek.

Jeśli masz rozwiązanie lub lepszy sposób na zrobienie tego, pomóż mi.

+0

Czy istnieje szczególny powód, dla którego nie można po prostu umieścić obu elementów na tym samym serwerze i przechwycić cały ruch serwera za pomocą sprawdzania proxy? – MathSquared

+0

Tak, bot dołączenia nadal będzie korzystać z zasobów serwera. Próbuję tego uniknąć. – Enosis

+0

Jeśli interfejs serwera minecraft jest czystym HTTP, prawdopodobnie unikniesz przekierowania HTTP pod warunkiem, że klient używa standardowych bibliotek HTTP, które może go obsługiwać. Jeśli klient/serwer nie używa protokołu HTTP, ale ma niestandardowy protokół binarny (wydaje się prawdopodobne), wówczas nie można przekierować bez modu do klienta. Możesz jednak wykonać pełne proxy. Jeśli znajdziesz sposób na przekierowanie, w jaki sposób powstrzymasz złośliwych klientów przed przechowywaniem przekierowanego adresu IP i całkowicie ominięciem serwera? – Pace

Odpowiedz

3

Przekierowanie połączeń wzdłuż żądanych linii wymaga wsparcia z protokołu (aplikacji). Protokół TCP/IP go nie obsługuje. AFAIK, SOCKS też tego nie obsługuje. Jeśli protokół aplikacji Minecraft (i domyślając się, że klienci i serwery Minecraft) nie obsługują przekierowania, nie masz szczęścia.

(FWIW - tak działa przekierowanie HTTP, HTTP ma "element protokołu", który pozwala serwerowi nakazać klientowi przekierowanie i gdzie przekierować do. Klient następnie ponownie wysyła oryginalne żądanie na nowy adres.)

Ale to nie znaczy, że nie można poradzić sobie ze szkodnikami. Oznacza to po prostu, że podejście przekierowania nie jest opłacalne. Zamiast tego spróbuj niestandardowego serwera proxy lub filtru IP/readresatora.

0

Próbujesz zapisać zasoby serwera na koszt zwiększenia ruchu. Nie jestem pewien, z odpowiedzią, ale może być patrząc na koncepcję LBS (Load Balancing Server), możesz znaleźć odpowiedź. LBS jest przez nas zdefiniowany i kontrolowany, dzięki czemu można zarządzać zasobami dwóch serwerów przy użyciu jednego serwera równoważenia obciążenia.

Powiązane problemy