首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保留的TCP/IP端口

问保留的TCP/IP端口
EN

Stack Overflow用户
提问于 2015-03-07 03:55:50
回答 3查看 2.4K关注 0票数 2

保留的TCP/IP端口是否要求程序正在运行并绑定到该端口?如果没有这样的程序正在运行或存在,其他程序可以使用此端口吗?例如,在Linux上,端口7是为回应服务器保留的。我假设有一些程序正在运行,并且绑定到机器的端口7。该程序基本上回显输入。如果这个程序被停止,端口7会被释放吗?

如果我编写自己的回显服务器并将其绑定到其他端口,那么一旦我的自定义回显服务器程序被终止,这个端口不会被释放吗?

保留端口也会发生同样的情况吗?

此外,如果所有这些程序都在保留端口上运行,那么即使它们被阻止侦听连接,它们也不会消耗系统资源吗?这些程序一直都在运行吗?

EN

回答 3

Stack Overflow用户

发布于 2015-03-07 06:36:09

保留的TCP/IP端口是否要求程序正在运行并绑定到该端口?

不是的。

如果没有这样的程序正在运行或存在,其他程序可以使用此端口吗?

没有什么能阻止你,但是它仍然是保留的,如果你滥用了为其他东西保留的端口,用户有权向你投诉。

例如,在Linux上,端口7是为回应服务器保留的。我假设有一些程序正在运行,并且绑定到机器的端口7。该程序基本上回显输入。如果这个程序被停止,端口7会被释放吗?

是。

如果我编写自己的回声服务器并将其绑定到其他端口,那么一旦我的自定义回声服务器程序被终止,这个端口不会被释放吗?

是。

保留端口也会发生同样的事情吗?

是的,当然。

另外,如果所有这些程序都在保留的端口上运行,那么即使它们被阻止侦听连接,它们也不会消耗系统资源吗?

是。

这些程序一直都在运行吗?

它们要么在运行,要么不在运行。您同时询问了这两种情况。如果你的意思是“执行”,即消耗CPU,答案是否定的,它们被阻塞,等待连接,而没有连接。

票数 2
EN

Stack Overflow用户

发布于 2015-03-07 04:02:04

编辑保留端口的想法是,您编写的任何自定义软件都应该注意避免绑定到它们,以避免干扰已建立的服务。此外,非root用户无论如何都不能绑定1024以下的任何端口,其中许多端口已注册到IANA (也称为保留端口)。

不需要将特定的进程绑定到任何端口。端口只是一种系统资源。通常,主inetd在系统引导序列的早期启动,绑定到一些编号较低的端口,并处理诸如echo本身之类的琐碎服务。这些算法非常简单,在实践中很少使用,因此消耗的资源非常少。这就是为什么您找不到单独的“回显服务器”进程的原因。如果您阅读了inetd.conf手册页:

http://www.freebsd.org/cgi/man.cgi?query=inetd.conf&sektion=5&manpath=FreeBSD%209.2-RELEASE

inetd实用程序

还通过使用其内部的例程在内部提供了其他一些“琐碎”的服务。这些服务是'echo‘、'discard’、'chargen‘(字符生成器)、'daytime’(人类可读时间)和' time‘(机器可读时间,以自1900年1月1日午夜以来的秒数的形式)。

票数 0
EN

Stack Overflow用户

发布于 2015-03-07 04:13:41

端口1-65535可用,1-1023范围内的端口是特权端口,用于标准应用。

并且您的系统中也存在临时端口范围,可以按如下方式找到:

代码语言:javascript
复制
sysctl -A | grep ip_local_port_range 

Epeheral端口范围可用于所有客户端套接字。

当有服务器时,客户端通信大多数时候都是使用套接字进行通信的。套接字只是一对IP地址和一个端口号。通常与配置一起引用的所有端口都是服务器端口配置,而客户端端口是从后端端口范围中动态选择的。对于epeheral端口,系统可能不会释放该端口,直到该范围耗尽。

您可以使用以下命令检查端口可用性:

代码语言:javascript
复制
netstat -a | grep <port number>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28906613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档