📌  相关文章
📜  如何检查服务器上的监听端口 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:24:50.919000             🧑  作者: Mango

如何检查服务器上的监听端口 - TypeScript

在进行服务器运维和安全性检查时,检查服务器上的监听端口是必要的一步。这可以帮助管理员识别哪些服务在服务器上运行,并确保它们只开放了必要的端口。下面是几种在 TypeScript 中检查服务器上监听端口的方法。

1. 使用 net 模块

可以使用 Node.js 的 net 模块来获取服务器上开放的端口。以下是一个 TypeScript 示例:

import net from 'net';

const port = 80;

const server = net.createServer();

server.once('listening', () => {
  console.log(`Port ${port} is open`);
  server.close();
});

server.once('error', (err: Error) => {
  console.log(`Port ${port} is closed`);
});

server.listen(port);

这个示例会监听 80 端口,并在端口成功开放时打印 Port 80 is open 。如果端口关闭或发生错误,则会打印 Port 80 is closed

2. 使用 tcp-port-used 模块

可以使用 tcp-port-used 模块来检查服务器上的端口是否监听。以下是 TypeScript 示例:

import tcpPortUsed from 'tcp-port-used';

const port = 80;

tcpPortUsed.check(port, '127.0.0.1')
  .then((inUse: boolean) => {
    if (inUse) {
      console.log(`Port ${port} is open`);
    } else {
      console.log(`Port ${port} is closed`);
    }
  }, (err: Error) => {
    console.error(`Error checking port ${port}: ${err}`);
  });

这个示例会检查 127.0.0.1 的 80 端口是否监听。如果端口开放,则打印 Port 80 is open 。如果端口关闭或发生错误,则会打印 Port 80 is closedError checking port 80: [错误消息]

3. 使用外部工具

除了使用 Node.js 库之外,还可以使用外部工具来检查端口。例如,可以使用 nmap 工具检查服务器上的端口。以下是一个 TypeScript 示例:

import { exec } from 'child_process';

const command = `nmap -p 80 127.0.0.1`;

exec(command, (error, stdout) => {
  if (error) {
    console.error(`Error checking port: ${error}`);
    return;
  }
  if (stdout.includes('open')) {
    console.log(`Port 80 is open`);
  } else {
    console.log(`Port 80 is closed`);
  }
});

这个示例会执行 nmap -p 80 127.0.0.1 命令并在标准输出中搜索 'open'。如果端口开放,则打印 Port 80 is open 。如果端口关闭或发生错误,则会打印 Port 80 is closedError checking port: [错误消息]

通过以上三种方法,管理员可以方便地检查服务器上的监听端口,以保证服务器的安全性和稳定性。