გადასვლა შიგთავსზე
Pangolin-ი საშუალებას მაძლევს ნებისმიერი წერტილიდან მივწვდე ჩემს აპლიკაციებს ისე, რომ არცერთი პორტის გახსნა არ დამჭირვებია
NetworkingSoftware5 წთ

Pangolin-ი საშუალებას მაძლევს ნებისმიერი წერტილიდან მივწვდე ჩემს აპლიკაციებს ისე, რომ არცერთი პორტის გახსნა არ დამჭირვებია

გამოქვეყნდა 2026 წლის 29 სექტემბერს, 17:00 EDT შეხარ ვაიდია (Shekhar Vaidya) გამოცდილი ტექნოლოგიური ჟურნალისტი და კომპიუტერული მეცნიერების ინჟინერია. ის TechLatest-ის დამფუძნებელია, სადაც წლების განმავლობაში აქვეყნებდა ტექნიკურ ანალიზს აპარატურულ უზრუნველყოფასა და Windows-ის ეკოსისტემებზე. ამჟამად…

გაზიარება

ჩემი homelab-ისთვის (სახლის ლაბორატორიისთვის) ინტერნეტის ორი ხაზი მაქვს, მაგრამ შემომავალი ტრაფიკისთვის მარტივ გზას არცერთი მათგანი არ მთავაზობს. ორივე CGNAT-ის მიღმაა, რაც ჩემს როუტერზე ტრადიციული hole-punching-ის (პორტების გაჭრის/გახსნის) პროცესს ართულებს. ჩემი homelab-ისთვის, სადაც უამრავი აპლიკაცია მაქვს, რომლებსაც საჯარო წვდომა სჭირდება, ეს სარეზერვო ინტერნეტ-კონფიგურაცია საერთოდ ვერაფერში მეხმარება. გამოსავლის ხანგრძლივი ძიების შემდეგ, საბოლოოდ Pangolin-ზე შევჩერდი და აი, რა შეიცვალა.

პორტს რომც მომნდომებოდა, მაინც ვერ გავხსნიდი

ორი პროვაიდერი. და არცერთი მიშვებს შიგნით.

ქალაქგარეთ ვცხოვრობ და მართალია, ამას მეგაპოლისთან შედარებით ბევრი უპირატესობა აქვს, გარკვეული უარყოფითი მხარეებიც ახლავს. ერთ-ერთი მინუსი ისაა, რომ ინტერნეტპროვაიდერების (ISP) შეზღუდული არჩევანი მაქვს და მათი უმეტესობა ლოკალურია.

ჩემი homelab-ისთვის ორი პროვაიდერის მომსახურებით ვსარგებლობ. რატომ ორის? მომხმარებლების მცირე რაოდენობის გამო კავშირი ზოგადად სტაბილურია და შეფერხებებიც იშვიათია. მაგრამ თუ კავშირი რაიმე მიზეზით გაწყდა, გათიშვა ჩვეულებრივ 12-დან 24 საათამდე გრძელდება, ან უფრო მეტხანსაც, თუ უქმეებია. მეორე კავშირი მეხმარება, რომ homelab-მა მუშაობა განაგრძოს, როცა პირველადი ხაზი გათიშულია.

თუმცა ბევრად უფრო შემაშფოთებელი ისაა, რომ ორივე კავშირი CGNAT-ის მიღმაა. ეს ნიშნავს, რომ თითოეული მათგანი პროვაიდერის მხარეს არსებულ საერთო საჯარო IP მისამართს იყენებს, რომელზეც ინტერნეტიდან პირდაპირი წვდომა შეუძლებელია. CGNAT-ის პირობებში კი როუტერიდან პორტის გადამისამართების (port forwarding) ტრადიციული გზა უბრალოდ არ არსებობს.

შემომავალი წვდომა რომც მქონოდა, მაინც არ მინდოდა, ჩემი სახლის როუტერი homelab-ის მრავალი სერვისისთვის ინტერნეტთან პირისპირ მდგარი შესასვლელი წერტილი გამხდარიყო. ჩემს homelab-ში ბევრი ისეთი სერვისია, რომელთა ინტერნეტიდან ხელმისაწვდომობაც არასდროს მსურს — მაგალითად, ადმინისტრაციული პანელები (დაშბორდები).

