نحوه استفاده از cURL با پروکسی

این وبلاگ در ابتدا به وبلاگ Crawbase ارسال شد
استفاده از پروکسی با cURL یک راه عالی برای مدیریت درخواست های وب، پنهان کردن IP و دور زدن محدودیت های شبکه است. چه در حال اسکراپی کردن وب، آزمایش API ها یا ایمن سازی ترافیک اینترنت خود باشید، پروکسی ها با مخفی کردن IP واقعی شما و مسیریابی درخواست ها از طریق سرور دیگری به شما کمک می کنند.
اما ابتدا، cURL چیست؟
CURL (مخفف Client URL) یک ابزار خط فرمان برای ارسال و دریافت داده ها با استفاده از پروتکل های مختلف شبکه مانند HTTP، HTTPS، FTP و غیره است. این ابزار کوچک اما قدرتمندی است که توسط توسعهدهندگان برای آزمایش، خودکارسازی درخواستهای وب و واکشی دادهها از نقاط پایانی استفاده میشود.
در اینجا همه چیزهایی است که باید در مورد استفاده از cURL با پراکسی بدانید. نصب cURL بر روی پلتفرمهای مختلف، راهاندازی پراکسیهای HTTP، HTTPS، و SOCKS، متغیرهای محیطی، تنظیمات پراکسی دائمی، و نحوه دور زدن پراکسیها. برویم!
چرا از cURL با پروکسی استفاده کنیم؟
استفاده از پروکسی با cURL برای هر کسی که با درخواست های وب کار می کند عالی است. پروکسی یک لایه میانی بین رایانه شما و اینترنت است. درخواست های شما را از طریق سرور خود ارسال می کند. در اینجا دلیل این است که چرا پروکسی های دارای cURL بسیار جالب هستند:
-
حریم خصوصی پیشرفته
پروکسی ها آدرس IP واقعی شما را مخفی می کنند و آن را با آدرس خود جایگزین می کنند. بنابراین هنگام ارسال درخواستها ناشناس میمانید و به صورت آنلاین امن میشوید. -
دسترسی به محتوای محدود
پراکسیها به شما کمک میکنند از محدودیتهای جغرافیایی یا فایروالها اجتناب کنید تا بتوانید به وبسایتها و دادههایی دسترسی داشته باشید که در غیر این صورت مسدود میشوند. -
از محدودیت های نرخ و ممنوعیت IP اجتناب کنید
هنگام انجام تست Scraping یا API، پراکسی ها به شما اجازه می دهند IP ها را بچرخانید تا وب سایت ها درخواست های شما را مسدود نکنند. -
کارایی شبکه
برخی از سرورهای پروکسی از کش استفاده می کنند که زمان مورد نیاز برای تکمیل درخواست ها را به حداقل می رساند و عملکرد کلی بهتر خواهد بود.
چه در حال آزمایش API ها باشید، چه داده های وب را جمع آوری کنید یا به طور ایمن به اینترنت دسترسی داشته باشید، استفاده از cURL با یک پروکسی یک راه حل ساده برای نیازهای شما است. در بخشهای بعدی، نحوه راهاندازی و استفاده از cURL را با انواع مختلف پراکسی به شما نشان خواهیم داد.
نصب cURL بر روی پلتفرم های مختلف
قبل از اینکه بتوانید از cURL با یک پروکسی استفاده کنید، باید مطمئن شوید که cURL روی سیستم شما نصب شده است. در اینجا نحوه نصب cURL در ویندوز، macOS و لینوکس آورده شده است.
برای ویندوز
- به صفحه دانلود cURL بروید: curl.se/windows.
- نسخه صحیح سیستم خود (32 بیتی یا 64 بیتی) را دانلود کنید.
- فایل ZIP را استخراج کنید.
- Curl.exe را به PATH سیستم خود اضافه کنید تا بتوانید از خط فرمان استفاده کنید.
برای تست نصب، اجرا کنید:
curl --version
برای macOS
cURL در اکثر سیستمهای macOS گنجانده شده است. برای بررسی نصب بودن آن، ترمینال را باز کنید و تایپ کنید:
curl --version
اگر نصب نیست یا آخرین نسخه را می خواهید، از Homebrew استفاده کنید:
- اگر Homebrew قبلاً نصب نشده است، نصب کنید:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- نصب cURL:
brew install curl
برای لینوکس
بسیاری از توزیع های لینوکس به طور پیش فرض دارای cURL هستند. برای بررسی، ترمینال را باز کرده و اجرا کنید:
curl --version
اگر نصب نیست، بسته به توزیع خود به راحتی می توانید آن را نصب کنید:
sudo apt update
sudo apt install curl
sudo yum install curl
پس از نصب، با اجرای:
curl --version
اکنون که cURL را نصب کرده اید، بیایید به استفاده از cURL با پراکسی های HTTP و HTTPS برویم.
استفاده از cURL با پروکسی HTTP/HTTPS
پروکسی ها برای افزودن حریم خصوصی، دور زدن محدودیت های شبکه و انجام وظایف استفاده می شوند. cURL کار با پراکسی های HTTP و HTTPS را آسان می کند و به شما امکان می دهد درخواست های خود را از طریق یک سرور پراکسی مسیریابی کنید.
نحو اولیه برای پروکسی HTTP
برای استفاده از پروکسی HTTP با cURL باید از آن استفاده کنید -x
یا --proxy
گزینه در اینجا نحو اصلی آمده است:
curl -x "http://proxy_address:port" "http://example.com"
- جایگزین کنید
proxy_address
با آدرس سرور پروکسی - جایگزین کنید
port
با شماره پورت پروکسی - جایگزین کنید
http://example.com
با آدرسی که می خواهید به آن دسترسی داشته باشید.
مثال:
اگر آدرس پروکسی شما است 127.0.0.1
و بندر است 8080
، دستور به شکل زیر خواهد بود:
curl -x "http://127.0.0.1:8080" "http://example.com"
نمونه ای از پروکسی HTTPS
هنگام استفاده از پروکسی های HTTPS، فرآیند مشابه است. شما باید پروتکل HTTPS را در آدرس پروکسی مشخص کنید:
curl --proxy "https://proxy_address:port" "https://example.com"
مثال:
فرض کنید آدرس پروکسی HTTPS شما باشد proxy.example.com
، و پورت است 443
. دستور این خواهد بود:
curl --proxy "https://proxy.example.com:443" "https://secure-site.com"
افزودن احراز هویت
اگر پروکسی شما به نام کاربری و رمز عبور نیاز دارد، می توانید آنها را در دستور قرار دهید:
curl -x "http://username:password@proxy_address:port" "http://example.com"
مثال:
برای یک پروکسی در 127.0.0.1:8080
با نام کاربری از user
و رمز عبور از pass
، دستور این خواهد بود:
curl -x "http://user:pass@127.0.0.1:8080" "http://example.com"
رسیدگی به خطاهای گواهی SSL
هنگام استفاده از پراکسی های HTTPS، ممکن است با خطاهای گواهی SSL مواجه شوید. برای دور زدن آنها (اگر به سرور پروکسی اعتماد دارید) از -k
گزینه:
curl --proxy "https://proxy.example.com:443" "https://secure-site.com" -k
استفاده از cURL با پراکسی های HTTP و HTTPS IP شما را پنهان می کند و به شما امکان می دهد به وب سایت های محدود دسترسی داشته باشید. در مرحله بعد، از cURL با پراکسی های SOCKS استفاده می کنیم.
استفاده از cURL با پروکسی SOCKS
پروکسی SOCKS یک پروکسی سطح پایین تر از پراکسی های HTTP و HTTPS است. با انواع بیشتری از ترافیک، از جمله FTP و موارد دیگر کار می کند. cURL از پروکسی های SOCKS پشتیبانی می کند، بنابراین برای خراش دادن وب یا دور زدن محدودیت های جغرافیایی عالی است.
نحو اولیه برای پروکسی SOCKS
برای استفاده از پروکسی SOCKS با cURL می توانید از آن استفاده کنید -x
یا --proxy
گزینه درست مانند پروکسی های HTTP/HTTPS. تنها تفاوت در تعیین پروتکل SOCKS (SOCKS4 یا SOCKS5) است. نحو اصلی این است:
curl -x "socks5://proxy_address:port" "http://example.com"
- جایگزین کنید
proxy_address
با آدرس سرور پروکسی SOCKS. - جایگزین کنید
port
با شماره پورت پروکسی - جایگزین کنید
http://example.com
با آدرس اینترنتی که می خواهید بازدید کنید.
مثال:
اگر از پروکسی SOCKS5 در 127.0.0.1
و بندر است 1080
، دستور به صورت زیر خواهد بود:
curl -x "socks5://127.0.0.1:1080" "http://example.com"
احراز هویت با پروکسی SOCKS
برخی از پراکسیهای SOCKS مانند پراکسیهای HTTP/HTTPS به احراز هویت نیاز دارند. برای افزودن نام کاربری و رمز عبور برای احراز هویت، میتوانید آنها را در URL پروکسی قرار دهید:
curl -x "socks5://username:password@proxy_address:port" "http://example.com"
مثال:
برای پروکسی SOCKS5 در 127.0.0.1
در بندر 1080
با نام کاربری یوزر و پسورد، دستور به صورت زیر خواهد بود:
curl -x "socks5://user:pass@127.0.0.1:1080" "http://example.com"
با استفاده از --socks
گزینه
علاوه بر گزینه x می توانید استفاده کنید --socks5
(یا --socks4
برای SOCKS4) پروتکل پروکسی را به صراحت مشخص کنید. در اینجا نحو برای SOCKS5 آمده است:
curl --socks5 "127.0.0.1:1080" "http://example.com"
این رویکرد به ویژه در صورتی مفید است که بخواهید هنگام کار با چندین نوع پراکسی از سردرگمی جلوگیری کنید.
استفاده از پراکسیهای SOCKS با cURL زمانی عالی است که به انعطافپذیری بیشتری نیاز دارید و میخواهید انواع مختلف ترافیک از جمله FTP و موارد دیگر را مسیریابی کنید. در بخش بعدی نحوه تنظیم تنظیمات پراکسی با استفاده از متغیرهای محیطی را توضیح خواهیم داد.
تنظیم پراکسی با استفاده از متغیرهای محیطی
شما می توانید با استفاده از متغیرهای محیطی، یک پروکسی برای cURL تنظیم کنید، که برای اعمال یک پروکسی به چندین دستور cURL مفید است.
برای HTTP و HTTPS
برای تنظیم پروکسی برای درخواست های HTTP و HTTPS، از این دستورات در ترمینال خود استفاده کنید:
export http_proxy="http://user:password@proxy_address:port"
export https_proxy="http://user:password@proxy_address:port"
- جایگزین کنید
user:password
با اعتبار پروکسی شما - جایگزین کنید
proxy_address
با IP یا دامنه سرور پروکسی. - جایگزین کنید
port
با شماره پورت پروکسی
مثال:
export http_proxy="http://user:pass@127.0.0.1:1080"
export https_proxy="http://user:pass@127.0.0.1:1080"
نحوه حذف متغیرهای پراکسی
برای توقف استفاده از پروکسی، این دستورات را اجرا کنید:
unset http_proxy
unset https_proxy
با این کار تنظیمات پراکسی برای جلسه جاری حذف می شود.
در بخش بعدی، نحوه پیکربندی cURL را برای استفاده همیشه از پروکسی توضیح خواهیم داد.
پیکربندی cURL برای همیشه از پروکسی استفاده شود
اگر میخواهید cURL همیشه از یک پروکسی استفاده کند بدون اینکه نیازی به تنظیم هر بار آن باشد، میتوانید با ویرایش یک فایل پیکربندی، آن را برای انجام این کار پیکربندی کنید.
برای لینوکس و macOS
- ترمینال را باز کنید و به فهرست اصلی خود بروید:
cd ~
- بررسی کنید که آیا شما یک
.curlrc
فایل اگر نه، یکی ایجاد کنید:
nano .curlrc
- تنظیمات پروکسی خود را در این فایل اضافه کنید:
proxy="http://user:password@proxy_address:port"
- فایل را ذخیره کرده و خارج شوید. اکنون، cURL از تنظیمات پروکسی به طور خودکار برای هر درخواست استفاده می کند.
برای ویندوز
در ویندوز، فایل پیکربندی نامگذاری شده است _curlrc
و در %APPDATA%
دایرکتوری
- خط فرمان را باز کنید و این دستور را اجرا کنید تا مسیر را پیدا کنید:
echo %APPDATA%
-
به مسیر دایرکتوری نشان داده شده بروید و یک فایل با نام ایجاد کنید
_curlrc
. -
در این فایل، تنظیمات پروکسی خود را اضافه کنید:
proxy="http://user:password@proxy_address:port"
- فایل را ذخیره کنید و cURL از پروکسی برای تمام درخواست های بعدی استفاده خواهد کرد.
این روش به ساده کردن استفاده از cURL شما کمک می کند و تضمین می کند که پروکسی شما همیشه تنظیم شده است. در بخش بعدی، نحوه نادیده گرفتن پروکسی برای درخواست های خاص را مورد بحث قرار خواهیم داد.
نادیده گرفتن پروکسی برای درخواست های خاص
ممکن است مواقعی پیش بیاید که بخواهید هنگام استفاده از cURL از پروکسی برای درخواست های خاصی عبور کنید. خوشبختانه، cURL یک راه آسان برای انجام این کار ارائه می دهد.
چگونه پروکسی را نادیده بگیریم
برای دور زدن پروکسی برای یک درخواست خاص، از --noproxy
گزینه این به cURL میگوید که از پروکسی برای URL که مشخص کردهاید استفاده نکند. در اینجا نحوه کار آن آمده است:
curl --noproxy "*" "http://example.com"
در این مثال، *
wildcard تضمین می کند که هیچ پروکسی برای آن استفاده نخواهد شد http://example.com
. این زمانی مفید است که میخواهید با وبسایتهای خاصی ارتباط مستقیم برقرار کنید و در عین حال تنظیمات پراکسی را برای دیگران فعال نگه دارید.
نادیده گرفتن پروکسی برای دامنه های خاص
همچنین می توانید پروکسی دامنه ها یا آدرس های IP خاص را نادیده بگیرید. به عنوان مثال، اگر می خواهید از استفاده از پروکسی برای دامنه خودداری کنید example.com
، می توانید تنظیم کنید --noproxy
گزینه ای مانند این:
curl --noproxy "example.com" "http://example.com"
این از پروکسی برای دامنه استفاده نمی کند example.com
اما از پروکسی برای درخواست های دیگر استفاده می کند.
با استفاده از --noproxy
شما می توانید زمان استفاده از پروکسی و زمان اتصال مستقیم به وب سایت را کنترل کنید. این برای مدیریت اتصالات شبکه شما مهم است.
در بخش بعدی، به چند نکته سریع برای پراکسی ها خواهیم پرداخت.
نکات مدیریت سریع پروکسی
اگر اغلب بین پیکربندی های پراکسی جابجا شوید، مدیریت پراکسی ها می تواند در زمان و تلاش شما صرفه جویی کند. در اینجا چند نکته سریع برای کمک به مدیریت پراکسی ها با cURL وجود دارد
1. پروکسی را به سرعت روشن و خاموش کنید
اگر بین استفاده از پروکسی و عدم استفاده از آن اغلب جابجا می شوید، می توانید در فایل پیکربندی پوسته خود نام مستعار ایجاد کنید. به این ترتیب می توانید با یک دستور پروکسی را روشن و خاموش کنید. به عنوان مثال، می توانید نام مستعار زیر را به خود اضافه کنید .bashrc
یا .zshrc
فایل:
alias proxyon="export http_proxy='http://user:pwd@127.0.0.1:1234'; export https_proxy='http://user:pwd@127.0.0.1:1234'"
alias proxyoff="unset http_proxy; unset https_proxy"
پس از ذخیره فایل، اجرا کنید:
source ~/.bashrc # or source ~/.zshrc
اکنون می توانید با تایپ proxyon به سرعت پروکسی را روشن کرده و با تایپ proxyoff آن را خاموش کنید. این باعث میشود تا در صورت لزوم، تنظیمات پروکسی را تغییر دهید.
2. فقط برای URL های خاص از پروکسی استفاده کنید
اگر می خواهید از پروکسی فقط برای URL های خاصی استفاده کنید، متغیرهای محیط را به طور موقت برای آن جلسه خاص تنظیم کنید.
export http_proxy="http://user:pwd@127.0.0.1:1234"
curl "http://example.com"
این دستور تضمین می کند که پروکسی فقط برای دامنه استفاده می شود example.com
. هنگامی که دیگر به پروکسی نیاز ندارید، به سادگی متغیرها را تنظیم کنید:
unset http_proxy
unset https_proxy
3. اتصال پروکسی را آزمایش کنید
قبل از استفاده از تنظیمات پروکسی خود در تولید، ضروری است. می توانید این کار را با اجرای یک دستور ساده cURL برای بررسی آدرس IP انجام دهید:
curl "https://httpbin.org/ip"
اگر همه چیز به درستی تنظیم شده باشد، باید آدرس IP سرور پروکسی را به جای آدرس خود ببینید.
افکار نهایی
استفاده از پروکسی با cURL یک راه قدرتمند برای پنهان کردن حریم خصوصی، مدیریت ترافیک و دور زدن محدودیتها است. چه با پروکسی های HTTP، HTTPS یا SOCKS کار می کنید، cURL مسیریابی درخواست های خود را از طریق سرورهای مختلف آسان می کند. با قابلیت تنظیم پراکسی ها با استفاده از گزینه های خط فرمان، متغیر محیطی یا فایل های پیکربندی، کنترل کاملی بر نحوه رسیدگی به درخواست های خود دارید.
این راهنما را دنبال کنید و میتوانید در کمترین زمان از cURL با پروکسیها در جریان کاری خود استفاده کنید، که برای اسکراپی وب، اتوماسیون یا حتی درخواستهای ساده API عالی است. پروکسی ها به مخفی کردن IP شما و جلوگیری از محدودیت های جغرافیایی کمک می کنند، بنابراین برای بسیاری از کاربرانی که به مرور ایمن و ناشناس نیاز دارند ضروری هستند. اگر به دنبال ارائه دهنده پروکسی هستید، می توانید سرویس پروکسی هوشمند Crawbase را انتخاب کنید که یکی از بهترین ها در بازار است.
صرف نظر از لینوکس، macOS یا ویندوز، فرآیند یکسان است و با راه اندازی مناسب می توانید پروکسی های خود را مدیریت کنید. همیشه پیکربندی خود را به طور مرتب آزمایش کنید تا مطمئن شوید همه چیز به خوبی کار می کند. کد نویسی مبارک!
سوالات متداول
س. پروکسی در cURL چیست؟
یک پروکسی در cURL یک سرور میانی است که بین رایانه شما و اینترنت قرار می گیرد. با استفاده از یک پروکسی، cURL درخواست های شما را به جای رفتن مستقیم به وب سایت، از طریق سرور پروکسی هدایت می کند. این IP واقعی شما را پنهان می کند، حریم خصوصی را بهبود می بخشد و محدودیت های جغرافیایی را دور می زند.
س. آیا می توانم از cURL با پراکسی SOCKS استفاده کنم؟
بله، میتوانید از cURL با پراکسیهای SOCKS مانند SOCKS4 یا SOCKS5 استفاده کنید. فقط پروتکل مناسب را به دستور cURL خود اضافه کنید socks5://
برای پراکسی های SOCKS5. این هنگام کار با پیکربندیهای شبکهای که به SOCKS نیاز دارند یا با حفظ ناشناس بودن مفید است.
س. چگونه می توانم یک پروکسی پیش فرض برای cURL تنظیم کنم؟
می توانید با استفاده از یک فایل پیکربندی، یک پروکسی پیش فرض برای cURL تنظیم کنید. برای لینوکس و macOS، یک را ایجاد کنید .curlrc
فایل را در فهرست اصلی خود که در آن می توانید جزئیات پروکسی خود را قرار دهید. برای ویندوز، این است _curlrc
در %APPDATA%
دایرکتوری به این ترتیب cURL همیشه از پروکسی استفاده می کند بدون اینکه نیازی به تعیین آن در هر دستور باشد.