我在学习套接字编程(TCP 服务器)在 Windows 7 上,但不断出现的错误消息是:
端口 135 正在使用中。
我可以看到端口 135 正在监听netstat
。因此,我想停止端口 135 以使 TCP 服务器程序运行。
我做了以下几件事。
导航至键:
HKEY_LOCAL_MACHINE\Software\Microsoft\OLE
在右侧栏中找到该值
EnableDCOM
,并将该值修改为N
。导航到此注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RPC
右键单击并修改名为的值
DCOM Protocols
在键下Value Data
,您将看到如下所示的值(或类似内容)。这些值使端口 135 保持打开状态。突出显示列出的所有内容并删除所有现有数据,从而通过禁用该DCOM
服务dcomcnfg
。
但端口 135 仍在监听。如何停止监听该端口?
我在这里找到了说明:
http://www.pimp-my-rig.com/2008/10/faq-disable-port-135-disable-dcom.html#sthash.Bt1qMvEf.dpuf
答案1
我也有同样的问题。
TCP 端口 135 由 DCOM(基于 RPC)和 Raw RPC 服务器组件共享,作为 TCP/UDP/NamedPipe 传输层的公共入口,由各个 DCOM/Raw RPC 服务器组件选择,因此并不像“在此计算机上禁用 DCOM”那样简单就能停止端口 135。
目前,我通过手动添加防火墙规则(禁用 135)来禁用端口 135:
netsh advfirewall firewall add rule name="stop listening at TCP port 135" protocol=TCP dir=in localport=135 action=block enable=yes
通过工具 rpcdump.py 测试了 RPC 135 端口冲击包开源项目和其他相关的东西,
我已经确认了有关TCP端口135的一些信息:
- 任何人都可以连接到 TCP 端口 135 然后获取 RPC 接口列表,无需任何权限。
- 此类 RPC 接口的进一步使用需要身份验证,我还没有弄清楚身份验证在 TCP 端口 135 上是如何工作的。
- 禁用 TCP 端口 135 不会影响 SMB(Windows 文件共享等...,您仍然可以从客户端计算机使用 psexec/mmc/registry 访问该计算机,这是因为它们都通过 SMB(TCP 端口 445)调用 RPC。
- 禁用 TCP 端口 135 不会影响本地 DCOM/Raw RPC 服务器组件,因为它们不需要网络。
- 禁用 TCP 端口 135 只会影响一些直接使用 DCOM 远程激活(即 VB CreateObject("Excel.Application", RemoteMachine) )或 RemoteMachine 上的原始 RPC 绑定(即一些 Windows 旧式内部管理服务)的客户端计算机
结论是TCP端口135对于大多数非服务器计算机来说是没用的。
对于服务器计算机,我还没有进行太多测试,似乎类似“DFS 管理”服务会自动添加防火墙规则来启用端口。
一些外部参考:
答案2
你可能会发现串口控制器对此有用。