თუმცა არის რამდენიმე სერვისი, რომელსაც საჯარო წვდომა სჭირდება. Immich, Jellyfin და Nextcloud ჩემს homelab-ში ყველაზე ხშირად გამოყენებად სერვისებს შორისაა და მათ სახლიდან შორს ყოფნის დროსაც ვიყენებ. რადგან პორტების ტრადიციული გადამისამართება გამორიცხული იყო, დამჭირდა რაღაც, რაც ჩემი ქსელიდან კავშირს გარე მიმართულებით (outward) დაამყარებდა.

როგორ უვლის Pangolin-ი ამ პრობლემას გვერდს

ჩემი სერვერი გარეთ გადის. ჩემს როუტერს არაფერი ესმის.

Pangolin-ი მეხმარება, მსოფლიოს ნებისმიერი წერტილიდან მივწვდე ჩემს self-hosted (საკუთარ სერვერზე განთავსებულ) სერვისებს ისე, რომ სახლის ინტერნეტზე შემომავალ კავშირზე არ ვიყო დამოკიდებული. სანამ კომენტარებში დაწერთ, რომ შემეძლო უბრალოდ Cloudflare Tunnel გამომეყენებინა, მინდა დავაზუსტო: წარსულში ვიყენებდი მას და ის, თუ რატომ ჩავანაცვლე Cloudflare Tunnel-ი Pangolin-ით, სულ სხვა ისტორიაა, რომელიც უკვე მოვყევი.

Pangolin-ი სამი ძირითადი კომპონენტისგან შედგება: Newt, Gerbil და Traefik. Newt ჩემს სახლის სერვერზე ეშვება და გამოიყენება homelab-ის Pangolin-ის მართვის პანელთან (control plane) დასაკავშირებლად, რათა გამავალი კავშირი დამყარდეს. თვითონ Pangolin-ი განთავსებულია VPS-ზე, რადგან მას საჯარო IP სჭირდება. Gerbil-ი აგებს უსაფრთხო, დაშიფრულ გვირაბს WireGuard-ის გამოყენებით, ხოლო Traefik-ი ტრაფიკის მარშრუტიზაციას შესაბამის მოთხოვნილ აპლიკაციამდე ახდენს.

ინტერნეტი -> VPS -> Traefik -> Gerbil/გვირაბი -> Newt -> აპლიკაცია.

Pangolin-ის მართვის პანელი კულისებში ყველა მოსაწყენ სამუშაოს თავის თავზე იღებს. ჩემს CGNAT კავშირებს კი ეს პროცესი საერთოდ არ აინტერესებთ, რადგან ტრაფიკი პირდაპირ ჩემს როუტერზე არასდროს ხვდება.

სერვისის პირველად გამართვისას რამდენიმე დაბრკოლებას წავაწყდი; მაგალითად, Newt-ს და თავად სერვისს ერთი და იგივე Docker ქსელი უნდა გამოეყენებინათ, მაგრამ Docker-ი ასე მუშაობს. თუმცა ეს ერთჯერადი რამაა — ერთხელ გამართვის შემდეგ უკან მიბრუნება აღარ დამჭირვებია.

მაგრამ, როგორც უკვე აღვნიშნე, ყველა ჩემს სერვისს არ სჭირდება საჯარო წვდომა. ბევრი სერვისი, როგორიცაა Portainer და AdGuard Home, მხოლოდ ჩემთვისაა განკუთვნილი. ამიტომ, ამ ტიპის სერვისებზე წვდომისთვის ვიყენებ კერძო mesh VPN-ს, როგორიცაა NetBird და Tailscale. Pangolin-ისა და NetBird-ის მეშვეობით ორივე მხრიდან დაცული ვარ და ყველაზე კარგი ისაა, რომ ჩემს როუტერზე არცერთი შემომავალი პორტი არ მაქვს გახსნილი.

##### Pangolin

Self-hosted, ღია კოდის მქონე გადაწყვეტილება საკუთარი სერვისების საკუთარი დომენის ქვეშ გამოსაქვეყნებლად.

როგორია მისი რეალური ყოველდღიური გამოყენება

ეს უბრალოდ მორიგი URL-ია. და სწორედ ამაშია მთელი ხრიკიც.

-

-

-

-

-

