SSD Nodes Learn 🎉 VPS $5.50/ماہ سے
تعلیمی Matt Connorتحریر: Matt Connor · اپ ڈیٹ شدہ 2026-08-13

Linux VPS پر Tor Relay کیسے چلائیں؟

Linux VPS پر Tor guard یا middle relay سیٹ اپ کرنے کا مکمل طریقہ۔ Bandwidth accounting، Nyx مانیٹرنگ اور consensus ramp کے مسائل کا حل جانیں تاکہ آپ کا relay درست کام کر سکے۔

Tor relay کا VPS پر کام

Tor relay ایک ایسی مشین پر چلنے والا Tor daemon ہے جس کا public IP address ہو اور یہ دوسرے صارفین کے لیے encrypted ٹریفک کو آگے بھیجتا ہے۔ Directory authorities اسے شائع کرتی ہیں اور Tor clients اس کے ذریعے circuits بناتے ہیں۔ ایک guard یا middle relay ٹریفک کو صرف کسی دوسرے relay تک پہنچاتا ہے، اس لیے یہ کبھی بھی کسی اجنبی کی جانب سے کسی ویب سائٹ سے connection قائم نہیں کرتا۔ یہی وہ واحد حقیقت ہے جس کی وجہ سے اس پر abuse mail موصول نہیں ہوتی، اور یہی وہ وجہ ہے کہ یہ ایک عام VPS کے لیے بہترین شراکت ہے۔

اس کا کام بہت محدود ہے: ایک پیکیج، پندرہ لائنوں کی configuration، ایک firewall rule، اور ایک restart۔ اس گائیڈ کا باقی حصہ وہ ہے جہاں اکثر غلطیاں ہوتی ہیں۔ اس میں metered plan پر bandwidth کا حساب کتاب، اور وہ وجہ شامل ہے جس کی بنا پر ایک مکمل طور پر درست نیا relay ایک ہفتے تک غیر فعال دکھائی دیتا ہے۔

Guard، middle، bridge یا exit: انسٹال کرنے سے پہلے انتخاب کریں

ایک ہی daemon چاروں کردار ادا کرتا ہے۔ آپ کی configuration اور directory authorities یہ طے کرتے ہیں کہ آپ کا کردار کیا ہے۔

  • Middle relay: یہ guard سے ٹریفک وصول کرتا ہے اور اسے دوسرے relay تک پہنچاتا ہے۔ یہ کبھی بھی منزل مقصود (destination site) سے براہ راست رابطہ نہیں کرتا۔ ہر نیا relay یہیں سے شروع ہوتا ہے۔
  • Guard relay: یہ وہی configuration ہے، بس اس پر ایک اضافی flag ہوتا ہے۔ Directory authorities ان relays کو Guard کا flag دیتی ہیں جو کافی عرصے تک تیز اور مستحکم رہیں۔ آپ اس کا انتخاب نہیں کرتے۔ آپ اسے حاصل کرتے ہیں، اور نیچے دی گئی configuration ہی اسے حاصل کرنے کا ذریعہ ہے۔
  • Bridge: ایک ایسا relay جسے جان بوجھ کر public directory سے باہر رکھا جاتا ہے اور ان صارفین کو نجی طور پر دیا جاتا ہے جہاں Tor بلاک ہو۔ یہ چاروں میں سب سے کم ذمہ داری والا کردار ہے: کم bandwidth، کوئی public listing نہیں، اور اگر آپ کا منصوبہ چھوٹا ہے تو یہ پہلا درست قدم ہے۔
  • Exit relay: یہ آخری hop ہے، جو منزل مقصود (destination site) تک کنکشن کھولتا ہے۔ صارف کی ہر درخواست آپ کے IP address سے نکلتی ہے، لہذا abuse کی رپورٹس اور پولیس کی پوچھ گچھ اس شخص تک پہنچتی ہے جس کے نام پر وہ IP address ہوتا ہے۔

Exit وہ کردار ہے جو general-purpose VPS پر نہیں ہونا چاہیے۔ Exit صرف ایسے provider پر چلائیں جس نے پہلے سے اس طرح کی ٹریفک کی اجازت دی ہو، جس کا اپنا IP address ہو اور جس کا abuse contact شائع شدہ ہو۔ زیادہ تر معیاری hosting کی شرائط اس کی ممانعت کرتی ہیں، اور اسے نظر انداز کرنے کا عام نتیجہ سرور کی معطلی اور IP address کا ضیاع ہوتا ہے۔ ایک guard یا middle relay وہی صارف ٹریفک لے جاتا ہے لیکن اس میں اس قسم کا کوئی خطرہ نہیں ہوتا۔

نیچے دی گئی ہر چیز ایک guard/middle relay بناتی ہے۔ ExitRelay 0 وہ لائن ہے جو اسے اسی کردار تک محدود رکھتی ہے۔

شروع کرنے سے پہلے VPS کی ضروریات

