windowsで50000番台のportが一部blockされてた

開発環境

発端はnextjsで開発していて、3000番ではなくて50505番を使っていた時に起こりました。

 ⨯ Failed to start server
Error: listen EACCES: permission denied 0.0.0.0:50505

ephemeral portって49152~だと思っていたのでキリのいい番号出ない限りなかなか衝突しないと思っていたのでびっくり。firewallでそもそもblockしてたっけ?と調べてたりしながら時間を無駄にしました。

ググっているとstack overflowでぴったりな回答に出会いました。

Just a moment...
netsh interface ipv4 show excludedportrange protocol=tcp

プロトコル tcp ポート除外範囲

開始ポート    終了ポート
----------    --------
      5357        5357
     49670       49769
     49770       49869
     49870       49969
     50000       50059     *
     50060       50159
     50162       50261
     50268       50367
     50471       50570
     50571       50670
     50671       50770
     50771       50870
     50871       50970
     50971       51070

* - 管理されている除外ポート。

ピンポイントで50505が含まれていますね。
どうやらHyper-VやらDocker、WSLなど、一部のサービスはポートを結構な範囲で予約するらしいです。

コメント