Local ،Remote و Dynamic به زبان ساده
SSH Port Forwarding یا تونلسازی SSH روشی امن برای عبور دادن ترافیک شبکه از داخل یک اتصال رمزنگاریشده SSH است. این تکنیک به شما اجازه میدهد حتی روی شبکههای ناامن (مثل اینترنت عمومی یا Wi-Fi عمومی) بدون نگرانی از شنود یا دستکاری دادهها، به سرویسهای راه دور متصل شوید.
این قابلیت برای مدیران سرور، توسعهدهندگان، متخصصان امنیت و افرادی که با دیتابیسها و سرویسهای ریموت کار میکنند یک ابزار حیاتی محسوب میشود.
در این راهنما سه نوع اصلی Port Forwarding را یاد میگیرید:
-
Local Port Forwarding
-
Remote Port Forwarding
-
Dynamic Port Forwarding
همراه با مثالهای کاربردی، سناریوهای واقعی و نکات عیبیابی.
SSH Port Forwarding چیست؟
تونلسازی SSH یک مسیر ارتباطی امن بین دو سیستم ایجاد میکند که تمام دادهها در آن رمزنگاری میشوند.
میتوانید آن را مثل یک تونل خصوصی در نظر بگیرید که ترافیک شبکه شما را از دید افراد غیرمجاز پنهان میکند.
کاربردهای اصلی:
-
دسترسی امن به دیتابیسهای راه دور
-
عبور از محدودیتهای فایروال
-
تست و توسعه سرویسهای ریموت
-
محافظت از دادههای حساس در حال انتقال
1️⃣ Local Port Forwarding (ssh -L)
این روش ترافیک را از سیستم محلی شما به یک سرویس روی سرور راه دور هدایت میکند.
کاربردها
-
اتصال امن به دیتابیس ریموت
-
دسترسی به وباپلیکیشنهای داخلی سرور
-
تست سرویسهای راه دور در محیط لوکال
-
عبور امن از محدودیتهای فایروال
ساختار دستور
ssh -L local_port:destination_host:destination_port user@ssh_serverمثال عملی (اتصال به PostgreSQL)
ssh -L 5433:localhost:5432 user@remote-db.comحالا اگر برنامه شما به localhost:5433 وصل شود، در واقع به دیتابیس PostgreSQL روی سرور ریموت متصل شده است، آن هم از داخل یک تونل رمزنگاریشده.
ویژگیهای امنیتی
-
رمزنگاری کامل دادهها
-
احراز هویت SSH
-
جلوگیری از شنود و دستکاری اطلاعات
2️⃣ Remote Port Forwarding (ssh -R)
این روش برعکس حالت قبل است. ترافیک از سرور راه دور به سمت سیستم محلی شما هدایت میشود.
کاربردها
-
نمایش محیط توسعه لوکال به دیگران
-
دور زدن NAT یا فایروالهای محدودکننده
-
دسترسی ریموت به سرویسهای لوکال
-
انتشار موقت یک سرویس بدون تغییر تنظیمات شبکه
ساختار دستور
ssh -R remote_port:local_host:local_port user@remote_ssh_serverمثال
ssh -R 9000:localhost:9000 user@remote-ssh.comهر ترافیکی که روی پورت 9000 سرور ریموت بیاید، به پورت 9000 سیستم شما منتقل میشود.
تنظیم مهم روی سرور
در فایل:
/etc/ssh/sshd_configاین گزینه باید فعال باشد:
GatewayPorts yesسپس:
sudo systemctl restart sshd3️⃣ Dynamic Port Forwarding (ssh -D)
در این حالت SSH یک SOCKS Proxy میسازد که میتواند انواع مختلفی از ترافیک را از داخل تونل SSH عبور دهد.
کاربردها
-
وبگردی امن روی شبکههای عمومی
-
عبور از محدودیتهای شبکه
-
مخفی کردن IP واقعی
-
پروکسی کردن ترافیک برنامهها
دستور
ssh -D 8080 user@secure-server.comسپس در مرورگر یا نرمافزارها، پروکسی را روی:
127.0.0.1:8080 (SOCKS5)تنظیم میکنید.
تنظیم Port Forwarding در فایل SSH Config
برای سادهتر شدن اتصالهای تکراری: برای گزینههای سفارشی بیشتر در این فایل، مقاله آموزش تنظیم گزینههای سفارشی اتصال در SSH Client را ببینید.
~/.ssh/configمثال:
Host db-forward
HostName remote-db.com
User user
LocalForward 5433 localhost:5432اتصال فقط با:
ssh db-forwardفوروارد همزمان چند پورت
ssh -L 8080:localhost:80 -L 5432:localhost:5432 user@server.comکاربردهای واقعی
-
مدیریت امن دیتابیسها
-
دیباگ وباپلیکیشنهای ریموت
-
وبگردی امن با تونل SSH
-
دسترسی امن به سرویسهای داخلی شرکت
مشکلات رایج و عیبیابی
1. اشتباه گرفتن جهت تونل
-L از لوکال به ریموت-R از ریموت به لوکال
2. تداخل پورت
بررسی:
sudo lsof -i :PORT3. خطای Permission Denied
در سرور:
AllowTcpForwarding yesنکات امنیتی مهم
-
فقط پورتهای ضروری را فوروارد کنید
-
از SSH Key به جای پسورد استفاده کنید
-
اتصالهای فعال را مانیتور کنید
-
لاگهای SSH را بررسی کنید
-
نرمافزار SSH را بهروز نگه دارید
تفاوت Local و Remote در یک نگاه
| نوع | جهت ترافیک | کاربرد اصلی |
|---|---|---|
| Local (-L) | لوکال → ریموت | دسترسی به سرویسهای ریموت |
| Remote (-R) | ریموت → لوکال | نمایش سرویسهای لوکال |
| Dynamic (-D) | پروکسی عمومی | وبگردی امن و عبور از فیلتر |
جمعبندی
SSH Port Forwarding یکی از قدرتمندترین قابلیتهای SSH است که امکان ایجاد ارتباطات امن، انعطافپذیر و کنترلشده را فراهم میکند. با تسلط بر سه حالت Local، Remote و Dynamic میتوانید: برای مانت مستقیم فایلسیستم ریموت روی SSH نیز میتوانید از SSHFS استفاده کنید.
-
دادههای حساس را امن منتقل کنید
-
محدودیتهای شبکه را دور بزنید
-
توسعه و مدیریت سرور را سادهتر انجام دهید
این تکنیک بخش مهمی از ابزارهای حرفهای مدیریت سرور و امنیت شبکه محسوب میشود.
