ChangeMyIP روی لینوکس: تغییر IP و تأیید آن (راهاندازی مبتدی)
یک راهنمای مبتدیپسند و ترمینالمحور برای مسیریابی ترافیک لینوکس از طریق اندپوینتهای HTTP و SOCKS5 ChangeMyIP، سپس اثبات اینکه IP واقعاً تغییر کرده است با بررسیهای curl و یک تست سلامت نشت.
نمای کلی
یک پروکسی آدرس IP را که یک سایت مقصد میبیند تغییر میدهد، زیرا سایت به پروکسی پاسخ میدهد نه به دستگاه شما.
در لینوکس میتوانید دستورات تکی را به یک اندپوینت ChangeMyIP اشاره دهید، یا متغیرهای محیطی تنظیم کنید که اکثر ابزارهای خط فرمان به طور خودکار میخوانند.
این آموزش هر دو رویکرد را در سطح مبتدی پوشش میدهد و با یک مرحله تأیید به پایان میرسد تا بدانید تغییر واقعاً رخ داده است.
ChangeMyIP پروکسیهای دیتاسنتر اشتراکی و اختصاصی به همراه پروکسیهای مسکونی با IPهای چرخشی ارائه میدهد که از طریق HTTP و SOCKS5 و همچنین Shadowsocks، Trojan، DNS و WireGuard قابل دسترسی هستند.
این راهنما فقط از HTTP و SOCKS5 استفاده میکند، هماهنگ با یک راهاندازی اولیه.
پیش از شروع
-
یک اشتراک فعال ChangeMyIP. داشبورد یا جزئیات طرح شما میزبان پروکسی، پورت و نام کاربری/رمز عبوری که استفاده خواهید کرد را فهرست میکند.
-
یک دستگاه لینوکس (دسکتاپ یا سرور) با
curl. آن را باcurl --versionتأیید کنید. -
یک جلسه ترمینال. یک شل جدید برای تست باز کنید تا بتوانید آن را ببندید و همه چیز را دور بریزید.
-
اختیاری: یک ویرایشگر متن برای فایلهای پروفایل شل مانند
~/.bashrcیا~/.zshrc.
انتخاب اندپوینت مناسب برای کار
| نوع اندپوینت | نحوه رفتار IP | استفاده اولیه معمول |
|---|---|---|
| دیتاسنتر اشتراکی | یکی از بسیاری از IPها در یک استخر اشتراکی؛ کاربران دیگر ممکن است همان IP را ببینند | تست اینکه راهاندازی شما کار میکند، مرور عمومی |
| دیتاسنتر اختصاصی | یک IP اختصاص داده شده به حساب شما | حفظ یک هویت پایدار برای حسابهایی که مالک آنها هستید |
| مسکونی | IPهای چرخشی برگرفته از محدودههای ISP واقعی | بررسی صفحات هدفگذاری مکانی، جمعآوری داده در مقیاس متوسط |
جزئیات طرح شما تعیین میکند که کدام کدهای کشور یا شهر را میتوانید درخواست کنید. استخر ChangeMyIP بیش از ۴۰ کشور و بیش از ۳۰۰ شهر را پوشش میدهد؛ از پارامترهای کشور و شهر دقیقاً همانطور که برای طرح شما مستند شده استفاده کنید نه اینکه آنها را حدس بزنید.
مراحل
مرحله ۱: بارگیری اعتبارنامههای خود در شل
read -r -p "Proxy host and port (host:port): " CM_HOST
read -r -p "Proxy username: " CM_USER
read -r -s -p "Proxy password: " CM_PASS; echo
read -s رمز عبور را از صفحه نمایش و تاریخچه شل شما دور نگه میدارد. این دستورات چیزی روی دیسک ذخیره نمیکنند.
مرحله ۲: IP فعلی خود را ثبت کنید
echo "Direct IP: $(curl -sS https://api.ipify.org)"
echo
این مقدار را یادداشت کنید. بعداً آن را با نتیجه پروکسی مقایسه خواهید کرد. هر سرویس بازتاب IP کار میکند؛ api.ipify.org در اینجا استفاده شده زیرا یک آدرس ساده بدون نشانهگذاری اضافی برمیگرداند.
مرحله ۳: اندپوینت HTTP را تست کنید
curl -sS --proxy "http://$CM_HOST" --proxy-user "$CM_USER:$CM_PASS" https://api.ipify.org
echo
اگر احراز هویت موفق شود و اندپوینت قابل دسترسی باشد، آدرس چاپ شده با IP مستقیم از مرحله ۲ متفاوت است. فعلاً این فراخوانی را به عنوان یک دستور curl صریح نگه دارید؛ متغیرهای محیطی بعداً میآیند.
مرحله ۴: اندپوینت SOCKS5 را تست کنید
curl -sS --socks5-hostname "$CM_HOST" --proxy-user "$CM_USER:$CM_PASS" https://api.ipify.org
echo
فرم --socks5-hostname از پروکسی میخواهد که نام میزبان مقصد را resolve کند، بنابراین resolver DNS محلی شما برای دامنه هدف مشورت نمیشود. فلگ ساده --socks5 به صورت محلی resolve میکند و معمولاً انتخاب اشتباهی برای راهاندازیهای متمرکز بر حریم خصوصی است.
مرحله ۵: تنظیم متغیرهای محیطی پروکسی برای جلسه
export http_proxy="http://$CM_USER:$CM_PASS@$CM_HOST"
export https_proxy="$http_proxy"
export no_proxy="localhost,127.0.0.1,::1"
curl -sS https://api.ipify.org
echo
curl، wget، git، pip و بسیاری دیگر از ابزارهای خط فرمان این متغیرها را به طور خودکار میخوانند. لیست no_proxy آدرسهای محلی، مانند یک سرور توسعه روی پورت ۳۰۰۰، را خارج از تونل پروکسی نگه میدارد.
مرحله ۶: اضافه کردن کمککنندههای روشن/خاموش به جای exports دائمی
# به ~/.bashrc یا ~/.zshrc اضافه کنید
proxy_on() {
: "${CM_HOST:?ابتدا CM_HOST، CM_USER و CM_PASS را تنظیم کنید}"
export http_proxy="http://${CM_USER}:${CM_PASS}@${CM_HOST}"
export https_proxy="$http_proxy"
export no_proxy="localhost,127.0.0.1,::1"
echo "پروکسی HTTP/HTTPS روشن"
}
proxy_off() {
unset http_proxy https_proxy no_proxy
echo "پروکسی HTTP/HTTPS خاموش"
}
فایل را با source ~/.bashrc دوباره بارگیری کنید، سپس وقتی تونل را میخواهید proxy_on و وقتی نمیخواهید proxy_off را تایپ کنید. دائمی گذاشتن یک پروکسی export شده منبع رایج خرابیهای گیجکننده در ابزارهای نامرتبط است.
مرحله ۷: درک آنچه متغیرهای محیطی پوشش نمیدهند
-
مرورگرها، اپلیکیشنهای Electron و سرویسهای دسکتاپ عموماً متغیرهای محیطی شل را نادیده میگیرند. به جای آن پروکسی را در خود برنامه یا در تنظیمات شبکه دسکتاپ خود تنظیم کنید.
-
دیمنهای پسزمینه مانند Docker، snapd و برخی مدیران بسته به فایلهای پیکربندی خود نیاز دارند.
-
فقط یک پروکسی سراسری میتواند در هر جلسه شل فعال باشد، بنابراین اگر نیاز دارید دو اندپوینت را همزمان مقایسه کنید، ترمینالهای جداگانه اجرا کنید.
مرحله ۸: تأیید تغییر و بررسی سلامت DNS
curl -sS https://ipinfo.io/ip; echo
curl -sS https://ipinfo.io/country; echo
مقدار country باید با منطقه اندپوینت ChangeMyIP که انتخاب کردهاید مطابقت داشته باشد. هم با HTTP و هم با فرم --socks5-hostname، پروکسی نام میزبان مقصد را resolve میکند، بنابراین resolver محلی شما برای دامنه هدف مشورت نمیشود. اگر یک resolver DNS محلی یا یک پروکسی شفاف نیز اجرا میکنید، یک تست نشت DNS در مرورگر اجرا کنید تا تأیید کنید که کوئریهای شما از جایی که انتظار دارید خارج میشوند.
عیبیابی
| نشانه | علت احتمالی | راهحل |
|---|---|---|
curl: (22) ... 407 |
اعتبارنامه پروکسی گمشده یا اشتباه | نام کاربری و رمز عبور را دوباره بررسی کنید و --proxy-user را به صراحت پاس دهید |
curl: (7) Failed to connect |
میزبان یا پورت اشتباه، یا مسدود شدن توسط فایروال | میزبان و پورت را از جزئیات طرح خود کپی کنید؛ تأیید کنید که پورت قابل دسترسی است |
IP بعد از export تغییر نکرده |
در یک شل متفاوت export شده، یا ابزار متغیرهای محیطی را نادیده میگیرد | proxy_on را در شل فعلی اجرا کنید و ابتدا با curl تست کنید |
با curl کار میکند اما در مرورگر نه |
مرورگر متغیرهای شل را نمیخواند | میزبان و پورت را در تنظیمات پروکسی مرورگر یا پنل شبکه دسکتاپ وارد کنید |
| برخی سایتها بارگذاری میشوند، برخی مسدود | IP دیتاسنتر اشتراکی توسط سایت هدف علامتگذاری شده | با یک اندپوینت مسکونی دوباره امتحان کنید |
| SOCKS5 شکست میخورد اما HTTP کار میکند | resolve DNS محلی یا فلگ اشتباه SOCKS | از --socks5-hostname استفاده کنید |
| سرعتها بین تلاشها متفاوت است | ازدحام استخر دیتاسنتر اشتراکی | یک اندپوینت دیگر از شهر متفاوت را تست کنید |
خلاصه
تغییر IP در لینوکس به سه چیز خلاصه میشود: داشتن اعتبارنامههای معتبر ChangeMyIP، گفتن به ابزار که ترافیک را کجا بفرستد، و تأیید نتیجه. ابتدا با curl و فلگهای صریح تست کنید، وقتی کار کرد به متغیرهای محیطی http_proxy و https_proxy بروید، و آنها را از طریق کمککنندههای proxy_on و proxy_off در دسترس قرار دهید تا ترافیک عادی شما هنگام تست تحت تأثیر قرار نگیرد. IP و کشور جدید را با یک سرویس بازتاب IP تأیید کنید، وقتی میخواهید پروکسی DNS را مدیریت کند --socks5-hostname را ترجیح دهید، و به یاد داشته باشید که برنامههای گرافیکی به تنظیمات پروکسی خود نیاز دارند.