Answers:
Linux支持网络名称空间。您可以使不同的进程看到不同的网络接口集。这是一个广泛的话题。
如果希望仅在特定用户内在计算机上访问的通信端口,则可以使用传统的Unix套接字,该套接字在文件系统空间中具有名称并具有权限。Linux授予对AF_UNIX套接字的读/写权限。
如果一台计算机在端口5080上侦听来自其他计算机的外部TCP或UDP请求,则我们再也不能真正谈论用户权限。您必须在超过5080的协议中建立安全性:身份验证,加密,完整性/防欺骗/拒绝访问。
我认为原因之一是大多数用户需要能够使用临时端口连接到其他服务器,而不必一定是root用户。
一个TCP / IPv4连接由两个端点组成,每个端点由一个IP地址和一个端口号组成。因此,当客户端用户连接到服务器计算机时,可以将建立的连接视为(服务器IP,服务器端口,客户端IP,客户端端口)的4元组。通常,这四个中的三个是众所周知的-客户端计算机使用其自己的IP地址,并且在连接到远程服务时,需要服务器计算机的IP地址和服务端口号。
不能立即看到的是,当建立连接时,该连接的客户端使用端口号。除非客户端程序明确请求特定的端口号,否则使用的端口号是临时端口号。临时端口是由机器的IP堆栈分配的临时端口,并为此从指定的端口范围分配。当连接终止时,临时端口可用于重用,尽管大多数IP堆栈在使用了所有临时端口池之前不会重用该端口号。因此,如果客户端程序重新连接,它将为新连接的另一端分配一个不同的临时端口号。