Tor Project ریلے کے لیے سخت تقاضے شائع کرتا ہے۔ اگست 2026 تک یہ تقاضے درج ذیل ہیں: ریلے کے لیے ایک public IPv4 ایڈریس، ہر سمت میں کم از کم 10 Mbit/s بینڈوڈتھ (جس میں 16 Mbit/s کی سفارش کی جاتی ہے)، ماہانہ کم از کم 100 GB آؤٹ باؤنڈ ٹریفک، اور 40 Mbit/s سے کم رفتار کے لیے 512 MB RAM یا اس سے زیادہ کے لیے 1 GB RAM۔ اپ ٹائم (uptime) کے لیے کوئی مقررہ اصول نہیں ہے، لیکن جو ریلے دن میں دو گھنٹے سے کم چلتا ہے وہ نیٹ ورک کے لیے بہت کم کارآمد ہوتا ہے۔

10 Mbit/s کا ہندسہ لائن کی صلاحیت کو ظاہر کرتا ہے، نہ کہ سیٹنگ کو۔ آپ کو ایک ایسے پورٹ کی ضرورت ہے جو یہ رفتار فراہم کر سکے۔ آپ ریلے کو اس لائن کا کتنا حصہ استعمال کرنے کی اجازت دیتے ہیں، یہ ایک الگ فیصلہ ہے جو ماہانہ ٹرانسفر الاؤنس کے مطابق کیا جاتا ہے۔ کنفیگریشن کو چھیڑنے سے پہلے اپنے پلان کو پڑھ لیں۔ اگر آپ ابھی بھی سرور کا انتخاب کر رہے ہیں، تو VPS کی ماہانہ اصل قیمت میں یہ بتایا گیا ہے کہ ٹرانسفر الاؤنس کیسے فروخت کیے جاتے ہیں، اور VPS کی حقیقی نیٹ ورک تھرو پٹ کی پیمائش میں یہ دکھایا گیا ہے کہ سیلز پیج پر بھروسہ کرنے کے بجائے iperf3 کے ذریعے لائن کی اصل کارکردگی کیسے معلوم کی جائے۔

سب سے پہلے مشین کو محفوظ (harden) بنائیں۔ ریلے ایک public ایڈریس پر ایک public سروس ہے، اور پبلش ہونے کے چند منٹ کے اندر ہی اس ایڈریس کو اسکین کیا جانے لگتا ہے۔ SSH کو کیز اور سخت sshd کنفیگریشن تک محدود کرنا صرف دس منٹ کا کام ہے اور اسے ریلے کو لائیو کرنے سے پہلے مکمل ہونا چاہیے، بعد میں نہیں۔

Tor Project repository سے Tor انسٹال کریں

تقسیم کار (distribution) کے پیکیج کے بجائے Tor Project کی اپنی apt repository استعمال کریں۔ Relay کا کوڈ مستحکم ریلیز (stable release) کے مقابلے میں تیزی سے اپ ڈیٹ ہوتا ہے، اس لیے اصلاحات سب سے پہلے اس repository میں پہنچتی ہیں جبکہ تقسیم کار کے پیکیجز ریلیز کے درمیان پیچھے رہ جاتے ہیں۔

sudo apt update
sudo apt install -y apt-transport-https gnupg wget

پہلے signing key شامل کریں، پھر repository کا اندراج کریں۔ Codename خودکار طور پر مشین سے پڑھ لیا جاتا ہے، لہذا یہی بلاک Ubuntu 24.04 (noble) اور Debian 13 (trixie) دونوں پر کام کرتا ہے۔

wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc \
  | gpg --dearmor \
  | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null

CODENAME=$(. /etc/os-release && echo "$VERSION_CODENAME")
echo "$CODENAME"

sudo tee /etc/apt/sources.list.d/tor.sources >/dev/null <<EOF
Types: deb deb-src
URIs: https://deb.torproject.org/torproject.org/
Suites: $CODENAME
Components: main
Signed-By: /usr/share/keyrings/deb.torproject.org-keyring.gpg
EOF

sudo apt update
sudo apt install -y tor deb.torproject.org-keyring
tor --version

tor --version اس ورژن کو پرنٹ کرتا ہے جو آپ نے ابھی انسٹال کیا ہے۔ اگر apt update نے اس کے بجائے NO_PUBKEY ایرر دیا ہے، تو اس کا مطلب ہے کہ dearmored key اس پاتھ پر موجود نہیں ہے جو Signed-By: لائن میں درج ہے، لہذا apt کے پاس release فائل کو چیک کرنے کے لیے کوئی key نہیں ہے۔ deb.torproject.org-keyring پیکیج بعد کے مراحل کے لیے اہم ہے: یہ signing key کو ایک عام پیکیج کے طور پر فراہم کرتا ہے، تاکہ جب وہ key تبدیل (rotate) ہو تو apt کا کام جاری رہے۔

خودکار اپ گریڈز (automatic upgrades) کو آن کریں، پھر انہیں نئے origin کے بارے میں بتائیں۔

sudo apt install -y unattended-upgrades apt-listchanges

Ubuntu پر، Tor origin کو /etc/apt/apt.conf.d/50unattended-upgrades میں موجود Allowed-Origins بلاک میں شامل کریں:

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}-security";
        "TorProject:${distro_codename}";
};

