2013-04-02 40 views
12

Trong vài tuần qua, tôi đã lùng sục Internet, tâm trí của các lập trình viên máy tính và chỉ một vài người ngẫu nhiên trong tình huống mà tôi đang tìm cách vượt qua. Về cơ bản, những gì tôi đang cố gắng để làm điều đó viết một plugin "AntiJoinBot" (nếu bạn sẽ) cho trò chơi phổ biến Minecraft. Điều này sẽ giống như tất cả những người khác trong sự tôn trọng rằng nó chặn IP dựa trên nếu họ đang sử dụng một proxy hay không, nhưng AntiJoinBot này đang chạy trên một VPS khác với máy chủ thực tế.Chuyển hướng một địa chỉ IP trong Java

Đây là đồ thị tốt nhất mà tôi có thể làm cho tình hình (nó không phải là tốt):

(phi minecraft server) Kết nối -> kiểm tra Proxy -> Chuyển tới máy chủ -> Minecraft

Vấn đề duy nhất là, tôi cần có khả năng chuyển hướng IP và đóng kết nối để IP thực của người chơi là IP sẽ kết nối với máy chủ. Nếu kết nối không thể được đóng lại, nó sẽ gây ra vấn đề thực sự do một số plugin chúng tôi đang chạy.

Nếu bạn có giải pháp hoặc cách tốt hơn để thực hiện việc này, hãy giúp tôi.

+0

Có lý do cụ thể nào khiến bạn không thể đặt cả hai phần tử trên cùng một máy chủ và chặn tất cả lưu lượng truy cập máy chủ bằng kiểm tra proxy không? – MathSquared

+0

Có, bot tham gia vẫn sẽ sử dụng tài nguyên của máy chủ. Tôi đang cố tránh điều đó. – Enosis

+0

Nếu giao diện máy chủ minecraft là HTTP tinh khiết, bạn có thể có thể thoát khỏi với một chuyển hướng HTTP được cung cấp máy khách đang sử dụng các thư viện HTTP tiêu chuẩn mà nó có thể hỗ trợ nó. Nếu máy khách/máy chủ không sử dụng HTTP nhưng một số giao thức nhị phân tùy chỉnh (có vẻ như có khả năng) thì bạn không thể thực hiện chuyển hướng mà không có mod cho máy khách. Bạn có thể làm một proxy đầy đủ mặc dù. Nếu bạn tìm cách để thực hiện chuyển hướng, làm cách nào để ngăn chặn các khách hàng độc hại chỉ đơn giản là lưu trữ IP được chuyển hướng và bỏ qua máy chủ của bạn hoàn toàn? – Pace

Trả lời

3

Chuyển hướng kết nối dọc theo các dòng mà bạn muốn yêu cầu hỗ trợ từ giao thức (ứng dụng). TCP/IP không hỗ trợ nó. AFAIK, SOCKS cũng không hỗ trợ nó. Trừ khi giao thức ứng dụng Minecraft (và bằng cách ngụ ý, máy khách và máy chủ Minecraft) bao gồm hỗ trợ chuyển hướng, bạn sẽ không may mắn.

(FWIW - đó là cách chuyển hướng HTTP hoạt động. HTTP có "phần tử giao thức" cho phép máy chủ thông báo cho khách hàng chuyển hướng và nơi chuyển hướng đến. Khách hàng sẽ gửi lại yêu cầu ban đầu tới địa chỉ mới).

Nhưng điều đó không có nghĩa là bạn không thể đối phó với sâu bệnh. Nó chỉ có nghĩa là cách tiếp cận chuyển hướng là không khả thi. Thay vào đó, hãy thử proxy tùy chỉnh hoặc bộ lọc IP/redirector.

0

Bạn đang cố lưu tài nguyên của máy chủ vào chi phí tăng lưu lượng truy cập. Tôi không chắc chắn với câu trả lời nhưng có thể bằng cách nhìn vào khái niệm LBS (Load Balancing Server), bạn có thể tìm thấy câu trả lời. LBS hoàn toàn được xác định và kiểm soát bởi chúng tôi để bạn có thể quản lý tài nguyên của hai máy chủ bằng cách sử dụng một máy chủ cân bằng tải.

Các vấn đề liên quan