رفع خطای 403 Request not allowed در Claude Code

اگر هنگام اجرای Claude Code با خطای زیر روبه‌رو شده‌اید: API Error: 403 Request not allowed احتمالاً اولین فکری که به ذهنتان می‌رسد این است که اکانت Claude مشکل دارد

رفع خطای 403 Request not allowed در Claude Code؛ راه‌حلی که واقعاً تست کردیم

اگر هنگام اجرای Claude Code با خطای زیر روبه‌رو شده‌اید:

API Error: 403 Request not allowed

احتمالاً اولین فکری که به ذهنتان می‌رسد این است که اکانت Claude مشکل دارد، اشتراک تمام شده یا باید دوباره وارد حساب شوید. اما همیشه مشکل از اکانت نیست.

ما این خطا را روی یک سرور واقعی بررسی کردیم و بعد از چند تست متوجه شدیم که مسیر اتصال و IP خروجی هم می‌تواند در بروز خطای 403 کلود نقش داشته باشد. در تست ما، استفاده از Proxy باعث شد Claude Code دوباره پاسخ بدهد.

در ادامه، به‌جای راه‌حل‌های پراکنده، مرحله‌به‌مرحله بررسی می‌کنیم که خطای 403 Request not allowed چیست، چطور علت آن را پیدا کنید و چطور Proxy را برای Claude Code تنظیم کنید.

خطای 403 Request not allowed در Claude یعنی چه؟

وقتی چنین پیامی می‌بینید:

403 Forbidden — Request not allowed

درخواست شما به سرویس رسیده، اما اجازه ادامه آن داده نشده است.

این موضوع با خطاهایی مثل 401 فرق دارد. برای مثال اگر API Key ارسال نشده باشد، ممکن است با خطایی مانند x-api-key header is required روبه‌رو شوید. اما در خطای 403، صرفاً عوض کردن رمز یا نصب مجدد Claude لزوماً مشکل را برطرف نمی‌کند.

نکته مهم‌تر اینکه هر خطای 403 در Claude الزاماً مشکل IP نیست. وضعیت حساب، روش احراز هویت، دسترسی سرویس و تنظیمات شبکه هم باید بررسی شوند. حتی گزارش‌هایی وجود دارد که Claude Chat یا CLI برای کاربر کار می‌کند، اما بخش دیگری از سرویس با 403 Request not allowed مواجه می‌شود.

قبل از هر کاری Claude Code را مستقیم تست کنید

اگر Claude Code روی سیستم یا سرور نصب است، یک تست ساده انجام دهید:

claude -p "Reply only with OK"

اگر همه‌چیز درست باشد، باید پاسخی شبیه این بگیرید:

OK

اگر همین درخواست با خطای زیر مواجه شد:

API Error: 403 Request not allowed

حالا ارزش دارد مسیر شبکه و Proxy را بررسی کنیم.

این تست بسیار بهتر از این است که بلافاصله تنظیمات مختلف Claude را تغییر دهید، چون دقیقاً مشخص می‌کند خود Claude Code CLI قادر به ارسال درخواست هست یا خیر.

راه‌حل خطای Claude Code 403 با Proxy

Claude Code از متغیرهای استاندارد HTTP_PROXY و HTTPS_PROXY پشتیبانی می‌کند. بنابراین برای یک تست اولیه لازم نیست تنظیمات دائمی سیستم را تغییر دهید.

فرض کنید یک HTTP Proxy دارید. ساختار کلی آن به شکل زیر است:

http://USERNAME:PASSWORD@PROXY-IP:PORT

برای اجرای موقت Claude Code از طریق Proxy می‌توانید از این دستور استفاده کنید:

HTTPS_PROXY='http://USERNAME:PASSWORD@PROXY-IP:PORT' HTTP_PROXY='http://USERNAME:PASSWORD@PROXY-IP:PORT' claude -p "Reply only with OK"

اگر مشکل مربوط به مسیر اتصال باشد، ممکن است این بار به‌جای خطای 403 پاسخ زیر را دریافت کنید:

OK

مزیت این روش این است که فقط همان اجرای Claude Code از Proxy عبور می‌کند و لازم نیست کل ترافیک سرور یا سیستم را به Proxy منتقل کنید.

تجربه واقعی ما؛ قبل و بعد از Proxy

برای اینکه صرفاً یک راه‌حل تئوری ارائه نکنیم، این روش را روی سیستمی که با خطای 403 Request not allowed مواجه شده بود آزمایش کردیم.

ابتدا اتصال به Anthropic بدون مسیر جایگزین با پاسخ زیر مواجه می‌شد:

HTTP/2 403

و پاسخ سرویس:

{"error":{"type":"forbidden","message":"Request not allowed"}}

سپس مسیر اتصال را از طریق یک HTTP Proxy آزمایش کردیم.

