من خدمات پشتیبانی فنی از راه دور زیادی انجام میدهم، اما بعضی مشتریان حتی در بهترین شرایط هم برای پیدا کردن منوی «شروع» به دردسر میافتند. اینکه از آنها بخواهم فقط برای رفع یک مشکل وارد حساب ویپیان شوند، بیش از اندازه پیچیده است. روشی پیدا کردم که بدون نیاز به نصب دائمی نرمافزار ویپیان، به آن رایانهها دسترسی پیدا کنم، مشکل را برطرف سازم و ارتباط را ببندم.
انتخاب همیشگی من تیلکت بود؛ ابزاری که گروه تیلاسکیل ساخته است. با آن، دو رایانه بدون نیاز به حساب تیلاسکیل یا نشانیهای IP در دسترس عموم میتوانند با یکدیگر ارتباط برقرار کنند و اگر گذر از NAT موفق باشد، ابزار میکوشد ارتباطی مستقیم بسازد.
دو رایانه، بدون IP عمومی و حساب کاربری
رشتهای تازه که دو دستگاه را به هم پیوند میدهد





کارش کمی جادویی به نظر میرسد. نخستین بار که از آن استفاده کردم، فرمان tailcat را روی یک رایانه اجرا کردم؛ فرمانی که یک نشانی تیلکت ساخت و نمایش داد. سپس آن نشانی را برای رایانهای دیگر در شبکهای متفاوت و پشت مسیریابی جداگانه فرستادم. تنها چند ثانیه بعد، دو دستگاه میتوانستند با یکدیگر ارتباط برقرار کنند.
با دانستههای پیشینم دربارهٔ شبکههای خانگی، انتظار داشتم این روش کار نکند. هیچیک از دستگاهها IP عمومی نداشتند و هدایت درگاه نیز روی هیچکدام فعال نبود. در واقع، پیش از برقراری این ارتباط، حتی یکی از آنها برای دیگری پینگ نفرستاده بود.
این رشته بهخودیخود گذرواژه نیست، اما کار را راه میاندازد. رشته شامل کلید عمومی دستگاه سازنده، کلید شناسایی، کلید ازپیشاشتراکگذاشتهشده و اطلاعات لازم برای آغاز ارتباط از طریق رلهٔ DERP است. در حالت پیشفرضی که آزمایش کردم، کلیدها موقتیاند؛ بنابراین ارتباط به بخشی از یک حساب یا تیلنت دائمی تبدیل نمیشود.
خود فرایند دستدهی هم بسیار جالب بود. این فرایند با چیزی آغاز میشود که در کد منبع خود پروژه «میو» نام گرفته است: پیام آغازینی که یک دستگاه از طریق رلهٔ هماهنگکنندهٔ DERP برای دیگری میفرستد. پاسخ این پیام نیز بهمعنای واقعی کلمه «میو» بود.
در آزمایش ارتباط، دیدم که پاسخ از نخستین رله رسید و چند لحظه بعد، اتصال به مسیری مستقیم میان دو رایانه تغییر کرد. این دو سامانه عملاً با هم ارتباط داشتند، بیآنکه به نشانی عمومی نیاز داشته باشند.
برخلاف ویپیانهای سنتی، ارتباط تیلکت درون خود برنامه باقی میماند و نیازی به نصب رابط شبکه یا بازنویسی جدول مسیریابی رایانه ندارد.
دو رایانهٔ متصل واقعاً چه کارهایی میتوانند انجام دهند؟
یک نشانی با کاربردهایی شگفتآور و گوناگون

بهمحض برقراری ارتباط، کنجکاوی جای خود را به آزمایش داد: باید میدیدم چه کارهایی از آن برمیآید. ابتدا فایلی را مستقیماً از مسیر اتصال انتقال دادم:
# On the receiving PC: tailcat > archive.tar.gz # On my laptop: tailcat tc8f9a2b1c4d...
این کار بدون آنکه لازم باشد فایل را نخست در یک سرویس ابری بارگذاری کنم، بیدردسر انجام شد. تیلکت همچنین میتواند مقصدی فقط برای دریافت بسازد تا افراد بتوانند فایل بفرستند، بیآنکه به یک پوشهٔ معمولی و قابل مرور دسترسی داشته باشند.
امکان دردسترسگذاشتن تنها یک سرویس، بهجای بازکردن دسترسی عمومی به شبکه، تغییر مهمی بود. میتوانستم فقط یک پیشخوان را از طریق ارتباط تیلکت در دسترس قرار دهم، بدون آنکه کل رایانه یا شبکهٔ خانگی برای رایانهٔ دیگر قابل مرور شود.
اما ماجرا از این هم بهتر شد. تیلکت به من امکان میدهد سرویس راه دور چنان به نظر برسد که گویی روی دستگاه محلی اجرا میشود. یعنی کافی است مرورگر یا پایگاه داده را به یک درگاه محلی هدایت کنم تا بیآنکه بداند ارتباط از بستر اینترنت میگذرد، بهدرستی کار کند. رضایتبخشترین لحظه زمانی بود که این فرمانها را اجرا کردم:
# On the remote machine serving the app: tailcat serve 80 # On my laptop: tailcat forward tc8f9a2b1c4d... 8080:80
نشانی http://localhost:8080/ را در مرورگرم باز کردم و برنامهٔ وبِ در حال اجرا روی رایانهٔ دیگر، بدون عبور از صفحههای پیکربندی، مستقیم بارگذاری شد.
وقتی در نظر بگیریم که تیلکت هم میتواند فایل جابهجا کند و هم اتصالهای TCP را انتقال دهد، روشن میشود که با برنامهای تکمنظوره برای انتقال فایل روبهرو نیستیم.
این نسخهای کوچکتر از تیلاسکیل نیست
آنچه کم دارد، اصل ماجرا نیست

