はじめに
2025年7月12日、話題のClaude CodeがWindowsのネイティブサポートを開始したようです。
簡単に言うと、PowerShellから動くようになりました。
コマンド:
npm install -g @anthropic-ai/claude-code
しかしここで壁が…
ならば早速試してみよう…と思ったのですが、問題発生。以下のように
permission denied 0.0.0.0:54545
と、ポート番号によるエラーになってしまいました。
本記事は、その原因と思われる部分と解決策をシェアしようと思っています。
<<おことわり>>
- 実際の解決策については、Github Issuesにて有志の方からいただいたものです
- ソースコード改変を伴うため、自己責任でお願いします
- 公式は認識済みのようで今後対応すると思われ、執筆時点での暫定的な解決策となります
クイック解決
インストール後、ローカル環境にあるcli.js
を改変します。
ファイルのありか(通常)
%USERPROFILE%\AppData\Roaming\npm\node_modules\@anthropic-ai\claude-code\cli.js
変更内容
ソースコードに記載のポート番号を変更。ほかと競合しなければ何でも良いと思います。
REDIRECT_PORT:54545
↓
REDIRECT_PORT:44545
【追記】
別のアプローチを紹介いただきました。
簡単に言うと、Windowsが予約するポートをずらしてしまえ
というアプローチですね。
netsh int ipv4 set dynamicport tcp start=55000 num=10000
これでPCを再起動すると、ポート:54545
が押さえられる心配がなくなる、というとこです。
原因考察
この問題、タチが悪いことに…人によっては再現しない
と思います。実際、筆者も問題に遭遇・格闘して匙を投げた後しばらくしてから、改めてやってみたら、そのままでも通ったので。
ただ、いざ使いたくなった時に遭遇して使えないと困るので、安定してClaude Codeを使いたい方向けですね。最近ちょっとCursorがゴタゴタしてますしね?()
問題の根っこ
さて、これは何が原因なのかというと、以下であろうと考えています。
- 上記
クイック解決
で示したように、利用するポートがハードコーディングされていること - Windowsは特定のポート番号範囲をシステム利用のため予約しており、かつ実際に利用するポートが動的に決定されること
どういうことかというと…
Windowsの予約ポートはnetsh int ipv4 show excludedportrange protocol=tcp
で確認できますが、それで見ると、筆者がエラーに遭遇したとき、以下のようになっていました。
プロトコル tcp ポート除外範囲
開始ポート 終了ポート
---------- --------
49707 49806
50000 50059 *
50060 50159
50160 50259
50260 50359
54338 54437
54531 54630 <- ここがダメ
54631 54730
61548 61647
* - 管理されている除外ポート。
つまるところ、実行時点で
Claude Codeが指定しているポート:54545
とWindowsの予約ポート:54531~54630
が
たまたま競合してしまったのですね。
このたまたまというのが厄介で、人によっては再現しない
と先述した理由であり、タイミングにより筆者環境でも問題なかった
原因だと考えています。
仕組みとして、Windowsでは49152~65535が動的ポート範囲として予約
されており、この中から状況に応じて先に押さえてしまうようです。
で、Claude Codeがデフォルトで使用する54545は、この範囲に入っちゃっている。
そうであることで、
- 49152~65535の中から運悪く?54545が選ばれてしまうとClaude Codeが使えない
- PC再起動などで予約ポートが変わりうるため、再現性がない
ということになってしまうわけですね。
要は、デフォルトの設定は、Windows用としてソフトウェアが固定で指定するには不適切な設定となっており、この動的なポート予約に引っかかりえない値のポートにずらしてやることで解決を図ろうというのが、クイック解決
に記載した方法ということです。
おわりに
飛びついたはよいものの、早速壁にぶつかってしまって焦りました。
いったい何が原因なのかと、ファイアウォールやセキュリティソフトを疑ってホワイトリストに加えたりしてみても解決せず…。
結果、上記したような単純なことが原因であったわけで、少し気が抜けましたね…Windowsにはそんな仕組みがあるんだなぁと知識は増えましたけども…(^^;
Anthropicの中の人と、MicroSoftの中の人の、このくらいの値なら気にしなくていいでしょ
という対応(※想像)の衝突が原因と考えるとなんか許せる気がしてきました。
重ねて言いますが、本記事に記載した内容は暫定対応となります。身も蓋もないのですが、とりあえずのところは素直にWSL上で使うか、Cursorなどを使うほうが賢いんじゃないかと思います。
それでもClaude CodeをWindows上で動かしたいんだという方に、本記事が役立てば幸いです。