正如被问过几次的问题一样,我想在我的电脑上的端口 80 上运行一些程序,但发现 Windows 10 默认打开了它。
根据该主题中的一个答案:
我可以通过 暂时停止它net stop http /y
。但是,有几个系统服务依赖于它:
The following services are dependent on the HTTP Service service.
Stopping the HTTP Service service will also stop these services.
Windows Remote Management (WS-Management)
SSDP Discovery
Print Spooler
BranchCache
首先,禁用其中任何一项服务是否会导致严重问题?
如果我只是用命令停止 HTTP 服务net stop
,那么它会在几秒钟后自行重新启动,并且通常BranchCache
有时SSDP Discovery
会重新启动,这大概就是重新激活 HTTP 服务的原因。
令人惊讶的是,谷歌搜索并没有找到更多关于此内容的内容 - 我原本以为 Windows 10 在端口 80 上运行了很多东西而没有明确要求,这是人们会注意到并抱怨的事情!
答案1
在完成了对 http 服务依赖关系的功课后,认真地重新编辑了。 8^P
应该没有伤害禁用任何这些服务..最糟糕的情况是,如果某些服务停止工作,您可以将其全部重新打开。
你可能不想Windows 远程管理除非你正在工作并且你的 IT 人员要求你这样做,否则就一直运行。就是这样。
如果没有打印后台处理程序由于某种原因,微软将其与 HTTP 打印联系在一起,尽管我从未遇到过使用它的人。
如果没有 UPnP,则无法工作SSDP 发现.. 我个人不使用 UPnP,但你可能会使用。为什么需要端口 80 是另一个问题...
您可以阅读分支缓存在谷歌中,但我怀疑你需要它。我还读到您可以回收大量空间,但您应该阅读相关内容并自己做出决定。
如果您禁用 BranchCache 服务,我会首先执行以下操作。事实上,以下操作可能会为您禁用该服务。不知道,没有尝试过。
以下假设您以管理员身份运行 Powershell.exe:
- 要打开 BranchCache,请输入:Enable-WSSBranchCache。
- 要关闭 BranchCache,请输入:Disable-WSSBranchCache。
祝你好运。希望这能有所帮助。
答案2
以下想法尚未经过测试,但可能会实现您想要实现的目标:
您无需停止它http.sys
,因为它甚至不是一个系统服务,而是一个驱动程序,而是可以告诉它http.sys
绑定到特定端口,从而释放 80 端口。
您可以在此处利用您的计算机同时具有 IPv4 和 IPv6 地址这一事实,绑定http.sys
到 IPv6 通用地址 ( ::
),从而释放本地通用 IPv4 地址 ( 127.0.0.1
)。
要绑定http.sys
到 IPv6 通用地址,请从提升的命令提示符运行以下命令:
netsh http add iplisten ipaddress=::
由于localhost
绑定到 IPv6 地址,实际上::1
,您仍然可以http.sys
通过访问应用程序和服务http://localhost
。您在端口 80 上安装的任何应用程序现在都应该可以在 上使用http://127.0.0.1
。或者您甚至可以将以C:\Windows\System32\drivers\etc\hosts
下行添加到文件:
127.0.0.1 local
您将拥有适用localhost
于您的 IPv4 应用程序的此功能。http.sys
local