Proxy توانست تونل HTTPS را برقرار کند و ارتباط با api.anthropic.com برقرار شد. در نهایت Claude Code در تست عملی دوباره پاسخ داد:

OK

بنابراین در سناریویی که ما آزمایش کردیم، تغییر مسیر خروجی با Proxy راه‌حل مؤثری برای مشکل اتصال Claude بود.

این نتیجه البته به این معنی نیست که هر خطای 403 در هر سیستمی با Proxy برطرف می‌شود. اگر مشکل از حساب، مجوز دسترسی یا Authentication باشد، باید همان بخش را اصلاح کنید.

چطور مطمئن شویم Proxy واقعاً کار می‌کند؟

قبل از اجرای Claude می‌توانید اتصال Proxy به Anthropic را جداگانه بررسی کنید:

curl -I -x 'http://USERNAME:PASSWORD@PROXY-IP:PORT' https://api.anthropic.com

در تست ما خروجی شامل این بخش بود:

HTTP/1.1 200 Connection established

این پیام یعنی Proxy موفق شده تونل HTTPS را برقرار کند.

بعد از آن ممکن است برای آدرس اصلی API پاسخ 404 ببینید. این موضوع به‌تنهایی نشانه خراب بودن Proxy نیست؛ چون در این تست endpoint مشخصی از API درخواست نشده است.

برای مشاهده IP خروجی Proxy هم می‌توانید از این دستور استفاده کنید:

curl -s -x 'http://USERNAME:PASSWORD@PROXY-IP:PORT' https://api.ipify.org

اگر IP نمایش‌داده‌شده با IP اصلی سرور متفاوت باشد، ترافیک آن درخواست واقعاً از مسیر Proxy خارج شده است.

تنظیم دائمی Proxy برای Claude Code

اگر تست موقت موفق بود و می‌خواهید در همان محیط از Proxy استفاده کنید، می‌توانید متغیرهای Proxy را تنظیم کنید:

export HTTPS_PROXY="http://USERNAME:PASSWORD@PROXY-IP:PORT"

export HTTP_PROXY="http://USERNAME:PASSWORD@PROXY-IP:PORT"

سپس Claude را اجرا کنید:

claude

خود Anthropic نیز در مستندات Claude Code استفاده از HTTP_PROXY و HTTPS_PROXY را برای HTTP/HTTPS Proxyها توضیح داده است.

اگر Proxy شما احراز هویت Basic داشته باشد، نام کاربری و رمز عبور نیز می‌تواند داخل Proxy URL قرار بگیرد.

نکته امنیتی: رمز Proxy را داخل اسکریپت‌ها، ریپازیتوری Git یا فایل‌هایی که دیگران به آن‌ها دسترسی دارند قرار ندهید.

اگر با Proxy هنوز خطای 403 می‌گیرید چه؟

اینجاست که نباید همه خطاهای 403 را به IP ربط بدهیم.

اگر Proxy را تنظیم کردید و همچنان Request not allowed دریافت می‌کنید، این موارد را بررسی کنید:

  1. وضعیت ورود به Claude Code
    مطمئن شوید Claude Code واقعاً با حساب موردنظر شما وارد شده است.

  2. نوع Authentication
    Claude Code می‌تواند بسته به نحوه راه‌اندازی از روش‌های مختلف احراز هویت استفاده کند. یک API Key خالی، قدیمی یا اشتباه می‌تواند مسیر عیب‌یابی را کاملاً تغییر دهد.

  3. فعال بودن اشتراک یا دسترسی حساب
    اگر از Claude Pro یا Max برای Claude Code استفاده می‌کنید، وضعیت حساب و اشتراک را بررسی کنید.

  4. Proxy را واقعاً Claude Code استفاده می‌کند؟
    صرف روشن بودن VPN یا Proxy روی یک بخش از سیستم الزاماً به این معنی نیست که پردازش CLI هم از همان مسیر استفاده می‌کند. به همین دلیل اجرای Claude با HTTP_PROXY و HTTPS_PROXY روش تست دقیق‌تری است.

  5. تفاوت 401 و 403 را جدی بگیرید
    اگر خطای شما به 401 authentication_error تغییر کرد، دیگر نباید فقط روی IP تمرکز کنید. در این حالت Authentication و credentialها را بررسی کنید.

سریع‌ترین روش عیب‌یابی

اگر فقط می‌خواهید سریع بفهمید مشکل از کجاست، این ترتیب منطقی‌تر است:

مرحله اول: Claude را مستقیم اجرا کنید:

claude -p "Reply only with OK"

مرحله دوم: اگر 403 Request not allowed گرفتید، همان تست را بدون تغییر حساب از یک Proxy معتبر انجام دهید:

