zoukankan      html  css  js  c++  java
  • tcpproxy.js 报错:getaddrinfo ENOTFOUND localhost和解决方法

    报错情况

    报错出现的情况:我的项目之前在本地执行npm run dev是可以成功运行的。在一次断网的情况下,执行了npm run dev,第一次出现报错,这时才意识到是断网了。等有网了重新执行npm run dev,报错依然出现。
    报错信息:

    Error: getaddrinfo ENOTFOUND localhost
        at errnoException (dns.js:50:10)
        at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:95:26)

    具体截图:
    clipboard.png

    查了资料,大部分人简单的说是要修改hosts配置。但是对我这种弱鸡来说,我想知道,为什么会报错,而且要怎么修改host文件。。。

    OK言归正传,这篇文章提到,根据报错内容,推断是localhost的问题。有可能是localhost没有绑定127.0.0.1,我就当是localhost没有绑定127.0.0.1吧,由于我在这方面的知识储备为0,所以我还是不太明白报错原因。

    解决方法

    1.打开hosts文件

    终端执行:**sudo vim /etc/hosts**,打开hosts文件。

    2.编辑hosts文件

    按 **i** 进入编辑模式,如果你的hosts文件最后一行有 **0.0.0.0 account.xxx.xxx**,在这一行的上一行输入 **127.0.0.1 localhost**;没有,则在最后一行输入**127.0.0.1 localhost**。

    3.保存hosts文件

    按 **esc** 退出编辑模式,最后输入**:wq**,保存并退出(:(英文冒号)表示进入了底线命令模式,在底线命令模式下,q表示退出程序,w表示保存文件,所以:wq表示保存并退出,这里涉及到vim的简单使用,找度娘了解更多~)。

    插曲

    我在第一次打开hosts文件的时候,看到hosts文件已经有127.0.0.1 localhost,就以为localhost已经绑定127.0.0.1,闹了个乌龙。实际上 # 号那一行代表的是注释,好羞耻~
    clipboard.png

    var net = require("net");
    
    process.on("uncaughtException", function(error) {
      console.error(error);
    });
    
    if (process.argv.length != 5) {
      console.log("usage: %s <localport> <remotehost> <remoteport>", process.argv[1]);
      process.exit();
    }
    
    var localport = process.argv[2];
    var remotehost = process.argv[3];
    var remoteport = process.argv[4];
    
    var server = net.createServer(function (localsocket) {
      var remotesocket = new net.Socket();
    
      remotesocket.connect(remoteport, remotehost);
    
      localsocket.on('connect', function (data) {
        console.log(">>> connection #%d from %s:%d",
          server.connections,
          localsocket.remoteAddress,
          localsocket.remotePort
        );
      });
    
      localsocket.on('data', function (data) {
        var flushed = remotesocket.write(data);
        if (!flushed) {
          localsocket.pause();
        }
      });
    
      remotesocket.on('data', function(data) {
        var flushed = localsocket.write(data);
        if (!flushed) {
          remotesocket.pause();
        }
      });
    
      localsocket.on('drain', function() {
        remotesocket.resume();
      });
    
      remotesocket.on('drain', function() {
        localsocket.resume();
      });
    
      localsocket.on('close', function(had_error) {
        console.log("%s:%d - closing remote",
          localsocket.remoteAddress,
          localsocket.remotePort
        );
        remotesocket.end();
      });
    
      remotesocket.on('close', function(had_error) {
        console.log("%s:%d - closing local",
          localsocket.remoteAddress,
          localsocket.remotePort
        );
        localsocket.end();
      });
    
    });
    
    server.listen(localport);
    
    console.log("redirecting connections from 127.0.0.1:%d to %s:%d", localport, remotehost, remoteport);
    

      

     
  • 相关阅读:
    IT黑马-面向对象
    软路由系统记录
    网工笔记
    肖哥HCNP-正式篇笔记
    肖哥HCNP-学前准备篇笔记
    致良知简短笔记
    黑马班笔记
    正则表达示 for Python3
    小甲鱼Python3笔记
    linux命令-jdk及mysql安装操作
  • 原文地址:https://www.cnblogs.com/kissfu/p/12447223.html
Copyright © 2011-2022 走看看