کار با reverse ssh

توی این پست می‌خوام چیزهایی که خودم از reverse ssh بلدم رو به اشتراک بذارم.

کاربردش چیه؟ خیلی چیزا

کاربردی به من داشت این بود که سایت‌های شبکه داخلی شرکتمون رو پروکسی می‌کنم به کامپیوتر خونه. یا بدون آی پی ولید به کامپیوتر شرکت یا خونه یا حتی مبایلم ssh می‌زنم.

پیش نیازش چیه؟ یه ماشین با آی پی ولید. مثلا یه ماشین مجازی vps

خوب من سه تا ماشین دارم.

یکی کامپیوتر دفتر کارم

یکی وی پی اسم

یکی هم لب تابی که خونه باهاش کار می کنم

خوب به مرحله اول می‌از کامپیوتر شرکت وصل می‌شم به وی پی اس

خوب این دستور چیه می‌گه؟ میگه که هر درخواستی که به پورت ۱۰۰۲۲ سرور میاد پروکسیش کن به پورت ۲۲ کامپیوتر سر کار.

✘ saeb-work  ~  ssh -R 10022:localhost:22 vps.saeb.id.ir -p 667

 -R برای -R (Remotely forwarded ports)

و چون من پورت پیش‌فرض ssh رو از ۲۲ به 667 تغییر دادم با -p 667 گفتم که به پورت ۶۶۷ ssh بزن و این ربطی به آموزشمون نداره.

الان من توقع دارم که اگه توی وی پی اس به پورت ۱۰۰۲۲ اس اس اچ بزنم بتونم وصل شم کامپیوتر شرکتمون.

بعد از این‌که با کامپیوترم از سر کار ریموت پروکسی زدم توقع دارم از سرورم بتونم به کامپیوترم اس اس اچ بزنم

توی لب‌تاب دوتا ترمینال باز می‌کنم. توی ترمینال اول می‌زنم

home-laptop  ~  ssh -L 20022:localhost:10022 vps.saeb.id.ir -p 667

خوب این‌بار به جای R زدیم L

-L (Locally forwarded ports)

این دستور چی می‌گه؟

یگه که هر درخواستی به پورت ۲۰۰۲۲ لب تاب من میاد رو وصل کن به پورت ۱۰۰۲۲ وی پی اس. پورت ۱۰۰۲۲ وی پی اس هم که میدونیم وصله به پورت ۲۲ کامپیوتر سر کار. حالا من توقع دارم که اگه با لب تاب به پورت ۲۰۰۲۲ وصل شم، بتونم وصل شم به کامپیوتر سر کارم.

با یک ترمینال به وی پی اس اس اس اچ زدم توقع دارم توی ترمینال جدید لب تابم بتونم به کامپیوتر سر کار ssh بزنم

خوب پس تا الان دوتا دستور زدیم. اول توی کامپیوتر سر کار زدیم

✘ saeb-work  ~  ssh -R 10022:localhost:22 vps.saeb.id.ir -p 667

و توی ترمینال اول  لب تاب توی خونه زدیم

 home-laptop  ~  ssh -L 20022:localhost:10022 vps.saeb.id.ir -p 667

خوب حالا من توی لب تابم یه ترمینال دیگه باز می‌کنم و می‌زنم

 ✘  saeb-home  ~  ssh -p 20022 -L 15900:localhost:5900 -L 16000:devops01.icico.net.ir:80 localhost

با

-L 16000:devops01.icico.net.ir:80

گفتم که پورت ۱۶۰۰۰ لب تابم رو وصل کن به آدرس

devops01.icico.net.ir

با پورت ۸۰ که فقط از طریق شبکه شرکتمون دسترسه. ولی حالا می‌تونم از مرور لب‌تابم با آدرس

localhost:16000

بهش دسترسی داشته باشم

حالا اگه روی کامپیوتر شرکتم یه وی ان سی سرور یا آر دی پی سرور نصب داشته باشم، میتونم ریموت هم بزنم به کامپیوتر شرکت.

مثلا توی ترمینال دوم وقتی به کامپیوتر شرکت وصل شدم یه وی ان سی سرور باز می‌کنم

خوب اگه پیچیده شد یه بار خلاصه سه تا دستوری که زدم رو می‌گم.

یک توی شرکت دستور زیر رو زدم و پورت ۱۰۰۲۲ وی پی اس رو وصل کردم به پورت ۲۲ کامپیوتر شرکت

ssh -R 10022:localhost:22 vps.saeb.id.ir -p 667

تو لب تابم دوتا ترمینال باز کردم. توی ترمینال اول دستور زیر رو زدم و پورت ۲۰۰۲۲ لب تاب رو وصل کردم به پورت ۱۰۰۲۲ وی پی اس که خود پورت ۱۰۰۲۲ وصله به پورت ۲۲ کامپیتور شرکت

ssh -R 10022:localhost:22 vps.saeb.id.ir -p 667

و توی ترمینال دوم لب تابم کد زیر رو زدم و پورت ۱۶۰۰۰ لب تابم رو وصل کردم به آدرس سایتی که فقط توی شرکت در دسترسه و خارج شرکت در دسترس نیست.

ssh -p 20022 -L 15900:localhost:5900 -L 16000:devops01.icico.net.ir:80 localhost

همین دیگه تموم شد.

البته درخواست ssh ی که از کامپیوتر شرکت می‌فرستم رو میذارم توی حلقه while که اگه مشکلی پیش اومد دوباره وصل شه.

و توی کانفیگ ssh هم می‌گم هر ۶۰ ثانیه یه درخواست خالی بفرست به وی پی اس که ارتباطم قطع نشه.

پسندها(1)شاکی(0)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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