Debian پر اسی فائل میں Origins-Pattern استعمال ہوتا ہے، جہاں شامل کی جانے والی لائن "origin=TorProject"; ہے۔ نتیجے کو sudo unattended-upgrade --debug --dry-run کے ساتھ چیک کریں، جو ان origins کو پرنٹ کرتا ہے جن پر یہ عمل کرے گا اور کچھ بھی تحریر نہیں کرتا۔

وہ torrc جو اہم ہے

یہ پیکیج ایک طویل اور تفصیلی تبصروں والی /etc/tor/torrc فائل انسٹال کرتا ہے۔ ایک relay کے لیے صرف چند لائنیں اہم ہیں۔ انہیں فائل کے آخر میں شامل کریں۔

Nickname mynicerelay
ContactInfo relay-ops[at]example.com
ORPort 9001
ExitRelay 0
SocksPort 0

Nickname کی لمبائی 1 سے 19 حروف تک ہو سکتی ہے، جس میں صرف حروف اور اعداد شامل ہوں۔ یہ نیٹ ورک پر منفرد نہیں ہوتا اور یہ آپ کی شناخت نہیں ہے، بلکہ fingerprint آپ کی شناخت ہے۔ یہ وہ نام ہے جس سے آپ سرچ باکس میں اپنا relay تلاش کریں گے، لہذا ایسا نام منتخب کریں جسے آپ فون پر آسانی سے بتا سکیں۔

ContactInfo کو relay descriptor میں شائع کیا جاتا ہے، جو ایک عوامی دستاویز ہے جسے کوئی بھی ڈاؤن لوڈ کر سکتا ہے، اس لیے یہ پتہ scraped ہو جائے گا۔ ایسا ای میل پتہ استعمال کریں جسے آپ 2 سال بعد بھی پڑھ سکیں، اور اگر چاہیں تو اسے obfuscate کر لیں۔ Tor Project کے پاس آپ کے relay کے ساتھ کسی مسئلے کی صورت میں آپ کو مطلع کرنے کا یہی واحد ذریعہ ہے۔

ORPort 9001 وہ پورٹ ہے جس سے دوسرے relays اور کلائنٹس منسلک ہوتے ہیں۔ 9001 ایک روایتی انتخاب ہے۔ پورٹ 443 دوسرا عام انتخاب ہے، کیونکہ کچھ محدود نیٹ ورکس صرف آؤٹ باؤنڈ 443 کی اجازت دیتے ہیں، لہذا وہاں سننے والا relay زیادہ کلائنٹس کے لیے قابل رسائی ہوتا ہے۔ 443 کا انتخاب تبھی کریں جب سرور پر کسی اور چیز کو اس کی ضرورت نہ ہو۔

SocksPort 0 مقامی SOCKS proxy کو بند کر دیتا ہے، جسے ایک relay استعمال نہیں کرتا، اور مشین سے ایک listening socket کو ہٹا دیتا ہے۔ ExitRelay 0 اس ارادے کو فائل میں لکھ دیتا ہے: یہ relay کبھی بھی صارف کی جانب سے کسی منزل سے منسلک نہیں ہوگا، اور بعد میں کنفیگریشن پڑھنے والے کسی بھی شخص کو ڈیفالٹ سیٹنگز سے یہ اندازہ لگانے کی ضرورت نہیں پڑے گی۔

اگر VPS کے پاس IPv6 پتہ ہے، تو دوسری ORPort لائن شامل کریں۔ Tor IPv4 کی طرح کسی بھی IPv6 پتے پر bind نہیں ہو سکتا، اس لیے پتے کو مربع بریکٹ میں لکھیں۔

ORPort 9001
ORPort [2001:db8::1]:9001

1 GB کے VPS پر، MaxMemInQueues 512 MB شامل کریں۔ Tor مشین پر موجود میموری کے مطابق اپنی قطار (queue) کی حد کا فیصلہ کرتا ہے، جو ایک چھوٹے شیئرڈ باکس پر آپ کی ضرورت سے زیادہ ہو سکتی ہے۔ حد خود سیٹ کرنے سے Tor دباؤ کے وقت قطار میں موجود سیلز کو ضائع کر دیتا ہے، جس سے relay محفوظ رہتا ہے، بجائے اس کے کہ وہ اتنا بڑھ جائے کہ kernel پروسیس کو ختم کر دے۔

فائر وال میں ORPort کھولیں

ان باؤنڈ (Inbound) ٹریفک کے لیے، ORPort کا انٹرنیٹ پر کہیں سے بھی قابل رسائی ہونا ضروری ہے۔ آؤٹ باؤنڈ (Outbound) ٹریفک کے لیے، ریلے کو غیر محدود رکھیں: یہ ہزاروں دیگر ریلے کے ساتھ کئی مختلف پورٹس پر کنکشن قائم کرتا ہے، اور آؤٹ باؤنڈ الاؤ لسٹ (allowlist) اسے خاموشی سے ناکارہ بنا دے گی۔

sudo ufw allow 9001/tcp comment 'tor ORPort'
sudo ufw status verbose

