Windows で Port 80 を使っている PID 4 ってナニヤツ

クリーンインストールした Windows 2012R2 に、サードパーティーの WEB サーバをインストールしようとしたとき、インストーラが "Port 80 がすでに使われているのでインストールできない" とエラーを出してきた。

おいおいまだ何もいれてねえしIISも有効化してねえし、どうしたことだ?と思って Port 80 を使っているプロセスを調べてみた。

C:\Users\Administrator>netstat -oan | findstr ":80 PID"
プロトコル ローカル アドレス 外部アドレス 状態 PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP [::]:80 [::]:0 LISTENING 4

まじか… PID 4 といえば System の PID じゃねえか。何かのサービスが使ってるのだろう。

検索してみたらいっぱい出てきた。こちらのサイトがとても分かりやすかった。

Opening Up Port 80 For Apache to Use On Windows

以下のサービスが起動してたら止めてみな、とのこと。

  1. SQL Server Reporting Services (ReportServer)
  2. Web Deployment Agent Service (MsDepSvc)
  3. BranchCache (PeerDistSvc)
  4. Sync Share Service (SyncShareSvc)
  5. World Wide Web Publishing Service (W3SVC)
  6. Internet Information Server (WAS, IISADMIN)

ぼくの環境では BranchCache が起動してたので止めてみた。

C:\Users\Administrator>net stop PeerDistSvc
BranchCache サービスを停止中です.
BranchCache サービスは正常に停止されました。

さあどうだ。

C:\Users\Administrator>netstat -oan | findstr ":80 PID"
プロトコル ローカル アドレス 外部アドレス 状態 PID

わあい! Port 80 が解放された!

先ほどのサイトに、この Port 80 を System が使ってしまうドライバである HTTP.SYS の止め方も載ってる。とても参考になる。