概要
Windows Server 2016 Essential を利用して Web サーバーを構築したところ 80 番ポートが Windows のシステムプロセスによって利用されていてポートの競合が発生してしまいました。本記事では 80 番ポートの開放方法について記載します。
ポートの利用状況の確認
netstat コマンドで 80 番ポートの利用状況を確認します。
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 のプロセスによって 80 番ポートが利用されているようです。
タスクマネージャーで PID が 4 のプロセスを確認すると Windows のシステムプロセスであることが分かります。
名前 PID 状態 ユーザー名 CPU メモリ (アクティブなプライベート ワーキング セット)
System 4 実行中 SYSTEM 00 20 K
80 番ポートを利用するシステムプロセス (サービス)
Windows のシステムプロセスのうち 80 番ポートを利用するものは以下のサービスであることが分かりました。
名前 | サービス名 |
---|---|
SQL Server Reporting Services | ReportServer |
Web Deployment Agent Service | MsDepSvc |
BranchCache | PeerDistSvc |
Sync Share Service | SyncShareSvc |
World Wide Web Publishing Service | W3SVC |
Internet Information Server | WAS, IISADMIN |
サービスの停止
Windows Server 2016 Essential ではデフォルトで BranchCache サービスが起動していましたので、管理者権限のコマンドプロンプトから以下のコマンドでサービスの停止を行います。
sc stop PeerDistSvc
必要に応じてサービスの開始方法も変更しておきます。
デフォルトは自動開始のためサーバーの再起動後はサービスが自動開始します。
サービスを自動開始させないために以下のコマンドで手動開始に変更しておきます。
sc config PeerDistSvc start= demand
これで 80 番ポートが開放され、Web サーバーを構築することができるようになりました。
80 番ポートの競合が発生した際は該当のサービスが起動していないかを確認してみてください。