📅  最后修改于: 2023-12-03 15:02:44.171000             🧑  作者: Mango
在Linux系统中,有时需要打开一个端口以便让其他计算机连接到该服务器。本文将介绍如何通过命令行打开端口列表,并且使用TypeScript编写。
使用以下命令检查当前开放的端口列表:
$ netstat -tuln
返回如下:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
这个列表列出了当前所有处于活动状态的网络连接和监听端口。
打开端口。
假设要打开端口号8000以便可以接收TCP连接。使用以下命令:
$ sudo ufw allow 8000/tcp
输入密码并确认操作,然后再次检查端口列表:
$ netstat -tuln
返回如下:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::8000 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
端口8000现在处于监听状态,可以接收来自其他计算机的TCP连接了。
你可以使用TypeScript编写脚本来打开端口,以下是一个简单的TypeScript示例:
import { exec } from "child_process";
const openPort = (port: number, protocol: string) => {
const command = `sudo ufw allow ${port}/${protocol}`;
exec(command, (error, stdout, stderr) => {
if (error) {
console.error(`执行命令时发生错误: ${error.message}`);
return;
}
if (stderr) {
console.error(`错误消息: ${stderr}`);
return;
}
console.log(`打开端口 ${port}/${protocol} 成功!`);
});
};
const port = 8000;
const protocol = "tcp";
openPort(port, protocol);
这份代码打开了TCP端口号8000。
现在你可以使用 npm
来安装 child_process
模块并运行该脚本。
$ npm install child_process
$ tsc your-script.ts
$ node your-script.js
打开端口 8000/tcp 成功!
这份代码使用了 child_process
模块执行了一个系统命令,将要打开的端口添加到防火墙规则中。
本文介绍了如何使用Linux命令行打开一个端口,以及如何使用TypeScript编写这样一个脚本。希望对你有所帮助!