Как уже несколько раз спрашивали, я хочу запустить что-то на порту 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.
Кажется удивительным, что поисковые запросы Google не выдают больше информации по этой теме. Я бы подумал, что Windows 10 запускает множество приложений на порту 80 без явного запроса, и это должно было бы заметить и вызвать жалобы!
решение1
Серьёзно переработан после выполнения домашней работы по зависимостям http-сервиса. 8^P
Должно быть нетвредпри отключении ЛЮБОЙ из этих служб... в худшем случае, если что-то перестанет работать, вы сможете включить все это снова.
Вы, вероятно, не хотитеУдаленное управление Windowsработает, если только вы каким-то образом не находитесь на работе и ваш айтишник этого не требует. ТОЧКА.
Печать не будет работать бездиспетчер очереди печатикоторый по какой-то причине Microsoft привязала к HTTP-печати, хотя я никогда не встречал никого, кто бы ее использовал.
UPnP не будет работать безSSDP-открытие.. Лично я не использую UPnP, но вы можете. Зачем ему нужен порт 80 — это другой вопрос...
Вы можете прочитать оBranchCacheв гугле,но я сомневаюсь, что тебе это нужно. Я также читал, что можно освободить много места, но вам следует прочитать об этом и принять решение самостоятельно.
Если вы отключите службу 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