Windows RPC 端口 135、137、139(及更高端口)的顺序是什么?端口 145 有什么变化?

Windows RPC 端口 135、137、139(及更高端口)的顺序是什么?端口 145 有什么变化?

有人能解释一下每个 Windows RPC 端口的使用时间和频率吗?我理解的“核心”端口是:

  • 端口 135
  • 端口 137
  • 端口 139
  • 135 端口“目录”发布的较高端口

然后我听说端口 145 加入进来是为了“使事情变得更好”与 NBT/TCP 结合,但我不确定这与 Windows 客户端启动 RPC 操作的顺序如何契合。

有人能帮助我一劳永逸地解决我对 RPC 端口的理解吗?

答案1

这篇 TechNet 文章很棒,我建议你收藏它。它列出了各种 Windows 服务使用的端口,非常详尽。

在 Vista/2008 之前的 Windows 版本中,NetBIOS 用于“RPC Locator”服务,该服务管理 RPC 名称服务数据库。但在 Vista/2008 及更高版本中,RPC Locator 服务不再必要或有用。它已不复存在。从现在开始,我将只讨论 Vista/2008+ 上的 MSRPC。

端口 137、138 和 139 用于 NetBIOS,并且不是MSRPC 功能所必需的。

RPC使用的所有端口如下:

RPC EPM                  TCP 135 
RPC over HTTPS           TCP 593 
SMB (for named pipes)    TCP 445
Ephemeral Range, Dynamic *

其他应用程序,如远程桌面网关,将使用 HTTP 代理上的 RPC 并使用端口 443 等。

虽然我上面链接的文章列出了 NetBIOS 端口,但这些都是遗留的并且不是 RPC 所必需的,假设您可以通过其他方式(DNS)获取名称解析,并且假设远程服务本身不依赖于 NetBIOS。

端口 145 是假的。它没有任何用处。无论你在哪里听到它“让事情变得更好”,都是错误的。

基本 MSRPC 使用端口 135 和高编号动态范围。该高编号动态范围是 XP/2003 及以下版本的端口 1024-5000,以及 Vista/2008 及以上版本的端口 49152-65535。您也可以将该端口范围称为临时端口。

如果愿意,您可以定义自定义端口范围,如下所示:

reg add HKLM\SOFTWARE\Microsoft\Rpc\Internet /v Ports /t REG_MULTI_SZ /f /d 8000-9000
reg add HKLM\SOFTWARE\Microsoft\Rpc\Internet /v PortsInternetAvailable /t REG_SZ /f /d Y
reg add HKLM\SOFTWARE\Microsoft\Rpc\Internet /v UseInternetPorts /t REG_SZ /f /d Y

和/或

netsh int ipv4 set dynamicport tcp start=8000 num=1001
netsh int ipv4 set dynamicport udp start=8000 num=1001
netsh int ipv6 set dynamicport tcp start=8000 num=1001
netsh int ipv6 set dynamicport udp start=8000 num=1001

TCP 端口 135 是 MSRPC 端点映射器。您可以匿名绑定到远程计算机上的该端口,并枚举该计算机上可用的所有服务(端点),或者如果您知道要查找的内容,则可以请求特定服务在哪个端口上运行。

让我向您展示一个查询 RPC Enpoint Mapper 的示例:

C:\>PortQry.exe -n 192.168.1.1 -e 135

Querying target system called:

 192.168.1.1

Attempting to resolve IP address to a name...    

IP address resolved to host01.labs.myotherpcisacloud.com

querying...

TCP port 135 (epmap service): LISTENING

Using ephemeral source port
Querying Endpoint Mapper Database...
Server's response:

UUID: d95afe70-a6d5-4259-822e-2c84da1ddb0d
ncacn_ip_tcp:192.168.1.1[49152]

UUID: 12345778-1234-abcd-ef00-0123456789ac
ncacn_np:192.168.1.1[\\pipe\\lsass]

UUID: 12345778-1234-abcd-ef00-0123456789ac
ncacn_ip_tcp:192.168.1.1[49159]

UUID: 6b5bdd1e-528c-422c-af8c-a4079be4fe48 Remote Fw APIs
ncacn_ip_tcp:192.168.1.1[49158]

UUID: 367abb81-9844-35f1-ad32-98f038001003
ncacn_ip_tcp:192.168.1.1[49157]

UUID: 12345678-1234-abcd-ef00-0123456789ab
ncacn_ip_tcp:192.168.1.1[49155]

UUID: 0b6edbfa-4a24-4fc6-8a23-942b1eca65d1
ncacn_ip_tcp:192.168.1.1[49155]

UUID: ae33069b-a2a8-46ee-a235-ddfd339be281
ncacn_ip_tcp:192.168.1.1[49155]

UUID: 4a452661-8290-4b36-8fbe-7f4093a94978
ncacn_ip_tcp:192.168.1.1[49155]

UUID: 76f03f96-cdfd-44fc-a22c-64950a001209
ncacn_ip_tcp:192.168.1.1[49155]

UUID: 7f1343fe-50a9-4927-a778-0c5859517bac DfsDs service
ncacn_np:192.168.1.1[\\PIPE\\wkssvc]

UUID: 3473dd4d-2e88-4006-9cba-22570909dd10 WinHttp Auto-Proxy Service
ncacn_np:192.168.1.1[\\PIPE\\W32TIME_ALT]

UUID: 1ff70682-0a51-30e8-076d-740be8cee98b
ncacn_np:192.168.1.1[\\PIPE\\atsvc]

...

Total endpoints found: 50

==== End of RPC Endpoint Mapper query response ====

您会注意到,如果您在本地计算机上执行该查询,您会发现比从远程计算机执行查询更多的端点。这是因为许多 RPC 端点不会远程公开,仅用于本地进程间通信。

进一步阅读:http://technet.microsoft.com/en-us/library/cc738291(v=WS.10).aspx

并且:https://www.myotherpcisacloud.com/post/2014/02/16/verifying-rpc-network-connectivity-like-a-boss.aspx

相关内容