HTTPS_PROXY='http://USER:PASS@IP:PORT' HTTP_PROXY='http://USER:PASS@IP:PORT' claude -p "Reply only with OK"

مرحله سوم: نتایج را مقایسه کنید.

اگر بدون Proxy خطای 403 دارید ولی همان دستور با Proxy OK می‌دهد، مسیر شبکه یا IP خروجی یکی از جدی‌ترین مظنون‌هاست.

اگر در هر دو حالت 403 دریافت می‌کنید، سراغ Authentication، وضعیت حساب و دسترسی Claude بروید.

اگر 401 دریافت می‌کنید، ابتدا credential و روش ورود را بررسی کنید.

آیا VPN هم می‌تواند مشکل Claude Code را حل کند؟

از نظر فنی چیزی که برای این تست اهمیت دارد مسیر خروجی درخواست Claude Code است.

بنابراین صرف اینکه مرورگر شما از VPN استفاده می‌کند کافی نیست. ممکن است سایت Claude در مرورگر باز شود، اما Claude Code در Terminal همچنان از اتصال مستقیم استفاده کند.

برای CLI، استفاده صریح از متغیرهای HTTP_PROXY و HTTPS_PROXY قابل‌کنترل‌تر است و دقیقاً می‌دانید پردازش Claude باید از چه Proxy استفاده کند.

چند نکته مهم درباره انتخاب Proxy برای Claude

اگر قرار است Claude Code را به‌صورت مداوم روی سرور اجرا کنید، کیفیت Proxy اهمیت زیادی دارد. Proxy ناپایدار می‌تواند خودش باعث Timeout، قطع شدن Stream یا خطاهای شبکه شود.

بهتر است Proxy شما اتصال HTTPS پایدار، سرعت مناسب و IP خروجی ثابت داشته باشد. همچنین اطلاعات حساب Claude یا API Key را در اختیار سرویس‌های ناشناس قرار ندهید.

در این روش Proxy فقط باید ترافیک رمزنگاری‌شده HTTPS را عبور دهد؛ نباید اطلاعات حساس خود را در پنل یا اسکریپت‌های ناشناس وارد کنید.

جمع‌بندی

خطای Claude Code 403 Request not allowed لزوماً به معنی خراب بودن Claude، تمام شدن اشتراک یا اشتباه بودن نصب نیست.

یکی از مواردی که باید بررسی شود، IP و مسیر خروجی اتصال به Anthropic است.

در تست عملی ما، ابتدا با پاسخ 403 Request not allowed مواجه شدیم. اتصال از مسیر Proxy را بررسی کردیم و در نهایت Claude Code توانست درخواست آزمایشی را با پاسخ OK اجرا کند.

اگر شما هم با این مشکل روبه‌رو هستید، قبل از دستکاری تنظیمات پیچیده، همان درخواست Claude را یک بار مستقیم و یک بار با Proxy اجرا کنید. مقایسه همین دو نتیجه می‌تواند خیلی سریع مشخص کند که باید روی شبکه تمرکز کنید یا Authentication و حساب کاربری.

سوالات متداول

خطای 403 Request not allowed در Claude Code چیست؟
این خطا یعنی درخواست ارسال شده اما سرویس اجازه انجام آن را نداده است. علت می‌تواند بسته به شرایط از تنظیمات حساب و Authentication تا شبکه و مسیر اتصال متفاوت باشد.

آیا Proxy خطای 403 Claude را حل می‌کند؟
اگر مشکل به مسیر شبکه یا IP خروجی مربوط باشد، ممکن است بله. در تست عملی ما تغییر مسیر اتصال با Proxy مؤثر بود. با این حال تمام خطاهای 403 علت یکسانی ندارند.

Claude Code از HTTP Proxy پشتیبانی می‌کند؟
بله. در مستندات Anthropic امکان استفاده از متغیرهای HTTP_PROXY و HTTPS_PROXY برای Claude Code توضیح داده شده است.

چطور بفهمم Claude Code درست کار می‌کند؟
یک تست ساده اجرا کنید:

claude -p "Reply only with OK"

اگر OK دریافت کردید، Claude Code توانسته درخواست را با موفقیت اجرا کند.

چرا Claude در مرورگر کار می‌کند ولی Claude Code خطای 403 می‌دهد؟
مرورگر و Terminal الزاماً از یک مسیر شبکه و حتی یک روش احراز هویت استفاده نمی‌کنند. بنابراین کار کردن Claude در مرورگر به‌تنهایی ثابت نمی‌کند که Claude Code هم باید بدون مشکل متصل شود.

فرق خطای 401 و 403 Claude چیست؟
در عیب‌یابی عملی، 401 معمولاً شما را به سمت مشکل Authentication می‌برد؛ اما در 403 درخواست رد شده و باید مجوزها، وضعیت حساب و شرایط شبکه را هم بررسی کنید.