وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

اتصال به دیتابیس VPS با تونل SSH بدون باز کردن پورت عمومی

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

انتشار:
توسط تیم فنی نت‌آرام
۴ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله اتصال به دیتابیس VPS با تونل SSH بدون باز کردن پورت عمومی در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
می‌خواهید از رایانه خودتان به دیتابیس روی سرور وصل شوید، اما نمی‌خواهید پورت دیتابیس را برای تمام اینترنت باز کنید. تونل SSH می‌تواند یک پورت محلی روی رایانه شما بسازد و ارتباط آن را از مسیر اتصال امن SSH به دیتابیس سرور بفرستد. این روش جای مجوزهای خود دیتابیس را نمی‌گیرد.

پیش‌نیازها را آماده کنید

باید SSH مجاز و حساب دیتابیس مخصوص خودتان را داشته باشید. نمونه زیر برای زمانی است که MySQL روی خود سرور به 127.0.0.1 و پورت 3306 گوش می‌دهد. اگر دیتابیس روی ماشین دیگری است، مسیر باید طبق سیاست شبکه و تنظیم واقعی همان محیط تغییر کند. رمز دیتابیس را در دستور یا پیام عمومی قرار ندهید.

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

در ترمینال رایانه، با جایگزین کردن نام کاربر، نشانی و پورت SSH اجرا کنید:
کد / دستورssh -o ExitOnForwardFailure=yes -N -L 127.0.0.1:13306:127.0.0.1:3306 user@example.com
عدد 13306 پورت محلی روی رایانه شماست و می‌تواند هر پورت آزاد مناسب باشد. بخش 127.0.0.1:3306 در سمت راست، مقصدی است که از دید سرور SSH دیده می‌شود. گزینه -N یعنی فرمان دیگری روی سرور اجرا نشود. تنظیم ExitOnForwardFailure=yes باعث می‌شود اگر خود پورت محلی برای تونل باز نشود، SSH به جای ادامه‌دادن با یک تونل ناقص، خطا دهد. این تنظیم به‌تنهایی سلامت دیتابیس یا امکان ورود به آن را ثابت نمی‌کند. پنجره ترمینال تا زمانی که تونل لازم است باز می‌ماند؛ برای پایان کار Ctrl+C بزنید.
اگر SSH روی پورت غیرپیش‌فرض است، برای نمونه گزینه -p 2222 را پیش از user@example.com اضافه کنید و 2222 را با پورت واقعی عوض کنید. اثر انگشت سرور را از مسیر مستقل تأیید کنید و از کلید شخصی استفاده کنید. اگر پورت محلی از قبل اشغال شده است، یک شماره آزاد دیگر انتخاب کنید.

برنامه دیتابیس را تنظیم کنید

در نرم‌افزار مدیریت دیتابیس روی رایانه، میزبان را 127.0.0.1 و پورت را 13306 بگذارید؛ نه IP عمومی سرور و نه 3306. نام کاربری و رمز دیتابیس همان حساب مجاز است. بعضی برنامه‌ها با نام localhost به سوکت محلی می‌روند؛ استفاده از 127.0.0.1 اتصال TCP محلی را روشن‌تر می‌کند.
برای PostgreSQL همین ایده برقرار است اما مقصد و پورت پیش‌فرض آن 5432 است و باید مجوز و تنظیمات PostgreSQL جدا بررسی شوند. دیتابیس ممکن است گواهی یا شرایط امنیتی دیگری هم داشته باشد؛ آنها را طبق سیاست سرویس رعایت کنید.

یک آزمایش خواندنی از داخل تونل

پس از باز شدن تونل، در یک پنجره جدا و فقط اگر برنامه mysql روی رایانه نصب است، با حساب مجاز خود به 127.0.0.1 و پورت 13306 وصل شوید. هنگام درخواست رمز آن را در همان برنامه وارد کنید، نه داخل فرمان یا پیام. یک پرس‌وجوی خواندنی مثل نمایش نسخه سرور انجام دهید و اتصال را ببندید. اگر ورود رد شد، نام کاربری و مجوز دیتابیس را با مدیر همان سرویس تطبیق دهید؛ برقراری SSH به معنی مجوز خودکار به دیتابیس نیست.

اگر اتصال برقرار نشد

اول اتصال SSH و پیام آن را بررسی کنید. سپس روی سرور وضعیت دیتابیس و آدرس گوش دادن را ببینید. مجوز حساب دیتابیس و اینکه از دید سرور درخواست از کجا می‌آید نیز مهم است. اگر اتصال تونل برقرار است اما ورود رد می‌شود، باز کردن فایروال عمومی مشکل رمز یا مجوز را حل نمی‌کند.
پس از پایان کار ترمینال تونل را ببندید و مطمئن شوید برنامه دیگر با پورت محلی به دیتابیس متصل نمی‌شود. اگر به سرور تازه نیاز دارید، پیش از انتخاب سرور مجازی ایران میزان منابع و سطح مدیریت مورد نیاز را با کارتان بسنجید.
اشتراک‌گذاری:
لینکدینتلگرامایکس

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام