各位大佬, Nodejs 如何连接远程服务器?
各位大佬, Nodejs 如何连接远程服务器?
想用 nodejs 连接远程服务器,然后在远程服务器上执行一些命令。。
有没有好用的插件求推荐
6 回复
感谢!!!
我没用过 node + ssh 关键字搜索的。
ansiable 这个可以干多台
fix typo, ansible
在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'
});
选择哪种方法取决于你的具体需求。