使用节点js在telnet服务器上通过子进程运行命令

时间:2017-10-25 02:55:27

标签: node.js sockets

我的要求是从客户端连接到telnet服务器,并使用nodejs在服务器计算机上运行命令。

以下是我正在使用的代码:

const net = require("net");
const cp = require("child_process");

net.connect({host: 192.168.192.136, port:23}, function() {
    console.log("connected");
    cp.exec('pwd', (err, stdout, stderr) => {
      if (err) {
        console.error(err);
        return;
      }
      console.log(stdout);
    });
});

有了这个,我可以连接到服务器但是当我使用cp.exec运行命令时,它在本地机器上运行而不是在连接的服务器上。

1)连接后如何在服务器上运行该命令?

2)为什么在没有用户名或密码的情况下与服务器建立连接。虽然当我尝试通过终端连接到它时,它会要求输入用户名和密码。

我也尝试过来自npmjs的一些节点js模块,但没有成功。

任何形式的帮助将不胜感激。感谢。

3 个答案:

答案 0 :(得分:0)

使用remote-exce模块执行相同操作。 这里链接到文档: - https://www.npmjs.com/package/remote-exec

答案 1 :(得分:0)

然后使用telnet客户端模块 链接到文档 https://www.npmjs.com/package/telnet-client

答案 2 :(得分:0)

在Nodejs v15上,我认为您不需要exec。我设法通过以下方法建立telnet连接:

const net = require("net");

/*
*    establish new client connection to the server
*/
let client = net.connect({
    host: "192.168.192.136", 
    port: 23,
}, ()=> {
    console.log("connected");
    client.write("TELNET COMMAND HERE", ()=>{
        console.log("Command sent!")
    })
});

教程参考:https://nodejs.org/api/net.html#net_net_createconnection_options_connectlistener