اس کے بعد پرووائیڈر کی اپنی نیٹ ورک فائر وال کو چیک کریں۔ بہت سے کنٹرول پینلز ورچوئل مشین کے سامنے ایک پیکٹ فلٹر چلاتے ہیں، اور ufw کے ذریعے شامل کردہ رول وہاں اثر نہیں کرتا، جس کی وجہ سے پورٹ سرور کے اندر سے کھلی اور باہر سے بند دکھائی دیتی ہے۔ اگر آپ ufw میں نئے ہیں، تو ہر VPS پر درکار ufw رولز میں ڈیفالٹ پالیسی اور رولز کے میچ ہونے کی ترتیب کی وضاحت کی گئی ہے۔

اپنے پلان کے مطابق بینڈوڈتھ کا تعین کریں

دستی کتابچہ RelayBandwidthRate کو ایک الگ ٹوکن بکٹ کے طور پر بیان کرتا ہے جو "اس نوڈ پر ریلے شدہ ٹریفک کے لیے اوسط آنے والی بینڈوڈتھ کے استعمال کو مخصوص بائٹس فی سیکنڈ تک، اور اوسط جانے والی بینڈوڈتھ کے استعمال کو اسی قدر تک محدود کرتا ہے"۔ اسے دو بار پڑھیں۔ یہ حد ہر سمت پر الگ الگ لاگو ہوتی ہے۔ 1 Mbit/s پر سیٹ کیا گیا ریلے ایک ہی وقت میں 1 Mbit/s اندر اور 1 Mbit/s باہر منتقل کر سکتا ہے، اور جو فراہم کنندہ دونوں سمتوں کو میٹر کرتا ہے وہ ان کا مجموعہ بل کرتا ہے۔

ChartMonthly traffic at a sustained relay rate, both directions, 30 days
The data behind this chart
[
  {
    "label": "1 Mbit/s",
    "torrc_rate": "125 KBytes",
    "gb_per_day": 21.6,
    "gb_per_month": "648"
  },
  {
    "label": "2 Mbit/s",
    "torrc_rate": "250 KBytes",
    "gb_per_day": 43.2,
    "gb_per_month": "1,296"
  },
  {
    "label": "5 Mbit/s",
    "torrc_rate": "625 KBytes",
    "gb_per_day": 108,
    "gb_per_month": "3,240"
  },
  {
    "label": "10 Mbit/s",
    "torrc_rate": "1250 KBytes",
    "gb_per_day": 216,
    "gb_per_month": "6,480"
  },
  {
    "label": "20 Mbit/s",
    "torrc_rate": "2500 KBytes",
    "gb_per_day": 432,
    "gb_per_month": "12,960"
  }
]

وہ 5 قطاریں حسابی ہیں، پیمائش نہیں: وہ دکھاتی ہیں کہ اگر ریلے اسے پورے 30 دنوں تک دونوں سمتوں میں برقرار رکھے تو ریٹ کی قیمت کیا ہوگی۔ ایک حقیقی ریلے زیادہ تر وقت اپنی حد سے نیچے رہتا ہے، خاص طور پر ابتدائی ہفتوں میں۔ ٹیبل کا استعمال ان سیٹنگز کو خارج کرنے کے لیے کریں جو فٹ نہیں ہو سکتیں، نہ کہ گیگا بائٹ تک انوائس کی پیش گوئی کرنے کے لیے۔

1 Mbit/s فی سمت پر ایک ریلے روزانہ تقریباً 21.6 GB منتقل کرتا ہے، لہذا 30 دن کا مہینہ تقریباً 648 GB میٹرڈ ٹریفک کی قیمت رکھتا ہے۔ یہ 1 TB الاؤنس کے اندر فٹ بیٹھتا ہے جس میں اپ ڈیٹس اور بیک اپ کے لیے جگہ باقی رہتی ہے۔ 2 Mbit/s تک بڑھیں تو مہینے کی قیمت 1,296 GB ہوتی ہے، جو پہلے ہی 1 TB پلان سے تجاوز کر چکی ہے۔ آخری قطار، 20 Mbit/s، کو ماہانہ 12,960 GB کی ضرورت ہوتی ہے اور یہ ایک ان میٹرڈ پورٹ پر ہونی چاہیے۔ اگر آپ کا فراہم کنندہ صرف آؤٹ باؤنڈ ٹریفک کا بل لیتا ہے، تو ہر عدد کو آدھا کر دیں۔ ریٹ سیٹ کرنے سے پہلے معلوم کریں کہ آپ کے پاس کون سا پلان ہے، کیونکہ دونوں جوابات میں دو گنا کا فرق ہوتا ہے۔

اب کنفیگریشن کی باری ہے۔ پہلے ریٹ لمٹ، پھر کوٹہ۔

RelayBandwidthRate 125 KBytes
RelayBandwidthBurst 250 KBytes
AccountingMax 400 GBytes
AccountingRule sum
AccountingStart month 1 00:00

RelayBandwidthBurst ٹوکن بکٹ کا سائز ہے، لہذا یہ اوسط برقرار رہنے کے دوران ریٹ سے اوپر مختصر اسپائکس کی اجازت دیتا ہے۔ ریٹ سے تقریباً دو گنا ایک معقول قدر ہے۔

AccountingRule وہ لائن ہے جسے زیادہ تر آپریٹرز نظر انداز کر دیتے ہیں۔ ڈیفالٹ max ہے، جو کوٹے کے مقابلے میں دونوں سمتوں میں سے بڑی سمت کی پیمائش کرتا ہے۔ ڈیفالٹ کے ساتھ، AccountingMax 400 GBytes 400 GB اندر اور 400 GB باہر کی اجازت دیتا ہے، جو کہ دونوں کو شمار کرنے والے میٹر پر 800 GB بنتا ہے۔ AccountingRule sum ریڈ اور رائٹ کو ایک کوٹے کے خلاف شمار کرتا ہے، جو کہ ٹرانسفر الاؤنس درحقیقت ماپتا ہے۔

AccountingStart بھی لکھیں، کبھی بھی AccountingMax کو اکیلے نہ لکھیں۔ کوٹہ وہ عدد ہے، اور سٹارٹ لائن وہ مدت ہے جس پر یہ ری سیٹ ہوتا ہے۔ بغیر مدت کے کوٹہ ریلے کو ہائبرنیشن میں چھوڑ دیتا ہے اور اسے واپس لانے کے لیے کچھ نہیں بچتا۔

ہائبرنیشن ایک سخت اقدام ہے۔ جب کوٹہ ختم ہو جاتا ہے، تو tor اسے لاگ کرتا ہے اور کام لینا بند کر دیتا ہے:

Bandwidth soft limit reached; commencing hibernation. No new connections will be accepted

ریلے اگلی مدت کے عین آغاز پر بھی بیدار نہیں ہوتا۔ Tor ٹریک کرتا ہے کہ اس نے پچھلا کوٹہ کتنی تیزی سے ختم کیا اور نئے وقفے کے اندر ایک بے ترتیب پوائنٹ کا انتخاب کرتا ہے، تاکہ ہزاروں ریلے ایک ہی سیکنڈ میں نیٹ ورک پر واپس نہ آئیں۔ ایک ریلے جو ہر مہینے کے آخری ہفتے کے لیے غائب ہو جاتا ہے، وہ اس استحکام کو کھو دیتا ہے جس پر ڈائریکٹری اتھارٹیز اس کی پیمائش کرتی ہیں۔ RelayBandwidthRate کا سائز اس طرح رکھیں کہ حد کبھی نہ پہنچے، اور AccountingMax کو اس بیک اسٹاپ کے طور پر رکھیں جو انوائس کی حفاظت کرتا ہے۔

Relay کو شروع کریں اور اس کی رسائی کی تصدیق کریں

sudo systemctl restart tor@default
sudo systemctl status tor@default
sudo journalctl -u tor@default -n 50

چند منٹ کے اندر log میں یہ لائن ظاہر ہونی چاہیے:

Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor.

اس جملے کا مطلب ہے کہ دوسرے relays نے آپ کے ORPort سے رابطہ قائم کیا ہے اور اس کے ذریعے ایک circuit بنایا ہے۔ جب تک یہ ظاہر نہیں ہوتا، آپ کا relay directory میں شامل نہیں ہے اور کوئی ٹریفک منتقل نہیں کر رہا۔ ناکامی کی صورت میں پیغام کچھ یوں ہوتا ہے:

Your server has not managed to confirm reachability for its ORPort(s) at 203.0.113.10:9001. Relays do not publish descriptors until their ORPort and DirPort are reachable. Please check your firewalls, ports, address, /etc/hosts file, etc.

اسے ترتیب وار حل کریں۔ چیک کریں کہ آیا ORPort ufw میں کھلا ہے۔ کیا یہ فراہم کنندہ (provider) کے الگ network firewall میں بھی کھلا ہے؟ کیا اس پیغام میں موجود ایڈریس وہی ہے جس پر انٹرنیٹ آپ تک پہنچتا ہے، نہ کہ NAT سیٹ اپ کا کوئی نجی (private) ایڈریس؟ کسی دوسری مشین سے nc -vz 203.0.113.10 9001 کے ذریعے port کو ٹیسٹ کریں۔ Tor خود بخود self-test کو دہراتا ہے، لہذا firewall ٹھیک کرنے پر اسے آپ کی مدد کے بغیر معلوم ہو جائے گا، اور restart کرنے سے یہ فوری طور پر ہو جاتا ہے۔

آپ کے relay کی مستقل شناخت اس کا fingerprint ہے:

sudo cat /var/lib/tor/fingerprint

descriptor شائع ہونے کے تقریباً تین گھنٹے بعد، relay Relay Search پر ظاہر ہو جاتا ہے۔ nickname تلاش کریں یا fingerprint پیسٹ کریں۔ وہ صفحہ بتاتا ہے کہ نیٹ ورک آپ کے relay کے بارے میں کیا رائے رکھتا ہے: اس کے پاس کون سے flags ہیں، authorities اسے کیا وزن (weight) دیتی ہیں، اور یہ کون سا ورژن شائع کر رہا ہے۔

نیا Tor relay تقریباً کوئی ٹریفک کیوں نہیں اٹھاتا؟

