عبور دادن WSL2 و Docker از پروکسی

WSL2 و کانتینرهای Docker در شبکه‌های جداگانه خودشان زندگی می‌کنند و اصلاً خبر ندارند روی میزبان پروکسی روشن است؛ به همین دلیل apt و pip و docker pull همچنان تایم‌اوت می‌خورند. یا باید آدرس پروکسی را صریح به آنها بگویید، یا با حالت TUN همه‌چیز را یکجا بگیرید.

راه اول: حالت TUN (ساده‌ترین)

  1. حالت TUN را در Clash Verge روشن کنید؛ روش تنظیم در راهنمای حالت TUN آمده.
  2. «اتصال شبکه محلی» را هم روشن کنید، وگرنه ترافیک کانتینرها و WSL گرفته نمی‌شود.
  3. داخل WSL دستور curl -I https://www.google.com را اجرا کنید تا مطمئن شوید مسیر برقرار است.
پیشنهاد همکاری لینک اشتراک را از کجا بیاوریم؟ سرویس همکار ما هنگام ثبت‌نام ۱ گیگابایت ترافیک پرسرعت هنگ‌کنگ رایگان می‌دهد. دریافت سرور پرسرعت

راه دوم: معرفی دستی آدرس پروکسی

  1. در تنظیمات Clash Verge «اتصال شبکه محلی» را روشن کنید تا پورت ترکیبی اتصال بیرونی بپذیرد، ببینید اشتراک پروکسی در شبکه محلی.
  2. آدرس میزبان را از داخل WSL2 پیدا کنید: خط nameserver در خروجی cat /etc/resolv.conf. اگر حالت شبکه آینه‌ای فعال است، مستقیم از 127.0.0.1 استفاده کنید.
  3. در انتهای ~/.bashrc خط‌های export http_proxy=http://آدرس‌میزبان:7897 و export https_proxy=$http_proxy را اضافه و سپس source ~/.bashrc را اجرا کنید.
  4. Docker تصاویر را با سرویس پس‌زمینه می‌گیرد نه با پوسته شما، پس متغیرهای محیطی روی آن اثری ندارند. در Docker Desktop همان آدرس را در Settings → Resources → Proxies وارد کنید.