მთავარი კითხვა ისაა, როგორ მუშაობს ეს ყველაფერი პირველადი, ერთჯერადი გამართვის შემდეგ. სიმართლე გითხრათ, Pangolin-ის მართვის პანელს ყოველდღე არ ვხსნი და ეს საუკეთესო შედეგია. მაგალითად, როდესაც ვმოგზაურობ და სასწრაფოდ მჭირდება რაიმე დოკუმენტი, ბრაუზერში საჯარო დომენური სახელით უბრალოდ ვხსნი Nextcloud-ს და ვიწერ მათ. ყველაფერი ასეთი მარტივია. არ მჭირდება ფიქრი ფარულ გვირაბზე ან სახლის ქსელზე. ის ზუსტად ისე მუშაობს, როგორც ნებისმიერი სხვა ვებსერვისი.

Pangolin-ში ახალი სერვისის დამატებას 30 წამზე ნაკლები სჭირდება. როგორც კი ჩემს homelab-ში ახალ სერვისს გავუშვებ და თუ მას საჯარო წვდომა სჭირდება, ვხსნი Pangolin-ის პანელს და ვამატებ მას, როგორც ახალ საჯარო რესურსს, სულ რამდენიმე ძირითადი პარამეტრის მითითებით: ახალი რესურსის სახელი, ქვედომენი და ლოკალური IP მისამართი პორტთან ერთად. სულ ესაა.

თუმცა, თუ ამ კონფიგურაციის homelab-ში დანერგვას ფიქრობთ, მას რამდენიმე უარყოფითი მხარეც აქვს. პირველი და ყველაზე მნიშვნელოვანი ისაა, რომ ის უფასო არ არის. თავად Pangolin-ის სერვისი უფასოა, მაგრამ სამუშაოდ საჯარო IP-ის მქონე VPS-ს მოითხოვს, VPS-ის ქირაობა კი დამატებითი პერიოდული ხარჯია.

ჩემს შემთხვევაში, მთელი ინტერნეტ-ტრაფიკი ჯერ გერმანიაში მიდის და შემდეგ აღწევს ჩემს სახლის სერვერს. რატომ გერმანია? იმიტომ, რომ ჩემი VPS-ის საჯარო წერტილი ნიურნბერგშია, რადგან ეს ფინანსურად მომგებიანია. პირადად ჩემთვის რამდენიმე მილიწამის (ms) დაყოვნება დიდი პრობლემა არ არის, მაგრამ თუ ისეთ სერვისებს ამუშავებთ, სადაც თითოეულ მილიწამს გადამწყვეტი მნიშვნელობა აქვს, მაშინ VPS-ის ქირაობა თქვენს ლოკაციასთან ახლოს მოგიწევთ.

რადგან VPS სხვის მფლობელობაში არსებული ინფრასტრუქტურის ნაწილია და თქვენ მას მხოლოდ ქირაობთ, ის კიდევ ერთ დამოკიდებულებად იქცევა; თუ გადახდა გამოგრჩათ ან ჰოსტინგს შეფერხება ექნება, ეს პირდაპირ აისახება თქვენს homelab-ზე დისტანციურ წვდომაზე.

ხოლო უსაფრთხოების კუთხით თუ შევხედავთ, მიუხედავად იმისა, რომ ჩემი სახლის სერვერი პირდაპირ არ არის გახსნილი გარე სამყაროსთვის, სერვისები მაინც საჯაროდ ხელმისაწვდომია, ამიტომ მათი მეტი დაცულობისთვის დამატებითი ნაბიჯებია საჭირო. მე პირადად ყველგან, სადაც შესაძლებელია, SSO-სთვის (ერთჯერადი ავტორიზაციისთვის) Pocket ID-ს ვიყენებ, ხოლო პერიმეტრის დასაცავად (edge protection) წინ CrowdSec-ს ვაყენებ.

კომპრომისი, რომელსაც სიამოვნებით ვეგუები

Pangolin-ი მარტივ გამოსავალს სთავაზობს CGNAT-ის კედლის გადასალახად მათ, ვისაც სურს სტანდარტული URL-ები საკუთარი self-hosted სერვისებისთვის ისე, რომ თითოეულ მოწყობილობაზე კლიენტის დაყენება არ დასჭირდეს. თუმცა, ის ყველასთვის იდეალური გადაწყვეტა არ არის. თუ კერძო წვდომისთვის mesh VPN გაკმაყოფილებთ, მაშინ უკვე ყველაფერი რიგზე გაქვთ. მაგრამ თუ გსურთ საჯაროდ ხელმისაწვდომი HTTPS URL თქვენი სერვისებისთვის ზედმეტი სირთულეების გარეშე და მზად ხართ შეეგუოთ VPS-ის ხარჯსა და კიდევ ერთ დამოკიდებულებას, Pangolin-ის მოსინჯვა ნამდვილად ღირს.