اس کی وجہ یہ ہے کہ نیٹ ورک نے ابھی تک اس کی پیمائش نہیں کی ہے، اور پیمائش میں ہفتوں لگتے ہیں۔ Tor Project اس عمل کو چار مراحل میں بیان کرتا ہے، اور جو آپریٹر اسے نہیں پڑھتا وہ یہ نتیجہ اخذ کر لیتا ہے کہ relay خراب ہے اور چیزوں کو تبدیل کرنا شروع کر دیتا ہے۔

پہلے تین دنوں تک relay غیر پیمائش شدہ (unmeasured) رہتا ہے۔ یہ اپنے خود کے ٹیسٹ کے نتائج رپورٹ کرتا ہے، اور directory authorities ویسے بھی شائع شدہ وزن (weight) کو 20 KB تک محدود رکھتی ہیں، اس لیے کلائنٹس اسے تقریباً کبھی منتخب نہیں کرتے۔ تقریباً تیسرے دن سے آٹھویں دن تک bandwidth authorities اس کی حقیقی پیمائش کرتی ہیں اور وزن بڑھتا ہے، لیکن اسے صرف middle hop کے طور پر استعمال کیا جاتا ہے، کیونکہ کوئی بھی کلائنٹ کسی بالکل نئے relay کو اپنا پہلا hop بنانے کے لیے تیار نہیں ہوتا۔

آٹھویں دن کے قریب relay Guard فلیگ کے لیے اہل ہو جاتا ہے۔ یہ فلیگ ملنے پر ٹریفک کم ہو جاتی ہے، جو سب کو حیران کر دیتا ہے: کلائنٹس middle hops کا انتخاب کرتے وقت guards کو چھوڑ دیتے ہیں، یہ فرض کرتے ہوئے کہ ایک guard پہلے ہی مصروف ہے، لہذا relay کو guard ٹریفک ملنے سے پہلے middle ٹریفک کا نقصان اٹھانا پڑتا ہے۔ یہ تب ہی دوبارہ بھرتا ہے جب کلائنٹس اپنے guard سیٹس کو تبدیل کرتے ہیں، جس میں ہفتوں لگتے ہیں۔ تقریباً 68 ویں دن تک یہ ایک مستحکم حالت (steady state) تک پہنچ جاتا ہے، جہاں اسے چھوڑنے والے کلائنٹس اور اسے شامل کرنے والے کلائنٹس کا توازن برابر ہو جاتا ہے۔

لہذا، ایماندارانہ توقع یہ ہے کہ تین دن تک کچھ نہیں ہوگا، ایک ہفتے بعد کچھ ٹریفک آئے گی، اور دو ماہ بعد حقیقی بوجھ پڑے گا۔ ایک سیٹنگ تبدیل کریں، پھر یہ دیکھنے کے لیے ایک ہفتہ انتظار کریں کہ اس نے کیا کیا۔ ایک self-hosted Uptime Kuma اسٹیٹس پیج جس میں port 9001 کے خلاف TCP چیک ہو، اعصابی توانائی کا بہتر استعمال ہے: یہ اس سوال کا جواب دیتا ہے جسے آپ حقیقت میں کنٹرول کر سکتے ہیں، یعنی یہ کہ آیا port ابھی بھی جواب دے رہا ہے یا نہیں۔

nyx کے ساتھ relay کی نگرانی

nyx چلتے ہوئے relay کے لیے ایک ٹرمینل مانیٹر ہے۔ یہ tor کے control port سے رابطہ کرتا ہے، لہذا پہلے torrc میں اسے فعال کریں:

ControlPort 9051
CookieAuthentication 1
CookieAuthFileGroupReadable 1

ControlPort صرف 127.0.0.1 پر listen کرتا ہے، اور cookie authentication کا مطلب ہے کہ کسی پروگرام کو کمانڈز جاری کرنے سے پہلے ایک خفیہ فائل پڑھنی ہوگی۔ Tor اس کوکی کو /run/tor/control.authcookie میں debian-tor صارف کے طور پر لکھتا ہے، جس کا موڈ 600 ہوتا ہے، تاکہ کوئی اور اسے نہ پڑھ سکے۔ CookieAuthFileGroupReadable 1 اسے گروپ کے لیے کھول دیتا ہے، جس سے آپ کا اپنا اکاؤنٹ sudo کے بغیر nyx چلا سکتا ہے۔

sudo apt install -y nyx
sudo adduser "$USER" debian-tor
sudo systemctl restart tor@default

لاگ آؤٹ کر کے دوبارہ لاگ ان کریں، پھر nyx چلائیں۔ نئے گروپ کا اطلاق لاگ ان کے وقت ہوتا ہے، لہذا اسی شیل سیشن میں nyx چلانے سے کوکی فائل پر permission error آئے گا حالانکہ کنفیگریشن درست ہے۔ nyx لائیو بینڈوڈتھ، اپ ٹائم، لاگ اسٹریم اور کنکشن لسٹ دکھاتا ہے۔ ابتدائی ہفتوں میں جس نمبر پر نظر رکھنی ہے وہ بینڈوڈتھ گراف ہے جو آپ کے RelayBandwidthRate سے نیچے رہنا چاہیے۔

