کپی فایل روی شبکه لینوکسی: scp

این مدت که گیر شبکه بازی افتادم نیاز دارم فایلهام رو روی شبکه اینور و اونور کپی کنم. اون هم با استفاده از ترمینال.

خوشبختانه قضیه خیلی سادست. کافیه به جای دستور cp از دستور scp مخفف secure copy استفاده کنم.

مثلا برای کپی فایل ‪/home/x/testfile‬ از روی یه کامپیوتر با آی پی ۱۹۲.۱۶۸.۱.۵ روی کامپیوتر خودم:

[bash]

scp elmi@192.168.1.5/home/x/testfile /home/elmi/

[/bash]

خیلی راحت و ردیف.

port forwarding برای دسترسی راه دور به ssh

یه مشکل کوچولو داشتم اونم این که می‌خواستم از راه دور به یه کامپیوتر تو شرکت از طریق ssh وصل بشم و کارش رو کنترل کنم.
ssh خیلی خلاصه یعنی اینکه از تو یه کامپیوتر دیگه آدم بتونه به ترمینال یه دستگاه دیگه دسترسی داشته باشه.
شرکت آی پی استاتیک داره. با این آی پی من می‌تونم به مودم شرکت وصل بشم، اما از اونجا به به بعد مودم نمی‌دونه که من رو به کدوم کامپیوتر هدایت کنه.
راه حل استفاده از port forwardingه. یعنی چی؟ یعنی اینکه با این روش به مودم شرکت می‌گم که هروقت دیدی یکی پشت یه پورت مشخصه اون درخواست رو رد کن به یه آی پی مشخص تو شبکه محلی.
مثلا فرض کنید آی پی کامپیوتر من تو شرکت ۱۹۲.۱۶۸.۱.۵ هست. خود ssh هم از پورت ۲۲ استفاده می‌کنه. من میرم تو صفحه تنظیمات مودم (با وارد کردن آی پی مودم تو یه browser) و بعد از وارد شدن میرم به صفحه nat و میگم از این به بعد هر چی درخواست رو پورت ۵۰۰۰۰ تا ۵۰۰۰۰ داشتی رو روی پورت ۲۲ کامپیوتر ۱۹۲.۱۶۸.۱.۵ فوروارد کن. به همین سادگی. حالا از این به بعد برای وصل شدن به اون کامپیوتر (با فرض اینکه آی پی استاتیک شرکت باشه ۴.۴.۴.۴) می‌زنم:
[shell]
ssh elmi@4.4.4.4:50000
[/shell]
تا اینجا راحت می‌تونم به کامپیوترم تو شرکت وصل بشم و کارش رو کنترل کنم. اما یه مشکل کوچولو دارم: حفظ کردن آی پی استاتیک شرکت خیلی هم ساده نیست. بنابراین میرم و تو cpanel سایت خودم تو DNS Zone Editor یه رکورد نوع A ایجاد می‌کنم. رکورد A یه اسم مجازی برای یه آی پی تعریف می‌کنه. مثلا من اینجا name رو دادم x و آدرس رو هم دادم همون آی پی استاتیک شرکت.
حالا برای وصل شدن به کامپیوترم تو شرکت میتونم بزنم:

[shell]
ssh elmi@x.melmi.ir:50000
[/shell]
و تمام!

چند تا نکته:
۱- از همین روش میشه برای remote desktop به یه کامپیوتر ویندوزی استفاده کرد. فقط پورت مورد استفاده میشه ۳۳۸۹.
۲- اگه آی پی استاتیک ندارید نگران نباشید. میشه از سایتهایی مثل dyn dns استفاده کرد. این سایتها یه برنامه بهتون میدن که نصب میکنید و اون برنامه مرتب آی پی شما رو برای اون سایت میفرسته. سایت هم به شما آدرسی مثل yourname.dyndns.com میده که میتونید باهاش به شبکه جایی که میخواید وصل شید. به بیان دیگه این آدرس شبیه آی پی استاتیک عمل می‌کنه.
۳- بعضی از مودمها یه بخش به اسم ddns یا dynamic dns دارن. تو بخش ddns‌ میشه تعریف کرد که از چه سایتی برای نگهداری dns استفاده میکنید و خود مودم کار اون برنامه آپدیت کننده آی پی رو انجام می‌ده.
۴- اگه از روش بالا استفاده می‌کنید، دیگه نمیشه از رکورد نوع A استفاده کنید. در عوض رکوردهای نوع cname‌ این امکان رو میدن که یه آدرس url رو به یه آدرس url دیگه تبدیل کنیم. مثلا در این مثال میشه آدرس x.melmi.ir رو به آدرس yourname.dyndns.com تبدیل کرد.
۴- تو ویندوز خیلی راحت میشه از کلاینت putty برای وصل شدن به کلاینت ssh استفاده کرد.