د WireGuard لاس ورکول کار کوي خو انټرنیټ نشته: پیکیټ تعقیب کړئ
لاس ورکول یوازې کیلي او رسیدل ثابتوي. له AllowedIPs څخه د لیږد، NAT او د بیرته راستنیدو لارې له لارې یو پیکیټ تعقیب کړئ ترڅو وګورئ چې چیرته دریږي.
تونل فعال دی، wg show یو نوی لاس ورکول راپور ورکوي، تاسو کولی شئ د سرور د تونل پتې ته ping وکړئ، او له هغې وروسته هیڅ شی ځواب نه ورکوي۔ لومړی فکر دا وي چې کیلي بیا جوړې کړو یا ترتیب بیا شریک کړو۔ دا په حقیقت کې د لارې هغه برخه بدلوي چې مخکې یې د کار کولو ثبوت شوی دی۔
بشپړ شوی لاس ورکول وایي چې دواړه خواوې پر کیليو سلا شوې، UDP پای ټکي ته رسیږي، او کرپټو روټینګ پیکیټ مني۔ د دې په اړه هیڅ نه وایي چې پیکیټ کولی شي وروسته سرور پریږدي که نه۔
نو د اټکل کولو پرځای یو پیکیټ تعقیب کړئ۔ څلور ځایونه دي چې کولی شي هلته مړ شي، او هر یو جلا نښه پریږدي۔
لاس ورکول په حقیقت کې څه ثابتوي
WireGuard یو UDP پروتوکول دی چې د Noise لاس ورکولو سره غونډه جوړوي او بیا د سیال لپاره پیکیټونه کوډ کوي۔ کله چې wg show څو ثانیې پخوانی لاس ورکول او زیاتیدونکی د لیږد شمیرنه ښکاره کړي، پای ټکی، کیلي او د سیال عامه کیلي ټول سم دي۔
هغه څه چې ثابت نه کوي: چې ستاسو کلاینټ انټرنیټ ته روان ټرافیک په انټرفیس کې لیږي، چې سرور یې لیږدولو ته چمتو دی، یا چې ځواب بیرته د تګ لاره پیدا کولی شي۔ دا د کرنل روټینګ او فایر وال پریکړې دي، او له تونل بهر کیږي۔
له همدې امله د سرور د تونل پتې ته ping کول دومره ګمراه کوونکی ازموینه ده۔ هغه پیکیټ پخپل سرور ته استول شوی، نو ځایي توګه پای ته رسیږي۔ هیڅکله لیږد ته، هیڅکله ژباړې ته او هیڅکله له انټرنیټ څخه د بیرته راستنیدو لارې ته اړتیا نه لري۔
AllowedIPs د روټینګ پریکړه ده
په کلاینټ کې AllowedIPs دوه کارونه کوي۔ دا د کرپټو کیلي روټینګ جدول دی چې ټاکي کوم مقصد پتې دې سیال تونل ته لیږل کیږي، او دا د سرچینې پتو هغه لیست دی چې سیال به ستاسو څخه ومني۔ که د کلاینټ ترتیب یوازې 10.8.0.0/24 ولیکي، عامه مقصدونه هیڅکله انټرفیس ته نه ننوځي او ستاسو عادي ډیفالټ لار دوی له تونل بهر وړي۔ بیا تونل په بشپړ ډول کار کوي او هغه څه نه کوي چې تاسو غوښتل۔
د ترتیب فایل څه وایي نه، بلکې وګورئ کلاینټ په حقیقت کې څه نصب کړي:
wg show wg0 allowed-ipsip route get 1.1.1.1
دوهم کمانډ فیصله کوونکی دی۔ که ځواب ستاسو فزیکي انټرفیس او عادي ګیټ وې نوموي، پیکیټ په تونل کې نه ځي او د سرور په خوا کې هیڅ بدلون به یې سم نه کړي۔ د IPv4 لپاره 0.0.0.0/0 او د IPv6 لپاره ::/0 جلا ورزیات کړئ؛ هغه قاعده چې د یوې کورنۍ لپاره هر څه نیسي بلې ته د هغې په اصلي لار کې پریږدي، او دا د کار کوونکي IPv4 تونل او بند پاتې IPv6 لټون عام لامل دی۔
پیکیټ په ګیټ وې کې چیرته مړ کیږي
که لار سمه وي او پیکیټ بیا هم چیرته نه ځي، نو سرور ته رسیږي او هماغلته دریږي۔ څلور کتنې ډیری ګیټ وې پوښي۔
لیږد۔ sysctl net.ipv4.ip_forward چې 0 بیرته ورکوي کلاسیک ځواب دی، او ډیری ویشونه لا هم په ډیفالټ ډول 0 دي۔ باید 1 وي، او په sysctl فایل کې تلپاتې تنظیم شي، نه په هغه کمانډ چې د بیا پیل په وخت ورک شي۔ د IPv6 لیږد جلا سویچ دی۔
د فلټر پالیسي۔ د ډیفالټ drop پالیسي سره FORWARD زنځیر به د تونل ټرافیک وغورځوي خو خود هوسټ ته تلونکی ټرافیک به اجازه ورکړي، کوم چې له نښې سره سمون خوري۔ ژوندی د قاعدو ټولګه ولولئ، نه خوندي شوی فایل: nft list ruleset یا iptables -S۔
ژباړه یا روټینګ۔ هغه کلاینټونه چې شخصي تونل پتې کاروي یا د سرور په وتلو انټرفیس کې سرچینې NAT ته اړتیا لري، یا داسې روټ شوي مخکښ ته چې پورتنۍ شبکه یې بیرته راګرځول پوهیږي۔ د دوی ترمنځ انتخاب د پتو پلان تعقیبوي۔ هغه شبکې ته MASQUERADE ورزیاتول چې ستاسو مخکښ مخکې له مخکې بیرته روټ کوي بې ضرره دی خو بې مانا، او چیرته چې لار نشته هلته یې پرېښودل ځوابونه د نه روټ کیدونکي شخصي حد ته استول شوي پریږدي۔
د بیرته راستنیدو لار۔ په روټ شوو ډیزاینونو کې پورتنۍ روټر ستاسو سرور ته اشاره کوونکې لار ته اړتیا لري۔ د عرضه کوونکي شبکه هم کولی شي دا بنده کړي: څو کلاوډونه د انسټانس په سرچینه او مقصد کتنه فعالوي، کومه چې هغه پیکیټونه غلی غورځوي چې سرچینه یې د انسټانس خپله پته نه وي، ترڅو چې هغه کتنه بنده شي۔
DNS له روټینګ څخه جلا ناکام کیږي
پیژندل شوې پتې ته پیکیټ او د نوم لټون دوه جلا ناکامۍ دي، او د خطا پیغامونه په مخالفو لورو ګمراه کوي۔ که ping 1.1.1.1 کار وکړ او براوزر هیڅ بار نه کړي، لار سمه ده او د نومونو حل نه۔ که ping پخپله ناکام شي، DNS بې اړیکه دی او تاسو مخکیني برخې ته بیرته راغلي یاست۔
wg-quick کولی شي له ترتیب څخه د DNS = کرښې څخه resolver وټاکي، او systemd-resolved هرې اړیکې لپاره خپل چلند لري۔ کوم VPN چې resolver په یوه پته بدل کړي چې یوازې د تونل په داخل کې ورسیږي، د تونل د لویدو په شېبه به هر لټون ناکام کړي، کوم چې داسې ښکاري لکه تونل انټرنیټ ماتوي۔
| Symptom | Layer to inspect |
|---|---|
| Tunnel address pings, nothing else does | Client route, then gateway forwarding |
| Public IP pings, hostnames fail | Resolver selection and reachability |
| Handshake completes, no reply ever | FORWARD policy or missing NAT on the server |
| Small requests work, large transfers stall | MTU and TCP MSS clamping |
هغه ترتیب چې شواهد رامنځته کوي
لومړی د کلاینټ خوا کتنه وچلوئ، ځکه دا یو کمانډ دی او نیمې احتمالونه لرې کوي۔ بیا تایید کړئ چې سرور په اصل کې د انټرنیټ وتلو لپاره جوړ شوی که نه؛ د شخصي لاسرسي لپاره جوړ شوی ګیټ وې د عامه مقصدونو په ناکامیدو خراب نه دی۔
په سرور کې، کله چې له کلاینټ څخه ping لیږئ انټرفیس وګورئ: tcpdump -ni wg0 icmp باید غوښتنه وښیي، او tcpdump -ni eth0 icmp باید وښیي چې وتل کیږي، ژباړل شوی یا نه۔ که په لومړي کې ښکاره شي او په دوهم کې هیڅکله نه، نو دریږدل د سرور په داخل کې دی۔ که ووځي او ځواب بیرته نه راځي، ستونزه پورته ده، او هغه بله خبرې ده۔
په پای کې، سمون د بیا پیل وروسته هم پاتې کیدونکی کړئ۔ لیږد په sysctl فایل کې دی، د فایر وال قاعدې په هغه خدمت کې دي چې هغه باروي، او د کلاینټ لارې په هغه ترتیب کې دي چې انټرفیس پورته کوي، نه په هغه شیل کې چې تاسو به هیر کړئ۔ بیا وصل شئ، هماغه دوه ازموینې تکرار کړئ او تایید کړئ چې شمیرونکي خوځیږي۔