私のJavaサーバーは現在、何千もの異なるIPによってDDoSされています。それに対抗するために、私は専用サーバーのファイアウォールを介してIPをブロックしてきました. しかし、ますます多くの人がやって来ます。この攻撃によりログイン サーバーがフラッディングされ、プレイヤーがログインできなくなります。
私のタイプの Java アプリケーションのフォーラムなど、他の場所で質問しましたが、ほとんど回答が得られませんでした。しかし、彼らはそれが DDoS の一種であると私に言いました。別のユーザーも私にこれを紹介しましたが、これがうまくいくとは思いません. http://www.java2s.com/Open-Source/Java-Document/Net/mina-2.0.0-M1/org/apache/mina/filter/firewall/ConnectionThrottleFilter.java.htm
どうやら私のログイン サーバーでの DoS のようですが、何か手掛かりはありますか? 以下に、ログイン サーバーのメイン フレームワークを示します。
try {
shutdownClientHandler = false;
clientListener = new java.net.ServerSocket(serverlistenerPort, 1, null);
misc.println("Login server is now online!");
while (true) {
try {
java.net.Socket s = clientListener.accept();
s.setTcpNoDelay(true);
String connectingHost = s.getInetAddress().getHostName();
if (true) {
if (checkLog("flooders", connectingHost)) {
//misc.println("Flooder Detected, closing connection.");
s.close(); // Closes the connection immediately.
} else {
connections.add(connectingHost);
if (checkHost(connectingHost)) {
misc.println("Connection from "+connectingHost+":"+s.getPort());
try {
playerHandler.newPlayerClient(s, connectingHost);
} catch (Exception E) {misc.println("Login Server crash detected. Protecting...");
s.close();
}
} else {
misc.println("ClientHandler: Rejected "+connectingHost+":"+s.getPort());
s.close();
}
}
} else {
misc.println("ClientHandler: Rejected "+connectingHost+":"+s.getPort());
s.close();
}
Thread.sleep(30;
} catch (Exception e) {
logError(e.getMessage());
}
}
} catch (java.io.IOException ioe) {
if (!shutdownClientHandler) {
misc.println("World is already online!");
} else {
misc.println("ClientHandler was shut down.");
}
}