各位大佬, Nodejs 如何连接远程服务器?

发布于 1周前 作者 sinazl 来自 nodejs/Nestjs

各位大佬, Nodejs 如何连接远程服务器?

想用 nodejs 连接远程服务器,然后在远程服务器上执行一些命令。。

有没有好用的插件求推荐

6 回复

感谢!!!

我没用过 node + ssh 关键字搜索的。

ansiable 这个可以干多台

在Node.js中连接远程服务器通常依赖于HTTP请求库或者SSH库,具体选择取决于你与远程服务器交互的方式。以下是两种常见的方法:

方法一:使用HTTP请求库(如axios

如果你的需求是通过HTTP/HTTPS协议与远程服务器通信,可以使用axios库。首先,你需要安装axios

npm install axios

然后,你可以使用以下代码来发送一个GET请求:

const axios = require('axios');

axios.get('http://example.com/api/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error('Error fetching data:', error);
  });

方法二:使用SSH库(如ssh2

如果你需要通过SSH连接到远程服务器并执行命令,可以使用ssh2库。首先,安装ssh2

npm install ssh2

然后,你可以使用以下代码来连接到远程服务器并执行命令:

const { Client } = require('ssh2');

const conn = new Client();
conn.on('ready', () => {
  console.log('Client :: ready');
  conn.exec('uptime', (err, stream) => {
    if (err) throw err;
    stream.on('close', (code, signal) => {
      console.log('Stream :: close :: code: ' + code + ', signal: ' + signal);
      conn.end();
    }).on('data', (data) => {
      console.log('STDOUT: ' + data);
    }).stderr.on('data', (data) => {
      console.log('STDERR: ' + data);
    });
  });
}).connect({
  host: 'example.com',
  port: 22,
  username: 'your-username',
  password: 'your-password'
});

选择哪种方法取决于你的具体需求。

回到顶部