ایک سے زیادہ ریلے چلانا: MyFamily اور فیملی کیز

اگر آپ صرف ایک ریلے چلا رہے ہیں تو اس حصے کو چھوڑ دیں۔ ایک ہی آپریٹر کے زیر انتظام دو یا دو سے زیادہ ریلے کو ایک دوسرے کا اعلان کرنا چاہیے، تاکہ کلائنٹس کبھی ایسا سرکٹ نہ بنائیں جو آپ کی مشینوں کے ذریعے داخل ہو اور نکلے، کیونکہ اس سے ایک ہی آپریٹر کو سرکٹ کے دونوں سرے دیکھنے کا موقع مل سکتا ہے۔

اس کا روایتی طریقہ ہر ریلے کی torrc فائل میں MyFamily استعمال کرنا ہے، جس میں باقی تمام ریلے کے فنگر پرنٹس درج کیے جاتے ہیں:

MyFamily AAAAAAAAAA,BBBBBBBB

ہر ریلے دوسرے تمام ریلے کی فہرست رکھتا ہے، لہذا چوتھا ریلے شامل کرنے کا مطلب چار فائلوں میں ترمیم کرنا ہے۔ Tor 0.4.9 نے اس کی جگہ ایک فیملی کی (family key) متعارف کرائی ہے۔ ایک کی (key) جنریٹ کریں اور پھر اسے شیئر کریں:

tor --keygen-family myfamily

یہ کمانڈ myfamily.secret_family_key فائل لکھتی ہے اور ایک FamilyId لائن پرنٹ کرتی ہے۔ کی فائل کو ہر ریلے پر کاپی کریں، اسے DataDirectory کے keys سب ڈائریکٹری میں رکھیں (Debian اور Ubuntu پر یہ /var/lib/tor/keys ہے)، اور اس بات کو یقینی بنائیں کہ فائل کا لاحقہ (suffix) .secret_family_key رہے۔ پرنٹ شدہ FamilyId لائن کو ہر torrc فائل میں شامل کریں اور sudo systemctl reload tor@default کے ساتھ ری لوڈ کریں۔ فی الحال MyFamily فہرست کو بھی اپنی جگہ رہنے دیں۔ جو کلائنٹس ابھی تک فیملی سرٹیفکیٹس کو نہیں سمجھتے وہ پرانی فہرست پڑھتے رہیں گے، اور Tor Project اس وقت کا اعلان کرے گا جب اسے ہٹایا جا سکتا ہے۔

چلنے کے بعد کیا چیز خراب ہوتی ہے

ورژن پرانا ہو جاتا ہے۔ Unattended upgrades پیکیج کو تبدیل کر دیتے ہیں، لیکن چلنے والا عمل (process) اسی بائنری کو استعمال کرتا رہتا ہے جس سے وہ شروع ہوا تھا، جب تک کہ کوئی چیز اسے دوبارہ شروع نہ کر دے۔ سرور پر موجود tor --version کا موازنہ relay کی Relay Search page پر دکھائے گئے ورژن سے کریں۔ اگر وہ مختلف ہوں، تو نیٹ ورک اب بھی پرانا ورژن دیکھ رہا ہے، لہذا سروس کو restart کریں۔

گھڑی کا وقت آگے پیچھے ہو جاتا ہے۔ Consensus دستاویزات اور سرٹیفکیٹس وقت کے پابند ہوتے ہیں، اس لیے ایسی مشین جس کی گھڑی بہت زیادہ آگے یا پیچھے ہو، وہ consensus کو مسترد کر دیتی ہے اور ڈیٹا پبلش کرنا بند کر دیتی ہے۔ timedatectl کو سسٹم کلاک کے ہم آہنگ (synchronized) ہونے کی اطلاع دینی چاہیے۔ اگر ایسا نہ ہو، تو systemd-timesyncd کو فعال کریں یا chrony انسٹال کریں۔

IP ایڈریس تبدیل ہو جاتا ہے۔ ڈیسکرپٹر میں ایڈریس موجود ہوتا ہے، اور کلائنٹس اس ایڈریس تک نہیں پہنچ سکتے جو تبدیل ہو چکا ہو۔ کسی بھی پرووائیڈر کی منتقلی یا ایڈریس کی تبدیلی کے بعد، tor کو restart کریں اور دوبارہ self-test لائن کے ظاہر ہونے کا انتظار کریں۔

relay کی رفتار منصوبے سے کم ہے۔ جدید پروسیسرز پر Tor کی relay کرپٹو موثر ہے، اور Tor Project کے مطابق AES-NI سپورٹ والا CPU ہر سمت میں تقریباً 400 سے 450 Mbit/s کی رفتار دیتا ہے۔ اس حد تک پہنچنے سے بہت پہلے آپ پورٹ کی رفتار اور ٹرانسفر الاؤنس کی وجہ سے محدود ہو جاتے ہیں، یہی وجہ ہے کہ ہارڈویئر سے زیادہ اوپر دیا گیا اکاؤنٹنگ سیکشن اہم ہے۔

