Skip to content
VDS · قواعد البيانات

الوصول إلى قاعدة البيانات عن بُعد: كيف لا تكشفها للإنترنت كله

طريقتان للاتصال بقاعدة بيانات على VDS من حاسوب العمل: نفق SSH ومنفذ مفتوح مع قيود. ما الذي تختاره وكيف تتحقق.

آخر تحديث 23 أغسطس 2026

قاعدة بيانات تستمع على 0.0.0.0 بكلمة المرور root لا تصمد إلا حتى أول عملية فحص — ونطاق العناوين بالكامل يُفحص باستمرار. في الوقت نفسه، فإن الاتصال بقاعدة البيانات من حاسوب محمول باستخدام عميل أمر مريح وغالبًا ضروري. هناك طريقتان، وواحدة فقط منهما بلا سلبيات.

الطريقة 1: نفق SSH (موصى به)

تبقى قاعدة البيانات مرتبطة بـ 127.0.0.1، ولا شيء غير SSH يكون مكشوفًا للخارج. على حاسوبك:

ssh -L 5433:127.0.0.1:5432 root@YOUR_ADDRESS -N
ssh -L 3307:127.0.0.1:3306 root@YOUR_ADDRESS -N

الآن اتصل بـ 127.0.0.1:5433 في DBeaver أو TablePlus أو psql. من وجهة نظر قاعدة البيانات، يبدو هذا كاتصال محلي.

يمكن لمعظم العملاء إعداد النفق بأنفسهم: تحتوي إعدادات الاتصال على تبويب “SSH”. حدّد عنوان الجهاز من “نظرة عامة” في لوحة التحكم /hosting/vds/m/<id> ومفتاحك.

ميزة هذه الطريقة: لا تحتاج إلى تغيير أي شيء في قاعدة البيانات أو إعدادات الجدار الناري.

الطريقة 2: منفذ مفتوح مع قيود

هذا حل أخير — للحالات التي تتصل فيها خدمة خارجية بعنوان ثابت معروف. كل خطوة أدناه إلزامية:

ufw allow from 203.0.113.10 to any port 5432 proto tcp

بالنسبة إلى PostgreSQL: listen_addresses = '*' والسطر hostssl all all 203.0.113.10/32 scram-sha-256 في pg_hba.conf. بالنسبة إلى MySQL: bind-address = 0.0.0.0 ومستخدم مرتبط بعنوان محدد:

CREATE USER 'app'@'203.0.113.10' IDENTIFIED BY 'long-password';
GRANT SELECT, INSERT, UPDATE, DELETE ON shop.* TO 'app'@'203.0.113.10';

بدون TLS، يرسل هذا الاتصال البيانات كنص صريح. الأمر ufw allow 5432 دون تحديد المصدر هو بالضبط ما يعنيه “فتحه للإنترنت بأكمله”.

التحقق

من جهاز آخر:

nmap -Pn -p 3306,5432,6379,27017 YOUR_ADDRESS

الاستجابة المتوقعة هي filtered أو closed على جميع المنافذ. محليًا، تحقق مما يستمع وأين:

ss -tulpn | grep -E '3306|5432|6379'

الأخطاء الشائعة

العَرَضالسبب
العميل لا يتصل عبر النفقالمنفذ المحلي مشغول — اختر منفذًا آخر
Host ... is not allowed to connectمستخدم MySQL مرتبط بـ localhost
no pg_hba.conf entry for hostلا توجد قاعدة لعنوانك
المنفذ مفتوح لكن لا شيء يستجيبقاعدة البيانات تستمع فقط على 127.0.0.1
عمل ثم توقفمزوّدك يمنحك عنوانًا ديناميكيًا — حجة إضافية لصالح النفق

لا تحتوي الأجهزة على IPv6، ولا على عنوان ثانٍ أيضًا. اكتب جميع القواعد للعنوان IPv4 العام الوحيد من “نظرة عامة” — لن يكون هناك التباس مع حزمتين.