اگر شما در لینوکس کار میکنید و نیاز دارید ترافیک را از طریق پروکسی هدایت کنید — برای پارسینگ، نظارت بر قیمتها در بازارها یا کار با چندین حساب — دستورالعملهای استاندارد از اینترنت اغلب کار نمیکنند. برخی فقط مرورگر را توصیف میکنند، برخی دیگر فقط ترمینال را، و هیچجا تصویر کاملی وجود ندارد. در این راهنما تمام روشها را بررسی خواهیم کرد: از یک دستور در ترمینال تا تنظیمات سیستم که تمام ترافیک اوبونتو و دبیان را پوشش میدهد.
کدام نوع پروکسی برای لینوکس انتخاب کنیم
قبل از اینکه به تنظیمات برویم، مهم است که بفهمیم: همه پروکسیها به یک اندازه برای وظایف مختلف مناسب نیستند. ماشینهای لینوکس اغلب برای وظایف خودکار — پارسینگ، نظارت، درخواستهای انبوه — استفاده میشوند و انتخاب نوع پروکسی در اینجا حیاتی است.
| نوع پروکسی | پروتکلها | مناسب برای | ریسک مسدود شدن |
|---|---|---|---|
| پروکسی دیتاسنتر | HTTP, HTTPS, SOCKS5 | پارسینگ، curl، اسکریپتها | متوسط |
| پروکسیهای مسکونی | HTTP, HTTPS, SOCKS5 | بازارها، شبکههای اجتماعی، حسابها | پایین |
| پروکسیهای موبایل | HTTP, SOCKS5 | فیسبوک، اینستاگرام، تیکتاک | حداقل |
برای اکثر وظایف در لینوکس پروکسیهای HTTP/HTTPS یا SOCKS5 مناسب هستند. SOCKS5 ترجیح داده میشود — زیرا در سطح TCP کار میکند و توسط اکثر ابزارها از جمله curl، wget و proxychains پشتیبانی میشود. در ادامه در تمام مثالها از هر دو گزینه استفاده خواهیم کرد.
فرمت دادههای پروکسی
برای تمام تنظیمات زیر به دادهها به فرمت نیاز دارید:
host:port یا host:port:login:password
این دادهها را از ارائهدهنده پروکسی در پنل کاربری خود دریافت میکنید.
تنظیم از طریق متغیرهای محیطی در ترمینال
سریعترین راه برای هدایت ترافیک از طریق پروکسی در لینوکس — تنظیم متغیرهای محیطی است. بیشتر ابزارهای کنسولی (curl، wget، pip، apt و غیره) به طور خودکار این متغیرها را میخوانند و از پروکسی مشخص شده بدون تنظیمات اضافی استفاده میکنند.
تنظیم موقت (فقط برای جلسه جاری)
ترمینال را باز کنید و دستورات زیر را اجرا کنید. مقادیر را با دادههای پروکسی خود جایگزین کنید:
# برای پروکسی HTTP بدون احراز هویت export http_proxy="http://192.168.1.1:3128" export https_proxy="http://192.168.1.1:3128" # برای پروکسی HTTP با نام کاربری و رمز عبور export http_proxy="http://login:[email protected]:3128" export https_proxy="http://login:[email protected]:3128" # برای پروکسی SOCKS5 export http_proxy="socks5://login:[email protected]:1080" export https_proxy="socks5://login:[email protected]:1080" # استثناها — آدرسهایی بدون پروکسی (localhost و شبکه محلی) export no_proxy="localhost,127.0.0.1,::1,192.168.0.0/16"
پس از این دستورات، تمام ابزارها در ترمینال جاری از پروکسی استفاده خواهند کرد. نکته مهم: برخی برنامهها فقط متغیرها را در حروف بزرگ میخوانند. برای احتیاط، دستورات را با حروف بزرگ تکرار کنید:
export HTTP_PROXY="http://login:[email protected]:3128" export HTTPS_PROXY="http://login:[email protected]:3128" export NO_PROXY="localhost,127.0.0.1"
تنظیم دائمی برای کاربر شما
برای اینکه پروکسی به طور خودکار در هر بار ورود به ترمینال اعمال شود، متغیرها را به فایل ~/.bashrc (برای bash) یا ~/.zshrc (برای zsh) اضافه کنید:
# باز کردن فایل در ویرایشگر nano nano ~/.bashrc # در انتهای فایل خطوط زیر را اضافه کنید: export http_proxy="http://login:password@host:port" export https_proxy="http://login:password@host:port" export HTTP_PROXY="http://login:password@host:port" export HTTPS_PROXY="http://login:password@host:port" export no_proxy="localhost,127.0.0.1" # ذخیره: Ctrl+O، Enter، Ctrl+X # اعمال تغییرات بدون راهاندازی مجدد ترمینال: source ~/.bashrc
تنظیم سیستم برای تمام کاربران
اگر لینوکس به عنوان سرور استفاده میشود یا میخواهید پروکسی را برای تمام کاربران سیستم اعمال کنید، متغیرها را به فایل /etc/environment اضافه کنید:
sudo nano /etc/environment # خطوط زیر را اضافه کنید (بدون دستور export!): http_proxy="http://login:password@host:port" https_proxy="http://login:password@host:port" HTTP_PROXY="http://login:password@host:port" HTTPS_PROXY="http://login:password@host:port" no_proxy="localhost,127.0.0.1,::1"
پس از ذخیره فایل، تغییرات در هنگام ورود بعدی به سیستم اعمال خواهد شد. برای اعمال تغییرات بدون راهاندازی مجدد، دستور source /etc/environment را اجرا کنید.
تنظیمات سیستم پروکسی از طریق رابط گرافیکی (GNOME)
اگر از اوبونتو با دسکتاپ GNOME (نصب استاندارد اوبونتو دسکتاپ) استفاده میکنید، میتوانید پروکسی را از طریق رابط گرافیکی بدون هیچ دستوری تنظیم کنید. این برای کسانی که تازه کار با لینوکس را شروع کردهاند، راحت است.
دستورالعمل مرحله به مرحله برای اوبونتو GNOME
- بر روی آیکون در گوشه سمت راست بالای صفحه کلیک کنید → «تنظیمات» (Settings) را انتخاب کنید
- در منوی سمت چپ به پایین اسکرول کنید و «شبکه» (Network) را انتخاب کنید
- در بخش «پروکسی شبکه» بر روی دکمه با علامت فلش (آیکون تنظیمات) کلیک کنید
- حالت پروکسی را انتخاب کنید:
- غیرفعال — پروکسی استفاده نمیشود
- دستی — شما خودتان دادههای پروکسی را وارد میکنید (توصیه میشود)
- بهطور خودکار — از فایل PAC ارائهدهنده استفاده میشود
- «دستی» را انتخاب کنید و فیلدها را پر کنید:
- پروکسی HTTP: آدرس میزبان و پورت را وارد کنید
- پروکسی HTTPS: همان دادهها
- میزبان SOCKS: آدرس و پورت (اگر از SOCKS5 استفاده میکنید)
- میزبانهای نادیدهگرفته شده:
localhost, 127.0.0.0/8
- پنجره را ببندید — تنظیمات بهطور خودکار اعمال میشوند
⚠️ مهم است که بدانید
تنظیمات پروکسی از طریق GNOME فقط برای برنامههایی که تنظیمات سیستم را میخوانند، اعمال میشود: مرورگر GNOME Web، برخی برنامههای GNOME. ابزارهای ترمینالی (curl، wget، apt) این تنظیمات را استفاده نمیکنند — برای آنها به متغیرهای محیطی از بخش قبلی نیاز است. Firefox و Chromium تنظیمات پروکسی خود را دارند.
تنظیم از طریق gsettings (ترمینال + GUI)
اگر میخواهید تنظیمات سیستم پروکسی GNOME را از طریق ترمینال مدیریت کنید (برای مثال، برای اتوماسیون)، از دستور gsettings استفاده کنید:
# فعال کردن حالت دستی پروکسی gsettings set org.gnome.system.proxy mode 'manual' # تنظیم پروکسی HTTP gsettings set org.gnome.system.proxy.http host 'host' gsettings set org.gnome.system.proxy.http port 3128 # تنظیم پروکسی HTTPS gsettings set org.gnome.system.proxy.https host 'host' gsettings set org.gnome.system.proxy.https port 3128 # تنظیم پروکسی SOCKS5 gsettings set org.gnome.system.proxy.socks host 'host' gsettings set org.gnome.system.proxy.socks port 1080 # غیرفعال کردن پروکسی gsettings set org.gnome.system.proxy mode 'none'
پروکسی برای APT — نصب بستهها از طریق پروکسی
مدیر بسته APT (که در اوبونتو و دبیان استفاده میشود) سیستم تنظیم پروکسی خود را دارد که به متغیرهای محیطی وابسته نیست. این بهویژه برای سرورهایی که دسترسی مستقیم به اینترنت ندارند یا برای شبکههای شرکتی مهم است.
روش 1: پروکسی موقت برای یک دستور
# استفاده از پروکسی برای یک دستور apt sudo apt-get -o Acquire::http::Proxy="http://login:password@host:port" update # یا از طریق متغیر محیطی sudo http_proxy="http://login:password@host:port" apt-get update
روش 2: پروکسی دائمی برای APT
یک فایل پیکربندی برای APT ایجاد کنید. این روش برای سرورهایی که پروکسی بهطور دائمی نیاز دارند، توصیه میشود:
# ایجاد فایل پیکربندی sudo nano /etc/apt/apt.conf.d/95proxies # محتوای زیر را اضافه کنید: Acquire::http::Proxy "http://login:password@host:port"; Acquire::https::Proxy "http://login:password@host:port"; Acquire::ftp::Proxy "ftp://login:password@host:port"; # ذخیره و بررسی: sudo apt-get update
اگر پروکسی بدون احراز هویت است، خطوط سادهتر به نظر میرسند: Acquire::http::Proxy "http://host:port";. برای غیرفعال کردن پروکسی برای APT، فقط فایل ایجاد شده را با دستور sudo rm /etc/apt/apt.conf.d/95proxies حذف کنید.
پروکسی برای curl و wget
Curl و wget — ابزارهای اصلی برای کار با درخواستهای HTTP در لینوکس هستند. از آنها برای پارسینگ، تست API، دانلود فایلها استفاده میشود. هر دو ابزار بهطور مستقیم از طریق پارامترهای خط فرمان از پروکسی پشتیبانی میکنند.
Curl با پروکسی
# پروکسی HTTP curl -x http://login:password@host:port https://example.com # پروکسی SOCKS5 curl --socks5 host:port --proxy-user login:password https://example.com # بررسی IP خود از طریق پروکسی curl -x http://login:password@host:port https://api.ipify.org # نادیده گرفتن خطاهای SSL (اگر نیاز است) curl -x http://login:password@host:port -k https://example.com
برای اینکه هر بار پروکسی را مشخص نکنید، تنظیمات را به فایل ~/.curlrc اضافه کنید:
nano ~/.curlrc # خط زیر را اضافه کنید: proxy = "http://login:password@host:port" # اکنون curl همیشه از این پروکسی استفاده میکند: curl https://api.ipify.org
Wget با پروکسی
# از طریق پارامتر خط فرمان wget -e "http_proxy=http://login:password@host:port" https://example.com # تنظیم دائمی در ~/.wgetrc nano ~/.wgetrc # خطوط زیر را اضافه کنید: http_proxy = http://login:password@host:port https_proxy = http://login:password@host:port use_proxy = on
پروکسی برای Firefox و Chromium در لینوکس
مرورگرها در لینوکس تنظیمات پروکسی خود را دارند که بهطور مستقل از تنظیمات سیستم کار میکنند. این برای زمانی که میخواهید فقط در مرورگر از پروکسی استفاده کنید، بدون اینکه ترافیک دیگر را تحت تأثیر قرار دهید، راحت است.
Firefox: تنظیم دستی
- Firefox را باز کنید → بر روی سه خط در گوشه سمت راست بالای صفحه کلیک کنید → «تنظیمات»
- به پایین اسکرول کنید تا به بخش «پروکسی سرور» برسید → بر روی «تنظیم» کلیک کنید
- حالت «تنظیم دستی پروکسی» را انتخاب کنید
- فیلدها را پر کنید:
- پروکسی HTTP: آدرس میزبان، پورت
- تیک «استفاده از این پروکسی سرور برای تمام پروتکلها» را بزنید
- یا بهطور جداگانه SOCKS را مشخص کنید: آدرس، پورت، SOCKS v5 را انتخاب کنید
- بر روی OK کلیک کنید
اگر پروکسی نیاز به احراز هویت داشته باشد، Firefox در اولین درخواست نام کاربری و رمز عبور را درخواست کرده و آنها را به خاطر میسپارد. برای سوئیچ سریع بین چندین پروکسی، افزونه FoxyProxy را نصب کنید — این امکان را میدهد که پروفایلها را ایجاد کرده و با یک کلیک سوئیچ کنید.
Chromium / Google Chrome: راهاندازی با پروکسی
Chromium در لینوکس تنظیمات پروکسی داخلی در رابط کاربری ندارد — از تنظیمات سیستم استفاده میکند. اما میتوانید مرورگر را با پروکسی خاصی از طریق پارامتر خط فرمان راهاندازی کنید:
# راهاندازی Chromium با پروکسی HTTP chromium-browser --proxy-server="http://host:port" # راهاندازی با پروکسی SOCKS5 chromium-browser --proxy-server="socks5://host:port" # راهاندازی با پروکسی و نادیده گرفتن localhost chromium-browser --proxy-server="http://host:port" \ --proxy-bypass-list="localhost;127.0.0.1" # برای Google Chrome، chromium-browser را به google-chrome تغییر دهید google-chrome --proxy-server="socks5://host:port"
💡 نکته برای چندحسابی
اگر چندین حساب را از طریق مرورگر در لینوکس مدیریت میکنید، استفاده از مرورگر معمولی با پروکسی کافی نیست — وبسایتها اثر انگشت مرورگر، کوکیها و سایر پارامترها را ردیابی میکنند. برای چندحسابی کامل از مرورگرهای ضد شناسایی استفاده کنید: Dolphin Anty، AdsPower یا GoLogin — آنها پروفایلهای ایزوله با پروکسیهای جداگانه برای هر حساب ایجاد میکنند.
Proxychains — پروکسی برای هر برنامه بدون پشتیبانی
برخی برنامهها تنظیم پروکسی را نه از طریق متغیرهای محیطی و نه از طریق پارامترهای خود پشتیبانی نمیکنند. در این صورت proxychains به کمک میآید — ابزاری که فراخوانیهای شبکه هر برنامهای را ضبط کرده و آنها را از طریق پروکسی هدایت میکند. این بهویژه برای پارسرهای نوشته شده در Python یا ابزارهای تخصصی مفید است.
نصب proxychains
# اوبونتو / دبیان sudo apt-get update sudo apt-get install proxychains4 # بررسی نصب proxychains4 --version
تنظیم فایل پیکربندی
# باز کردن پیکربندی sudo nano /etc/proxychains4.conf # خط "dynamic_chain" را پیدا کنید — آن را uncomment کنید (علامت # را بردارید): dynamic_chain # "strict_chain" را comment کنید (علامت # را در ابتدای آن اضافه کنید): # strict_chain # در انتهای فایل در بخش [ProxyList] پروکسی خود را اضافه کنید: # فرمت: نوع میزبان پورت [نام کاربری] [رمز عبور] # پروکسی HTTP بدون احراز هویت: http 192.168.1.1 3128 # SOCKS5 با احراز هویت: socks5 host 1080 login password
استفاده از proxychains
پس از تنظیم، فقط proxychains4 را قبل از هر دستور اضافه کنید:
# راهاندازی curl از طریق پروکسی proxychains4 curl https://api.ipify.org # راهاندازی اسکریپت Python از طریق پروکسی proxychains4 python3 parser.py # راهاندازی nmap از طریق پروکسی proxychains4 nmap -sT target.com # باز کردن Firefox از طریق پروکسی proxychains4 firefox
حالت dynamic_chain به این معنی است که اگر یک پروکسی در دسترس نباشد، proxychains سعی میکند به سراغ بعدی برود. این برای زمانی که چندین پروکسی دارید راحت است — همه آنها را به [ProxyList] اضافه کنید و از چرخش خودکار بهرهمند شوید.
چگونه بررسی کنیم که پروکسی کار میکند
پس از تنظیم، حتماً بررسی کنید که آیا ترافیک واقعاً از طریق پروکسی میرود یا نه. در اینجا چند روش سریع وجود دارد:
بررسی از طریق curl
# دانستن IP فعلی بدون پروکسی curl https://api.ipify.org # نتیجه: IP واقعی شما، مثلاً 85.12.34.56 # دانستن IP از طریق پروکسی curl -x http://login:password@host:port https://api.ipify.org # نتیجه باید متفاوت باشد — این IP پروکسی سرور است # اطلاعات بیشتر در مورد IP curl -x http://login:password@host:port https://ipinfo.io/json
بررسی متغیرهای محیطی
# مشاهده متغیرهای پروکسی تنظیم شده env | grep -i proxy # نتیجه مورد انتظار: # http_proxy=http://login:password@host:port # https_proxy=http://login:password@host:port
بررسی در دسترس بودن پروکسی سرور
# بررسی اینکه آیا پورت پروکسی باز و پاسخ میدهد nc -zv host port # برای مثال: nc -zv 192.168.1.1 3128 # اگر nc نصب نشده باشد: telnet host port
✅ چکلیست بررسی پروکسی
- IP در پاسخ curl با IP واقعی شما متفاوت است
- کشور و شهر در ipinfo.io با پروکسی انتخاب شده مطابقت دارد
- هیچ خطای
Connection refusedیا407 Proxy Authentication Requiredوجود ندارد - سرعت اتصال قابل قبول است (از طریق curl با پرچم
-w "%{time_total}"بررسی کنید)
سناریوهای عملی: پارسینگ، نظارت، چندحسابی
به بررسی وظایف خاصی میپردازیم که کاربران معمولاً با آنها مواجه میشوند، در حالی که پروکسی را در لینوکس تنظیم میکنند.
سناریو 1: پارسینگ Wildberries و Ozon از سرور لینوکس
فروشندگان بازارها معمولاً پارسرهای قیمت را بر روی VPS با اوبونتو اجرا میکنند. Wildberries و Ozon به شدت درخواستها را از آدرسهای IP سرور مسدود میکنند. برای دور زدن این حفاظت به پروکسیهای مسکونی نیاز است — آنها به عنوان کاربران خانگی معمولی به نظر میرسند.
طرح پیشنهادی برای تنظیم پروکسی برای پارسینگ بازارها:
- متغیرهای محیطی با دادههای پروکسیهای مسکونی را به فایل
~/.bashrcاضافه کنید - اگر از اسکریپت Python استفاده میکنید — اطمینان حاصل کنید که کتابخانه
requestsمتغیرهای محیطی را میخواند (بهطور پیشفرض میخواند) - برای چرخش IP، چند پروکسی را در proxychains با حالت
dynamic_chainتنظیم کنید - بین درخواستها تأخیر (1-3 ثانیه) اضافه کنید — این ریسک مسدود شدن را کاهش میدهد
- IP را پس از هر 50-100 درخواست با
curl https://api.ipify.orgبررسی کنید
سناریو 2: نظارت بر قیمتهای رقبا در Avito
Avito درخواستها را بر اساس چندین معیار مسدود میکند: فرکانس درخواستها، نوع User-Agent، آدرس IP. برای نظارت بر آگهیها از سرور لینوکس، از رویکرد زیر استفاده کنید:
# مثال درخواست به Avito از طریق پروکسی با هدرهای صحیح curl -x http://login:password@host:port \ -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" \ -H "Accept-Language: ru-RU,ru;q=0.9" \ -H "Accept: text/html,application/xhtml+xml" \ "https://www.avito.ru/moskva/nedvizhimost"
برای Avito بهویژه مهم است که از پروکسی با آدرسهای IP روسی استفاده کنید. پروکسیهای مسکونی با موقعیت جغرافیایی در شهر مورد نظر به شما این امکان را میدهند که آگهیهای مرتبط با منطقه خاصی را ببینید.
سناریو 3: کار با Facebook Ads و Instagram از طریق لینوکس
آربیتراژکنندگان که در لینوکس کار میکنند (اغلب از طریق VPS)، از مرورگرهای ضد شناسایی برای مدیریت حسابهای تبلیغاتی استفاده میکنند. طرح کار به این صورت است:
- Dolphin Anty یا AdsPower را بر روی لینوکس نصب کنید (هر دو نسخه لینوکس دارند)
- برای هر حساب Facebook Ads یک پروفایل مرورگر جداگانه ایجاد کنید
- در تنظیمات هر پروفایل، یک پروکسی جداگانه مشخص کنید
- برای Facebook و Instagram پروکسیهای موبایل توصیه میشوند — آنها IPهای واقعی اپراتورهای موبایل را دارند و ریسک مسدود شدن حداقلی دارند
- پروکسی سیستم لینوکس در اینجا نیاز نیست — مرورگر ضد شناسایی پروکسی را در سطح هر پروفایل مدیریت میکند
مقایسه روشهای تنظیم پروکسی در لینوکس
| روش | پوشش | پیچیدگی | بهتر برای |
|---|---|---|---|
| متغیرهای محیطی | بیشتر ابزارهای CLI | پایین | اسکریپتها، curl، pip |
| GNOME GUI | برنامههای GNOME | پایین | دسکتاپ بدون ترمینال |
| پیکربندی APT | فقط APT | پایین | سرورها در NAT |
| Proxychains | هر برنامهای | متوسط | پارسها، ابزارهای شخص ثالث |
| تنظیمات مرورگر | فقط مرورگر | پایین | کار دستی در مرورگر |
اشتباهات رایج در تنظیم پروکسی در لینوکس
- فقط متغیرهای کوچک — برخی برنامهها فقط
HTTP_PROXY(حروف بزرگ) را میخوانند، برخی دیگر فقطhttp_proxy. هر دو گزینه را تنظیم کنید. - فراموش کردهاید source — پس از تغییر
.bashrcبایدsource ~/.bashrcرا اجرا کنید، در غیر این صورت تغییرات اعمال نخواهد شد. - پروکسی با sudo کار نمیکند — هنگام استفاده از sudo، متغیرهای محیطی کاربر منتقل نمیشوند. از
sudo -Eبرای انتقال متغیرها استفاده کنید. - localhost از طریق پروکسی میرود — همیشه مقادیر
localhost,127.0.0.1را بهno_proxyاضافه کنید. - فرمت URL نادرست — برای پروکسی HTTP حتماً باید پروتکل را مشخص کنید:
http://یاsocks5://.
نتیجهگیری
تنظیم پروکسی در لینوکس اوبونتو و دبیان — وظیفهای است که به چندین روش بسته به هدف شما قابل حل است. برای اکثر وظایف، متغیرهای محیطی کافی هستند: آنها curl، wget، pip و بیشتر اسکریپتها را پوشش میدهند. برای پوشش کامل ترافیک هر برنامهای از proxychains استفاده کنید. برای مرورگر — تنظیمات داخلی یا راهاندازی با پارامتر --proxy-server. برای APT — یک فایل پیکربندی جداگانه.
اصل اصلی: روش را برای وظیفه خاص انتخاب کنید. نیازی نیست پروکسی سیستم را تنظیم کنید اگر فقط به پروکسی برای یک اسکریپت نیاز دارید. و برعکس — اگر تمام ترافیک سرور باید از طریق پروکسی برود، متغیرها را یک بار در /etc/environment تنظیم کنید و فراموش کنید.
اگر از لینوکس برای پارسینگ بازارها، نظارت بر قیمتها یا درخواستهای خودکار استفاده میکنید، به پروکسیهای مسکونی توجه کنید — آنها IPهای واقعی کاربران خانگی دارند که تقریباً تحت مسدودیتها در Wildberries، Ozon و Avito قرار نمیگیرند. برای کار با حسابهای تبلیغاتی Facebook Ads و Instagram از طریق مرورگرهای ضد شناسایی در لینوکس، پروکسیهای موبایل گزینههای مناسبی هستند — ریسک مسدود شدن حداقلی و حداکثر اعتماد از طرف پلتفرمها.