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

تصدیق کریں کہ نمونہ غیر فعالیت میں ختم ہونا ہے

الگ کرنے والی تفصیل وقت ہے۔ اگر الٹا کنکشن گھر کے پیر کے ٹریفک بھیجنے کے فوراً بعد کام کرتا ہے اور خاموش وقفے کے بعد ناکام ہو جاتا ہے، تو راستہ درست ہے اور درمیان کی حالت نہیں۔ اگر یہ کبھی کام نہیں کرتا، ٹریفک کے فوراً بعد بھی نہیں، تو یہ غلط تشخیص ہے۔

sudo wg show wg0 latest-handshakes
sudo wg show wg0 endpoints
sudo wg show wg0 transfer

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

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

keepalive کو راؤٹر کے پیچھے والے پیر پر رکھیں

مستقل keepalive شیڈول کے مطابق چھوٹا تصدیق شدہ پیکٹ بھیج کر NAT میپنگ اور کسی بھی فائر وال کی حالت کو زندہ رکھتے ہیں۔ ترتیب راؤٹر کے پیچھے والی مشین میں، دور کے پیر کے لیے اس کے اندراج میں ہونی چاہیے، کیونکہ اسی طرف کا باہر جانے والا پیکٹ حالت بناتا ہے۔

[Peer]
PublicKey = <cloud peer public key>
AllowedIPs = 10.71.0.1/32
PersistentKeepalive = 25

اسے موجودہ پیر کے حصے میں ضم کریں۔ اسی عوامی کلید کے ساتھ دوسرا بلاک شامل کرنا اختیارات شامل کرنے کا درست طریقہ نہیں ہے، اور wg-quick انہیں آپ کے لیے ضم نہیں کرے گا۔ دستاویز شدہ 25 سیکنڈ ایک مثال ہے جو عام UDP ٹائم آؤٹ سے نیچے رہنے کے لیے چنی گئی، کوئی خاص معنی والی قدر نہیں۔

وہی ہدایت کلاؤڈ کی طرف رکھنے سے اس مسئلے میں مدد نہیں ملتی۔ اس پیر کے پیکٹ پہلے ہی عوامی پتے سے آ رہے ہیں، اس لیے اہم سمت میں بچانے کے لیے کوئی میپنگ نہیں۔ یہ ٹریفک بڑھاتا ہے اور کچھ نہیں بدلتا۔

وقفے کا اندازہ لگانے کے بجائے ٹائمر پڑھیں

keepalive اس لیے کام کرتے ہیں کیونکہ وہ حالت کے ختم ہونے سے زیادہ بار آتے ہیں۔ یہ ٹائم آؤٹ کو وہ عدد بناتا ہے جو آپ کو واقعی درکار ہے، اور Linux پر اسے ترجمہ کرنے والے آلے پر پڑھا جا سکتا ہے:

sysctl net.netfilter.nf_conntrack_udp_timeout
sysctl net.netfilter.nf_conntrack_udp_timeout_stream
sudo conntrack -L -p udp --dport 51820

پہلی قدر ایک ہی سمت میں دیکھے گئے UDP بہاؤ کے لیے ٹائم آؤٹ ہے، اور دوسری جوابات کے مشاہدے کے بعد لاگو ہوتی ہے۔ دونوں عام طور پر مختصر ہوتے ہیں، اور خاموش ہونے والی میپنگ آپ کے بہاؤ پر لاگو ہونے کی پیروی کرے گی۔

اس عدد کا موازنہ اپنے وقفے سے کریں۔ 30 سیکنڈ کے ٹائم آؤٹ کے تحت 25 سیکنڈ کا keepalive کام کرتا ہے؛ وہی keepalive 15 سیکنڈ کے ٹائم آؤٹ کے تحت کام نہیں کرتا۔ کتنی بار بھی دوبارہ کوشش کریں، یہ حساب نہیں بدلتا۔ کچھ صارفین کے راؤٹر اور موبائل آپریٹر Linux کے ڈیفالٹ سے کہیں کم قدریں استعمال کرتے ہیں، اسی لیے ایک نیٹ ورک پر کام کرنے والی ترتیب دوسرے پر ناکام ہو جاتی ہے۔

ObservationWhat it meansReasonable response
Works after traffic, dies when idleMapping or firewall state expiringLower the keepalive interval
Never works, even immediatelyNo return route, listener or firewallStop tuning keepalive
Works for hours, then dies onceCarrier-side translation or address changeCheck the endpoint and logs together

سننے والے اور فائر وال کو الگ الگ جانچیں

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

sudo ss -lntup | grep 8080
sudo wg show wg0 allowed-ips
curl -sS -m 5 http://10.71.0.2:8080/health

اگر ساکٹ صرف طبعی انٹرفیس کے پتے سے بندھا ہے، سرنگ کے پتے سے نہیں، تو سرنگ پر آنے والے پیکٹ فائر وال سے پوچھنے سے پہلے ہی پھینک دیے جاتے ہیں۔ یہ ناکامی کلاؤڈ کی طرف سے میپنگ کے مسئلے جیسی ہی دکھتی ہے، اور ہر keepalive ایڈجسٹمنٹ سے بچ جاتی ہے۔

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

تبدیلی کو رول آؤٹ کریں اور اس کی حدود جانیں

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

وقفہ اور ناپا گیا ٹائم آؤٹ اس کے ساتھ لکھیں۔ مستقبل میں راؤٹر کے فرم ویئر میں تبدیلی، یا موبائل کنکشن پر جانا، ٹائم آؤٹ بدل سکتا ہے۔ نوٹ ہی کسی کو قدر کاپی کرنے کے بجائے دوبارہ نکالنے دیتا ہے۔ ایک سطر میں دو عدد بعد میں پوری تفتیش بچا لیتے ہیں۔

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

متعلقہ مضامین