Sim*_*mon 5 networking port-forwarding
我已经阅读了一个与此非常相似的线程,但我仍然不明白。
任何人都可以解释众所周知的、注册的和动态的端口之间的区别。
到目前为止我所知道的:
众所周知的端口用于侦听并转发端口以将流量发送到特定的 ip
动态端口是客户端,仅用于活动会话。一旦到期,端口将再次可用。这些仅用于使流量返回到正确的用户。
注册 - 完全不明白
知名港口
动态端口
注册端口
这里很好地解释了端口的用途,jcrawford 的补充
就 TCP 和 UDP 协议而言,端口都是相同的。它们中的任何一个都可以用于服务/守护程序来侦听,它们中的任何一个都可以在 NAT(又名 NAPT,PAT)网关中进行端口转发,并且它们中的任何一个都可以用于客户端以从中发起连接。
历史上,许多众所周知的协议,例如 HTTP (80),都被分配了低于 1024 的默认端口,因此许多操作系统,包括大多数 Unix 和类 Unix 操作系统,不允许您在这些端口上打开侦听器,除非您有管理员/root 凭据。这是假设您的 Unix 机器实际上是一个多用户系统,并且 J. Random User 不应该能够在机器上运行 HTTP 服务器,并使其看起来好像该用户的 HTTP 服务器是官方的 HTTP 服务器通过在端口 80 上运行该框。与 SSH (22)、Telnet (23)、SMTP (25)、FTP (21) 等相同。
1024 和 49152 之间是一堆端口,这些端口已被指定为许多不太知名的默认端口,尤其是公司/专有协议。操作系统尽量不使用这些端口被认为是最佳实践。
当客户端或服务器进程请求侦听端口,或请求启动传出 TCP 连接或 UDP 流,并且未指定特定端口时,内核中的 TCP 和 UDP 网络代码(“网络堆栈”)任意分配一个当前未使用的端口。为了不妨碍以后可能想要使用专有“注册”端口的服务,网络堆栈通常会尝试避免为此使用众所周知的或注册的端口,而是将自己限制在临时/ 49152 和 65535 之间的动态端口。
| 归档时间: |
|
| 查看次数: |
27835 次 |
| 最近记录: |