اگر بیش از حد سادهسازی کنیم، شاید این ابزار را «تیلاسکیل سبک» بنامیم؛ اما چنین توصیفی درست نیست. گروه تیلاسکیل آن را «تیلاسکیل بدون تیلاسکیل» میخواند. در واقع، بیشتر شبیه همان زیرساخت ارتباطی رمزگذاریشدهای است که دستگاههای راه دور را برای یکدیگر یافتنی میکند، اما شبکهٔ خصوصیِ ساختهشده روی آن را ندارد.
من هر روز از نسخهٔ کامل Tailscale استفاده میکنم و آن را ابزاری برای شبکهای میدانم که میخواهید پایدار نگه دارید. بنابراین اگر لپتاپ، ذخیرهساز تحت شبکه (NAS) و گوشیتان باید همگی با یک حساب کاربری برای مدتی نامحدود در دسترس بمانند، گزینهای عالی است. در مقابل، Tailcat برای زمانی ساخته شده که میخواهید به یک دستگاه وصل شوید، کاری مشخص را انجام دهید و اتصال را موقتی نگه دارید، نه اینکه آن دستگاه را به شبکهای دائمی بیفزایید.
اگر از دستگاهی که متعلق به من نیست فایلی بخواهم، از همین ابزار استفاده میکنم. البته میتوانم آن دستگاه را به شبکهام بیفزایم، اما چنین کاری برای یک وظیفهٔ پنجدقیقهای زیادهروی است.
| تیلکت | تیلاسکیل | |
|---|---|---|
| کاربرد اصلی | اتصال یکباره | شبکهٔ خصوصی پایدار |
| نیاز به حساب کاربری | خیر | بله |
| تیلنت مدیریتشده | خیر | بله |
| مدیریت و سیاستگذاری متمرکز | خیر | بله |
| مناسبترین کاربرد | انجام کاری مشخص | دسترسی مکرر میان دستگاهها |
برخی امکانات، مانند حسابهای کاربری، فهرست دستگاههای قابل مدیریت و لایهای برای تعیین اینکه چه کسی با چه چیزی ارتباط داشته باشد، شاید در Tailcat غایب به نظر برسند؛ اما این نبودن بخشی از طراحی آن است.
سادگی استفاده همچنان به تدابیر امنیتی نیاز دارد
پیش از آنکه بیش از حد هیجانزده شویم، نکتهٔ مهمی هست که هنوز به آن نپرداختهام. از آنجا که در پیکربندی پیشفرض، داشتن نشانی Tailcat برای راهاندازی دسترسی کافی است، باید درست مانند یک گذرواژه از آن مراقبت کنید. این نشانی از آن پیوندهایی نیست که بتوان بیدغدغه در یک گفتوگوی گروهی جایگذاری کرد.
میتوانید این رشته را بهصورت یک رکورد DNS منتشر کنید تا بهجای جابهجا کردن رشتهای طولانی، دستگاهتان با نام در دسترس باشد. بااینحال، رباتها پیوسته رکوردهای DNS را پویش میکنند و این کار ممکن است به خطری امنیتی بدل شود. این نکته توجه مرا جلب کرد؛ دسترسی آسان اغلب احتیاط بیشتری میطلبد.
تمام ظرافت Tailcat در این نیست که دو رایانهٔ خصوصی را عمومی کند، بلکه راهی در اختیارشان میگذارد تا بدون نیاز به دسترسی عمومی هیچیک، با یکدیگر ارتباط برقرار کنند.
منبع: این مطلب ترجمه و بومیسازی مقالهای از MakeUseOf به قلم Afam Onyimadu است. مشاهده مقاله اصلی