একটি বন্ধু আপনার কাজ-প্রগতির ব্লগ পোস্ট প্রুফরিড করতে চান, কিন্তু এর প্রিভিউ শুধুমাত্র localhost:8080-এ চালায়। কয়েকটি টুল সাহায্য করতে পারে। কিছু বাণিজ্যিক পরিষেবা হিসেবে চলে, যেমন ngrok বা Cloudflare Quick Tunnels。 কিছু স্ব-হোস্টেবল কিন্তু একটি নির্দিষ্ট ক্লায়েন্টের প্রয়োজন, যেমন frp বা localtunnel。 কিছু শুধুমাত্র একটি সादा SSH ক্লায়েন্টের প্রয়োজন কিন্তু একটি নির্দিষ্ট SSH সার্ভারের উপর নির্ভর করে, যেমন sish। আসুন শুধুমাত্র Open SSH এবং nginx এর সাথে একটি স্ব-হোস্টেড সমাধান প্রয়োগ করি!
প্রথমে, আমরা একটি দূরবর্তী সার্ভারের একটি পোর্ট থেকে আপনার স্থানীয় সেবার সাথে সংযোগ ফরওয়ার্ড করি: `$ ssh -N -R 0:localhost:8080 web02.luffy.cx`। যখন আপনি দূরবর্তী পোর্ট হিসেবে `0` নির্দিষ্ট করেন, তখন সার্ভার একটি মুক্ত পোর্ট বরাদ্দ করে, যেমন 41535। তারপর, আমরা nginx কনফিগার করি যাতে এটি `https://p41535.ssh.luffy.cx` থেকে অনুরোধকে `http://127.0.0.1:41535` এ প্রক্সি করে, যেখানে একটি সার্ভার ব্লক ব্যবহার করা হয় যা ডোমেইন নামের পোর্টের সাথে মেলে।
আমাদের `*.ssh.luffy.cx` এর জন্য DNS রেকর্ড যোগ করার এবং Let’s Encrypt এর মাধ্যমে একটি ওয়ার্ডসার্টিফিকেট পাওয়ার প্রয়োজন আছে। আমার ক্ষেত্রে, Nix OS স্বয়ংক্রিয়ভাবে সার্টিফিকেট পায়। অ্যাক্সেস নিয়ন্ত্রণ ngx_http_secure_link_module এর ব্যবহার से হासিল করা হয়, যা একটি মানের সেটের উপর হ্যাশ গণনা করে, যার মধ্যে একটি রহস্যও অন্তর্ভুক্ত থাকে, এবং অনুরোধ থেকে হ্যাশের সাথে তুলনা করে। হ্যাশটি base64-এনকোড করা হয় এবং URL-এ একটি ব্যবহারকারীর নাম হিসেবে রাখা হয়, এর মেয়াদ শেষ হওয়ার টাইমস্ট্যাম্পের সাথে।
মुख্য entidades: কোম্পানিগুলো: Cloudflare, Let's Encrypt | অবস্থান: localhost:8080, web02.luffy.cx, p41535.ssh.luffy.cx, ssh.luffy.cx, acme.luffy.cx, Route 53
উৎস: Hacker News · সারাংশ: HeadlinesBriefing