#

Svoboda pro port 80 (na Windows 10)




Anabáze o portu 80 ve Windows 10.

Konečně, po tolika hodinách jsem zjistil, co je konkrétně ve Windows 10 na localhostu na portu 80. Tak ale postupně …

Přeinstalace počítače a je tam! Po čisté instalaci Windows 10 a všech updatů je na portu 80 nějaká 404-ka! Neuvěřitelné, dělá to nějaký ovladač k hardware? Bývají často zbytečně obsáhlé a šílené grafické prostředí tvořené pomocí webview nejsou nic nezvyklého.

Nejlepší vodítko? V Hlavičce té 404-ky je server: Microsoft-HTTPAPI/2.0 . To by měl být IIS!

Průzkum portů pomocí netstat -anb moc nepomohla, ta totiž zjistila, že na portu 80 je "system" s PID 4 . Takže průzkum Služeb windows. Tam jsem se chvíli bavil odhadováním, jaká služba by to asi mohla být. Ale nic jako ostatními na netu doporučované "Web Deployment Agent Service" ani "World Wide Web Publishing Service", ani "SQL Server Reporting Services" tam nemám. Jenže vůbec názvy služeb jsou přeložené do češtiny, takže trocha improvizace a zkoušení vypínání všeho co má v názvu web či http či sql. Nepomohlo :(

Všude na internetu doporučují IIS, jenže ten ani nemám nainstalovaný. Ale OK, zkontroluji to znovu… takže appwiz.cpl tam "Zapnout nebo vypnout funkce Windows", a skutečně "Internetová Informační služba" kompletně odinstalována, ani žádná z mnoha součástí v systému není.

Že by tam byl nějaký pozůstatek ? Jedna z internetových rad je IIS nainstalovat a následně odinstalovat, čímž by se mělo všechno odebrat. Tak hurá do toho.

Po instalaci je skutečně na localhostu nějaký obsah (jiný než 404-ka). Pomocí IISAdmin se dá dokonce ovládat… tak jak ho vypnout? net stop http. A skutenčně, po vypnutí je port 80 svobodný a volný :) .

Takže je tu čas IIS zase odebrat. Což vyžaduje následně restart Windows, ale poté NE!!! Port 80 zase blokovaný. Zkouším tedy znovu zastavit IIS jenže IISAdmin příkazy nefungují. Pochopitelně, nemám totiž IIS. Ani net stop http nefunguje.

Naštěstí Microsoft přesně k tomu má nějakou nápovědu, kde se dozvím, že si to můžu nechat opravit automaticky, nebo snadno spustit script v Powershell-u. Takže samozřejmě powershell script. Ten ale selže na tom, že nemám nainstalované MsDepSvc, no nic, tak skvělé a úžasné "Automatic FIX"… ajaj "Microsoft Easy Fix solutions are no longer supported", no nic, tudy cesta nepovede. :(

Prostě nejde ovládat IIS, když ho nemám. Takže co? To mám mít nainstalovaný IIS, abych ho mohl vždy vypnout a použít jiný server (nGinx)? Sice by to takhle šlo, ale smysl to moc nedává. :D

Zase se tedy zaměřuji na hlavičku Microsoft-HttpApi/2.0 . Google vrací na první pozici SERP-u stránku https://stackoverflow.com/questions/35277668/get-request-to-iis-returns-microsoft-httpapi-2-0 . Kde se dozvím, že hlavičku mohu vypnout, což sice není to, co jsem chtěl, ale alezpoň mi to může napovědět jestli to sakra je a nebo není ten IIS ! A ono jo, změnou v registru mohu hlavičku zrušit. Na localhostu stále 404, ale už bez hlavičky, která mě sem dovedla. To vypadá nadějně!

Takže na stejné cestě v registru windows mohou být i další ovládací prvky. A je jich plno, dokumentace je bohatá.

A konečně to hlavní, v regedit na cestě HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP je retrězec type REG_DWORD pojmenovaný Start a má binární hodnotu 3 … změnou na 4 se konečně(!) ten pozůstatek či runtime (či jak to nazvat) IIS nenastartuje a port 80 je můj.

Není to sice tak elegantní, jako možnost přijít na ten zlobivý kus software a úplně ho odebrat, ale i jeho vypnutí mi bude muset stačit. Snad mě nebude budit ze sna, že tam někde ta mrcha je a číhá na svůj čas :D

ic