زنجیره پراکسی ها

استفاده از چندین سرور به صورت زنجیره پشت سر هم

به صورت عمومی، استفاده از ارتباط مستقیم کاربر با سرور اصلی توصیه نمیشود. این کار باعث امنیت پایین و تشخیص زود هنگام سرور شما توسط فیلترچی و ربات ها میشود.

پرکاربرد ترین پراکسی ها

خود نرم افزار xray به عنوان یک پراکسی قوی با امکانات زیاد برای پنهان شدن از دید فیلترچی استفاده میشود. به دلیل استفاده زیاد از این نرم افزار، فیلترچی به دنبال شناسایی و فیلترکردن ارتبطات با این سرورهاست. برای اینکه سرور اصلی از گزند فیلترچی در امان بماند، بهتر است از ترکیب یک یا چند پراکسی دیگر استفاده کرد.

۱. سرویس‌های ابری

سرویس های ابری امروزه به عنوان یکی از پر کاربرد ترین روشها برای افزایش امنیت، سرعت و راحتی وب سایت ها به کار میرود. شما میتوانید با پنهان کردن سرور خود پشت این سرویس ها به مخفی سازی سرور اصلی کمک کنید.

۲. سرور پراکسی محلی

با استفاده از یک نرم افزار پراکسی نظیر nginx و یا HAproxy روی یک سرور محلی میتوانید ترافیک کاربران را به جای ارسال مستقیم به خارج، به سرور محلی بفرستید. این ترکیب نیاز به داشتن اطلاعات کافی برای تنظیم این نرم افزارها دارد.

۳. استفاده از Port forward

با استفاده از نرم افزار iptables در لینوکس، شما میتوانید از ویژگی port forward استفاده کنید.

برای این کار باید از دیتاسنترهای محلی سرور تهیه کنید و تنظیمات زیر را روی سرور اعمال کنید:

توضیح: آدرس فرضی a.b.c.d برای آدرس IP سرور خارج درنظر گرفته شده. لطفا با آدرس واقعی تعویض شود.

iptables -A PREROUTING -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A PREROUTING -p icmp -j ACCEPT
iptables -A PREROUTING -j DNAT --to-destination a.b.c.d
  1. دستور اول پورت ssh را برای دسترسی به سرور محلی استثنا میکند.
  2. دستور دوم برای عدم ارسال ping به سرور خارج استفاده شده.
  3. دستور سوم بقیه درخواست ها را به آدرس سرور خارج ارسال میکند

۴. استفاده از dokodemo-door

این مدل میتواند تا حدودی بهتر از مدل قبلی کار کند، ولی از نظر نوع کارکرد مشابه هستند.

تفاوت اصلی این روش این است که ترافیک دریافت شده قابلیت گذر از تنظیمات مسیریابی xray را دارد و میتوان با x-ui تمامی عملیات ها را با پنل وب انجام داد.

برای اینکار میبایست روی سرور محلی سرور xray و یا x-ui را نصب کرده و برای هر سرویس یک dokodemo-door با پورت مجزا تعیین کنید. در تنظیم زیر پورت ۸۴۴۳ سرور محلی به پورت ۸۴۴۳ از سرور خارج ارسال میشود:

    {
      "listen": null,
      "port": 8443,
      "protocol": "dokodemo-door",
      "settings": {
        "address": "a.b.c.d",
        "port": 8443,
        "network": "tcp",
        "followRedirect": false,
      }
    }

تنظیم مشابه در x-ui:

۵. زنجیره xray

یکی از قابلیت های فوق العاده نرم افزارهای v2ray/xray امکان اتصال به به سرور دیگر و تشکیل زنجیره پراکسی هاست. به طور کلی، دو بخش مهم این نرم افزار ها به ایجاد زنجیره کمک میکنند:

  1. inbound: وظیفه دریافت درخواست‌ها را دارد
  2. outbound: وظیفه ارسال درخواست‌ها را دارد

در واقع نرم افزار سمت کاربر هم از همین متد برای اتصال استفاده میکند. سپس تمام ترافیک را به خروجی (outbound) ارسال میکند. در سرور هدف، ترافیک ورودی (inbound) دریافت شده و به خروجی (outbound) ارسال میشود. این زنجیره ادامه دارد تا اینکه یک سرور که در دنیای اینترنت آزاد قرار دارد، از طریق پروتکل هایی نظیر freedom در بخش outbound خود بتوانند درخواست کاربر اولیه را به سرور مقصد هدایت کنند.

در این میان، نقش بخش هایی نظیر routing برای مسیردهی به درخواست ها باید در نظر گرفته شود.(خطوط آبی در شکل بالا)

برای استفاده از مزایای این روش، میبایست خروجی سرورها به سرور بعدی متصل شود.

نمونه تنظیم بخش خروجی (outbound)در تنظیمات xray:

  "outbounds": [
    {
      "tag": "next_xray",
      "protocol": "vless",
      "settings": {
        "vnext": [
          {
            "address": "a.b.c.d",
            "port": 1443,
            "users": [
              {
                "id": "",
                "encryption": "none"
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "none"
      }
    },
    {
      "protocol": "freedom",
      "settings": {},
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "blocked"
    }
  ],

آخرین تغییرات 2023.09.13: add firewall,fallback,chains (c1f0f49)