📌  相关文章
📜  检查 runnong 端口 ubuntu - TypeScript (1)

📅  最后修改于: 2023-12-03 14:55:42.627000             🧑  作者: Mango

检查 running 端口 Ubuntu - TypeScript

在 Ubuntu 系统中,我们需要确认某个应用程序是否正在监听并运行在某个特定的端口上。本文将介绍如何通过命令行检查 Ubuntu 系统上正在运行的端口。此外,我们将展示如何使用 TypeScript 实现检查端口的功能。

检查 running 端口命令

Ubuntu 操作系统提供了 netstat 命令行工具,用于查看网络连接和路由表信息。我们可以使用该命令来获取当前正在运行的端口列表。

首先我们需要安装 net-tools

sudo apt-get update
sudo apt-get install net-tools

然后,我们可以使用以下命令查看正在运行的端口:

sudo netstat -tulpn

该命令将会列出系统中所有正在监听的端口及其运行程序的进程 ID。其中 -t 参数表示只显示 TCP 连接,-u 参数表示只显示 UDP 连接,-l 参数表示只显示监听状态的连接,-p 参数表示显示连接对应的进程名称和进程 ID,-n 参数表示使用数字格式显示 IP 地址和端口号。

此外,如果你只想查看某个特定端口的信息,可以使用以下命令:

sudo netstat -tulpn |grep :{port_number}

grep 命令可以用于查找代表特定端口号的行。替换 {port_number} 为所需的端口号即可。

TypeScript 实现

下面是如何使用 TypeScript 实现端口检查功能的代码:

import * as childProcess from "child_process";
import * as util from "util";

const exec = util.promisify(childProcess.exec);

async function isPortActive(port: number): Promise<boolean> {
  try {
    const { stdout, stderr } = await exec(`sudo netstat -tulpn |grep :${port}`);
    return !!stdout;
  } catch (err) {
    console.error(err);
    return false;
  }
}

async function main() {
  const port = 8080;
  const isActive = await isPortActive(port);
  console.log(`Port ${port} is${isActive ? "" : " not"} active.`);
}

main();

在这段代码中,我们使用 childProcess 模块和 util.promisify 方法来执行 netstat 命令。然后,我们创建了一个 isPortActive 函数,它使用我们之前提到的 grep 命令来查找指定端口是否处于活动状态。最后,我们使用 main 函数来测试 isPortActive 函数是否正常工作,并将结果输出到控制台。

Markdown 格式返回的代码片段
# 检查 running 端口 Ubuntu - TypeScript

在 Ubuntu 系统中,我们需要确认某个应用程序是否正在监听并运行在某个特定的端口上。本文将介绍如何通过命令行检查 Ubuntu 系统上正在运行的端口。此外,我们将展示如何使用 TypeScript 实现检查端口的功能。

## 检查 running 端口命令

Ubuntu 操作系统提供了 `netstat` 命令行工具,用于查看网络连接和路由表信息。我们可以使用该命令来获取当前正在运行的端口列表。

首先我们需要安装 `net-tools`:

```bash
sudo apt-get update
sudo apt-get install net-tools

然后,我们可以使用以下命令查看正在运行的端口:

sudo netstat -tulpn

该命令将会列出系统中所有正在监听的端口及其运行程序的进程 ID。其中 -t 参数表示只显示 TCP 连接,-u 参数表示只显示 UDP 连接,-l 参数表示只显示监听状态的连接,-p 参数表示显示连接对应的进程名称和进程 ID,-n 参数表示使用数字格式显示 IP 地址和端口号。

此外,如果你只想查看某个特定端口的信息,可以使用以下命令:

sudo netstat -tulpn |grep :{port_number}

grep 命令可以用于查找代表特定端口号的行。替换 {port_number} 为所需的端口号即可。

TypeScript 实现

下面是如何使用 TypeScript 实现端口检查功能的代码:

import * as childProcess from "child_process";
import * as util from "util";

const exec = util.promisify(childProcess.exec);

async function isPortActive(port: number): Promise<boolean> {
  try {
    const { stdout, stderr } = await exec(`sudo netstat -tulpn |grep :${port}`);
    return !!stdout;
  } catch (err) {
    console.error(err);
    return false;
  }
}

async function main() {
  const port = 8080;
  const isActive = await isPortActive(port);
  console.log(`Port ${port} is${isActive ? "" : " not"} active.`);
}

main();

在这段代码中,我们使用 childProcess 模块和 util.promisify 方法来执行 netstat 命令。然后,我们创建了一个 isPortActive 函数,它使用我们之前提到的 grep 命令来查找指定端口是否处于活动状态。最后,我们使用 main 函数来测试 isPortActive 函数是否正常工作,并将结果输出到控制台。