【问题标题】:NodeJS TCP Port crashesNodeJS TCP 端口崩溃
【发布时间】:2018-12-08 21:39:14
【问题描述】:

我正在使用节点 js 在我的服务器中开发套接字应用程序。我只是在听 9000 端口。我正在检查客户端发送到此 tcp 端口的数据,如果客户端发出 http 请求,我会从服务器中踢出客户端。因为互联网上的一些机器人会这样做,而我不希望它们出现在我的系统中。出于测试目的,我尝试将该端口与浏览器连接,连续按住F5刷新按钮,然后应用程序立即崩溃。我正在通过这种方式在我的端口中模拟 DDOS 攻击。错误信息如下:

events.js:183
  throw er; // Unhandled 'error' event
  ^

Error: read ECONNRESET
at _errnoException (util.js:992:11)
at TCP.onread (net.js:618:25)

这是我的基本 TCP 侦听器代码

var net = require("net");
var server = net.createServer();

server.on("error", err =>
{
   console.log("error handled, error is : %s",err);
});

server.on("connection",function(socket)
{
    var remoteAddress = socket.remoteAddress;
    console.log("new client connection %s",remoteAddress);

socket.end();
});

server.listen(9000, function()
{
    console.log("I am listening.");
});

如何从 HTTP 连接和互联网机器人中保存 TCP 端口?

【问题讨论】:

    标签: node.js sockets tcp ddos


    【解决方案1】:

    把这个放在socket.end()下面:

    socket.on('error', function(error) {
        console.log('Socket got problems: ', error.message);
    });
    

    完整代码:

    var net = require("net");
    var server = net.createServer();
    
    server.on("error", err =>
    {
       console.log("error handled, error is : %s",err);
    });
    
    server.on("connection",function(socket)
    {
        var remoteAddress = socket.remoteAddress;
        console.log("new client connection %s",remoteAddress);
    
        socket.end();
        socket.on('error', function(error) {
         console.log('Socket got problems: ', error.message);
        });
    });
    
    server.listen(9000, function()
    {
        console.log("I am listening.");
    });
    

    【讨论】:

    • 谢谢!你是救生员。像魅力一样工作。
    猜你喜欢
    • 1970-01-01
    • 2015-03-18
    • 2015-08-15
    • 2012-11-22
    • 2020-08-31
    • 2016-06-12
    • 2011-06-12
    • 2021-02-09
    • 2011-10-19
    相关资源
    最近更新 更多