首页/网络/常用端口速查/动态端口范围:Linux 与 Windows 差异

动态端口范围:Linux 与 Windows 差异

临时(动态)端口从哪里开始?IANA 说 49152,Linux 默认从 32768 起、Windows 默认给 49152-65535:排障前先查真实范围。

常用端口速查网络更新于 2026-10-13

动态端口范围怎么看

临时端口(ephemeral port)是操作系统在发起对外连接时自动分配的源端口,用完即回收。IANA 建议的动态范围是 49152 到 65535,但这只是建议,Linux 的实际范围由内核参数决定,多数发行版默认是 32768 到 60999。这意味着把 49152 以下一律当成服务端口来写策略,在 Linux 客户端上会直接拦错流量。

基本信息

概念临时端口,也称动态端口或短命端口
IANA 建议范围49152 到 65535
Linux 默认32768 到 60999(由内核参数决定)
Windows 默认49152 起,共 16384 个
影响面出站连接的源端口、NAT 与连接数上限

典型使用场景

  • 编写防火墙规则:确定哪些端口该按服务处理、哪些必须放行
  • 排查连接失败:出站连接数量受限时判断是否与端口范围有关
  • 容量规划:估算网关或代理能同时承载多少到同一目标的连接
  • 系统加固:核对范围是否被改得过窄或保留了大量端口
  • 跨平台部署:同一份策略要在 Linux 与 Windows 上都成立

三平台核对方式

平台查看方式默认值特征
Linuxsysctl net.ipv4.ip_local_port_range多数发行版 32768 起
Windowsnetsh int ipv4 show dynamicport tcp49152 起 16384 个
macOS 与 BSDsysctl net.inet.ip.portrange.first 等与 Linux 不同,需实测

实际核对

实际核对
# Linux:查看本机实际范围
sysctl net.ipv4.ip_local_port_range
# Linux:查看被保留不参与自动分配的端口
sysctl net.ipv4.ip_local_reserved_ports
# Windows:需在管理员命令行执行
netsh int ipv4 show dynamicport tcp
# macOS 与 BSD
sysctl net.inet.ip.portrange.first net.inet.ip.portrange.last
有的发行版把默认范围调得更宽,也有的会在范围里保留一段给特定服务使用。核对时应以目标主机上的实际参数为准,而不是照抄某篇文档里的默认值。
故意把动态范围改窄会直接降低单机可建立的出站连接数,在高并发代理或压测场景下会提前触发连接失败。调整这类内核参数前,先在测试环境确认业务连接模型。

排障提示

  • 抓包时看到大量高位源端口,属于正常动态分配
  • 策略按 IANA 分界书写在 Linux 上不成立
  • 连接数异常时把范围与保持时间一起评估
  • 变更内核参数后记录数值,便于回溯对比

易错点

  • 按 IANA 分界书写防火墙规则:Linux 客户端从更低的端口起分配,连接被误拦
  • 把动态范围调得过窄:出站连接数下降,高峰期大量连接失败
  • 忽略保留端口设置:以为某段完全空闲,实际已被预留
  • 跨平台照抄同一份参数:不同系统的默认值与行为不同,策略失效

数据来源与参考

  • IANA Service Registry;Linux ip-sysctl 文档;Microsoft netsh 文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