我们可以将知名端口用于自己的目的吗?

我们可以将知名端口用于自己的目的吗?

我编写了一个 shell 脚本来使用 nmap 扫描系统端口。

我正在寻找行式打印机守护程序(打印服务)使用的某些端口号(例如 515),如果存在,则意味着我可以说它是一台打印机,因为打印机只有这个守护程序。

我不知道这个端口是否可以被其他进程使用。如果可以,请告诉我我们自己的进程是否可以使用该知名端口。

如果是,那么我不能说它是一台打印机,因为端口用户并不总是一台打印机。

谢谢

答案1

对于任何端口,端口号的官方用途不一定是实际运行的端口号。
没有 100% 的保证。总有可能有人决定在该端口上放置其他东西。在某些情况下,端口的“官方”用途已经表明存在不止一种可能性。

这就是为什么 nmap 有 -sV 选项:它会尝试探测端口上真正运行的内容。

话虽如此:有人滥用其中一个较常见的端口(例如 515)用于非正常用途的可能性非常小。

这是一个极端的情况,我通常不会理会 nmap -sV,除非我怀疑有人故意捣乱。

答案2

只要没有其他程序在该端口上运行,您就可以使用该端口。此外,在启动进程时,您需要更高的权限才能声明该端口。

答案3

我不太清楚你在问什么:

你是在问“保留”端口是否只能由相关应用程序使用,这样如果你看到端口 25 正在使用,那么无论端口 25 正在运行什么必须是 SMTP 服务器吗?因为这是 SMTP 端口?如果是,那么答案是“否”。绑定到端口本质上是“先到先得”。

或者

您是在问是否可以将通常由一个进程使用的端口用于另一个进程吗?如果可以,答案是“可以” - 请参阅我的答案的第一部分。您只需停止其他进程获取该端口,然后您就可以自己绑定到它。

相关内容