0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code for Winのポート問題を解決する

Last updated at Posted at 2025-07-13

はじめに

2025年7月12日、話題のClaude CodeがWindowsのネイティブサポートを開始したようです。
簡単に言うと、PowerShellから動くようになりました。
コマンド:

npm install -g @anthropic-ai/claude-code

しかしここで壁が…

ならば早速試してみよう…と思ったのですが、問題発生。以下のように
permission denied 0.0.0.0:54545 と、ポート番号によるエラーになってしまいました。
image.png

本記事は、その原因と思われる部分と解決策をシェアしようと思っています。

<<おことわり>>

  • 実際の解決策については、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が指定しているポート:54545Windowsの予約ポート:54531~54630
たまたま競合してしまったのですね。

このたまたまというのが厄介で、人によっては再現しないと先述した理由であり、タイミングにより筆者環境でも問題なかった原因だと考えています。

仕組みとして、Windowsでは49152~65535が動的ポート範囲として予約されており、この中から状況に応じて先に押さえてしまうようです。
で、Claude Codeがデフォルトで使用する54545は、この範囲に入っちゃっている。
そうであることで、

  • 49152~65535の中から運悪く?54545が選ばれてしまうとClaude Codeが使えない
  • PC再起動などで予約ポートが変わりうるため、再現性がない

ということになってしまうわけですね。
要は、デフォルトの設定は、Windows用としてソフトウェアが固定で指定するには不適切な設定となっており、この動的なポート予約に引っかかりえない値のポートにずらしてやることで解決を図ろうというのが、クイック解決に記載した方法ということです。

おわりに

飛びついたはよいものの、早速壁にぶつかってしまって焦りました。
いったい何が原因なのかと、ファイアウォールやセキュリティソフトを疑ってホワイトリストに加えたりしてみても解決せず…。
結果、上記したような単純なことが原因であったわけで、少し気が抜けましたね…Windowsにはそんな仕組みがあるんだなぁと知識は増えましたけども…(^^;

Anthropicの中の人と、MicroSoftの中の人の、このくらいの値なら気にしなくていいでしょという対応(※想像)の衝突が原因と考えるとなんか許せる気がしてきました。

重ねて言いますが、本記事に記載した内容は暫定対応となります。身も蓋もないのですが、とりあえずのところは素直にWSL上で使うか、Cursorなどを使うほうが賢いんじゃないかと思います。
それでもClaude CodeをWindows上で動かしたいんだという方に、本記事が役立てば幸いです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?