FAQ

Tor relay کتنی bandwidth استعمال کرتا ہے؟

اتنی ہی جتنی آپ اجازت دیں، اس سے زیادہ نہیں۔ RelayBandwidthRate ہر سمت میں relay ہونے والے ٹریفک کو الگ الگ محدود کرتا ہے، لہذا 1 Mbit/s پر سیٹ کیا گیا relay ایک ہی وقت میں 1 Mbit/s اندر اور 1 Mbit/s باہر بھیج سکتا ہے۔ یہ تقریباً 21.6 GB یومیہ، یا 30 دن کے مہینے میں 648 GB بنتا ہے، جس میں دونوں سمتوں کا ٹریفک شامل ہے۔ اس شرح کے نیچے ایک سخت ماہانہ کوٹہ شامل کرنے کے لیے AccountingMax کے ساتھ AccountingRule sum کا استعمال کریں۔

کیا Tor relay چلانے سے مجھے abuse کی شکایات موصول ہوں گی؟

ایک guard یا middle relay ٹریفک کو صرف دوسرے Tor relays تک پہنچاتا ہے اور صارف کے لیے کبھی کسی ویب سائٹ سے براہ راست رابطہ نہیں کرتا، اس لیے Tor کے ذریعے کسی کے کیے گئے کام کی شکایات exit آپریٹر کو جاتی ہیں، آپ کو نہیں۔ آپ کو صرف scanning اور کبھی کبھار IP reputation لسٹنگ نظر آ سکتی ہے، کیونکہ یہ ایڈریس عوامی طور پر relay کے طور پر درج ہوتا ہے۔ Exit relays وہ ہوتے ہیں جنہیں abuse کی ای میلز اور قانونی نوٹس موصول ہوتے ہیں، اور انہیں ایسے پرووائیڈر کی ضرورت ہوتی ہے جس نے پہلے سے اسے سنبھالنے پر اتفاق کیا ہو۔ کسی بھی قسم کا relay شروع کرنے سے پہلے اپنے پرووائیڈر کی شرائط پڑھ لیں۔

میرا نیا Tor relay ٹریفک کیوں حاصل نہیں کر رہا؟

کیونکہ نئے relays کو ڈیزائن کے مطابق اس وقت تک محدود (throttle) رکھا جاتا ہے جب تک ان کی پیمائش نہ ہو جائے۔ پہلے تین دنوں تک directory authorities شائع شدہ وزن کو 20 KB تک محدود رکھتی ہیں، اس لیے کلائنٹس تقریباً کبھی بھی اس relay کا انتخاب نہیں کرتے۔ Bandwidth authorities تقریباً تیسرے دن سے اس کی پیمائش کرتی ہیں، یہ آٹھویں دن کے قریب Guard flag کے لیے اہل ہو جاتا ہے، اور اس موقع پر ٹریفک دوبارہ کم ہو جاتا ہے کیونکہ کلائنٹس middle hops کا انتخاب کرتے وقت guards سے گریز کرتے ہیں۔ مکمل لوڈ تقریباً 68 ویں دن تک پہنچتا ہے۔ تصدیق کریں کہ لاگ میں "Self-testing indicates your ORPort is reachable from the outside" نظر آ رہا ہے، پھر اسے ایسے ہی چھوڑ دیں۔

کیا میں 1 TB ٹرانسفر الاؤنس والے VPS پر Tor relay چلا سکتا ہوں؟

جی ہاں، ہر سمت میں تقریباً 1 Mbit/s پر، جو کہ RelayBandwidthRate 125 KBytes ہے۔ اگر آپ کا پرووائیڈر دونوں سمتوں کو شمار کرتا ہے تو یہ تقریباً 648 GB ماہانہ بنتا ہے، جس میں اپ ڈیٹس اور بیک اپس کے لیے گنجائش موجود رہتی ہے۔ AccountingMax 400 GBytes کے ساتھ AccountingRule sum اور AccountingStart month 1 00:00 شامل کریں تاکہ پلان سے تجاوز کرنے کے بجائے relay ہائبرنیشن (hibernation) میں چلا جائے۔ اگر پرووائیڈر صرف آؤٹ باؤنڈ ٹریفک کا بل لیتا ہے، تو آپ اس شرح کو دوگنا کر سکتے ہیں۔

اگر میں صرف ایک relay چلا رہا ہوں تو کیا مجھے MyFamily سیٹ کرنے کی ضرورت ہے؟

نہیں۔ Family کے اعلانات اس لیے ہوتے ہیں تاکہ کلائنٹس ایک ہی آپریٹر کی ملکیت والے دو relays کے ذریعے سرکٹ بنانے سے گریز کریں، جو ایک relay کے ساتھ بے معنی ہے۔ جیسے ہی آپ دوسرا relay شامل کریں اسے سیٹ کریں: ہر relay کی MyFamily لائن میں ہر relay کا fingerprint درج کریں، یا وہ family key استعمال کریں جو Tor 0.4.9 میں متعارف کرائی گئی تھی، جو ایک بڑھتی ہوئی فہرست کے بجائے ایک ہی FamilyId تقسیم کرتی ہے۔