
خبر بدی که چند هفته پیش بهش برخوردیم مهاجرت Gitlab.com از سرویس مایکروسافت آژر به سرویس ابری گوگل بود. البته این خبر تنها برای ما و چندتا کشور مثل کره شمالی و کریمه و ... خبر بدی محسوب میشد. حالا چرا این خبر بده؟ از زمان مهاجرت دسترسی به پروژه هامون تقریبا داره گرفته میشه و باید پروژه هامون رو به سرویس مشابه دیگه ای منتقل کنیم یا مثل تمام سرویس های دیگه که تو ایران عزیزمون در دسترس نیست از proxy استفاده کنیم و تحریم رو دور بزنیم!
ساده ترین راه حل اینه که هر برنامه ای که کامپیوتر شما رو از فیلتر رد میکنه اجرا کنید و از گیت لب استفاده کنید ولی این کار خیلی برای من راحت نبود. من دوست نداشتم تمام کامپیوترم رو proxy کنم و تصمیم گرفتم راه حل خودم رو اینجا بنویسم.
اگر خودتون از هر طریقی دسترسی به Socks5 دارید دیگه نیازی به این تنظیمات نیست و به مرحله بعدی برید.
من از طریق یک سرور لینوکسی که خارج از ایران دارم به راحتی تونستم با استفاده از ترمینال و این تنظیمات روی کامپیوتر خودم یه Socks5 درست کنم:
ssh -D 1080 -N -C username@server
دستور بالا یه Ssh Tunnel برای من درست میکنه و تمام اطلاعات که از کامپیوتر من به پورت ۱۰۸۰ میره رو از سرور خارج از ایران من رد میکنه. تنظیماتی هم که استفاده کردم به این معنی هستند:
پارامتر های username و server رو تو دستور بالا با اطلاعات خودتون تغییر بدید و توی ترمینال اجراش کنید. بعد از اجرا پسورد سرور رو وارد کنید و ترمینال رو نبندید چون proxy شما از کار میافته.
برای استفاده از گیت میتونید از دوحالت https یا ssh استفاده کنید. برای اینکه بفهمید الان دارید از کدوم استفاده میکنید، کافیه یه نگاه به تنظیمات گیت پروژه بندازید. برای این کار فایل تنظیمات رو با یه ویرایش گر باز کنید. من از داخل پروژه با vi این کار رو کردم:
vi .git/config
چیزی که باید دنبالش بگردید ["remote "origin] یا هر اسمی دیگه که شما به عنوان origin ازش استفاده می کنید. دو حالت ممکنه وجود داشته باشه.
حالت اول به صورت https:
[remote "origin"] url = https://gitlab.com/milad/milad.git fetch = +refs/heads/*:refs/remotes/origin/*
حالت دوم به صورت ssh:
[remote "origin"] url = [email protected]:milad/milad.git fetch = +refs/heads/*:refs/remotes/origin/*
اگر از حالت اول استفاده میکنید کار خیلی سادست. دستور زیر رو وارد کنید تا تمام git شما در حالت https از proxy که ایجاد کردید رد بشه:
git config --global https.proxy 'socks5://127.0.0.1:1080'
یا میتونید با یک ویرایشگر اون رو به تنظیمات گیت خودتون اضافه کنید:
vi ~/.gitconfig
بعد اطلاعات پروکسی رو به تنظیمات اضافه کنید و فایل رو ذخیره کنید:
[https] proxy = socks5://127.0.0.1:1080
هر موقع پشیمون شدید میتونید این تنظیمات رو پاک کنید و تمام. مثل روز اول از گیت استفاده کنید.
اگر آدرس origin شما با git@gitlab شروع میشه پس شما دارید از حالت ssh استفاده میکنید. برای اینکار کافی تنظیمات ssh خودتون رو ویرایش کنید و تنظیمات رو بهش اضافه کنید.
با استفاده از ویرایشگر فایل زیر رو باز کنید:
vi ~/.ssh/config
تنظیمات زیر رو بهش اضافه کنید و اون رو ذخیره کنید:
Host gitlab.com User git ProxyCommand nc -x localhost:1080 %h %p
تو این حالت هم اگر خواستید این تنظیمات رو پاک کنید و به حالت اولیه برگردید.
امیدوارم یه روزی همه به اینترنت آزاد دسترسی داشته باشیم!
تمام.