禁用地址共享注册表不起作用

DisableAddressSharing registry is not working

本文关键字:注册表 不起作用 共享 地址      更新时间:2023-10-16

我正在尝试使用DisableAddressSharing注册表来禁用套接字之间的端口共享,但它不起作用。 禁用地址共享设置为 1。

socket server1 = bind(INADDR_ANY,Port)
socket server2 = bind("127.0.0.1",Port)

如果我在 server1 套接字中使用SO_EXCLUSIVEADDR,则地址共享将被禁用。注册表不起作用有什么原因吗?

此设置需要重新启动才能生效。

作为一种解决方法,Microsoft提供了一个注册表设置,该设置将全局(系统范围(阻止所有套接字重用已在使用的任何端口。这是通过将"HKLM\System\CurrentControlSet\Services\Afd\Parameters"键的"DisableAddressSharing"值设置为 1 来完成的。(需要重新启动才能使设置生效(。 管理员应首先确认全局禁止套接字重用不会破坏系统上现有合法服务器的功能/正确性。如果安全,则应使用上述设置来应用此安全措施。

在实现此功能之前,请参阅Microsoft关于SO_EXCLUSIVEADDRUSE的文章。