مرحباً بكم. اليوم سنقوم بإنشاء RDP (سطح مكتب بعيد) يعمل بنظام ويندوز سيرفر 2025. لقد جربنا هذه الطريقة معًا من قبل على ويندوز سيرفر 2022، وستجدون الشرح في المقالات السابقة. الأمر بسيط وسهل للغاية ولن يستغرق وقتًا طويلاً. لنبدأ الخطوات معًا.
ملاحظة هامة
لأي شخص سيقوم بتشغيل RDP أو تنفيذ أي من هذه الخطوات، يجب ألا يقوم بذلك على حسابه الأساسي في GitHub إذا كان يستخدمه في عمله. يُنصح بإنشاء حساب جديد مخصص لهذه التجربة لتجنب أي مشاكل. بهذه الطريقة، حتى إذا تم حظر الحساب أو تعليقه، يظل عملك الأساسي آمنًا وغير متأثر.
الخطوة الأولى: إعداد GitHub Codespace
- بعد إنشاء حساب GitHub الجديد، سنتوجه إلى قسم CodeSpaces.
- نضغط على New template ونختار Blank.
- بمجرد الإنشاء، نعود إلى صفحة CodeSpaces الرئيسية ونقوم بتحديث الصفحة. سيظهر الـ Codespace الجديد في القائمة.
- نضغط على قائمة النقاط الثلاث (…) بجانب الـ Codespace ونختار Change machine type.
- نختار 8-core لكي تعمل الآلة الافتراضية بأعلى إمكانياتها، ثم نضغط Update.
- نضغط على النقاط الثلاث مرة أخرى ونختار Stop Codespace.
- نغلق نافذة المتصفح الخاصة بالـ Codespace، ونقوم بتحديث الصفحة مرة أخرى.
- نضغط على اسم الـ Codespace ثم نختار Open in browser. سننتظر حتى يتم تحميل البيئة.
الفكرة من إيقاف الـ Codespace وإعادة تشغيله هي تطبيق التغيير في نوع الآلة من 4-core إلى 8-core.
الخطوة الثانية: إنشاء وتفعيل حساب ngrok
بينما يتم تحميل الـ Codespace، سنقوم بإنشاء حساب على موقع ngrok.com وتفعيله.
- سنتوجه إلى خدمة بريد مؤقت (Temp Mail) للحصول على بريد إلكتروني.
- نستخدم هذا البريد لإنشاء حساب جديد على موقع ngrok.com.
- بعد إنشاء الحساب، نعود إلى صندوق البريد المؤقت ونضغط على رابط التفعيل الذي أرسله ngrok.
- بذلك، يصبح حساب ngrok مفعلًا وجاهزًا للاستخدام.
من الضروري إكمال هذه الخطوة قبل المتابعة لتجنب أي ارتباك لاحقًا.
الخطوة الثالثة: تثبيت البيئة في Codespace
الآن نعود إلى نافذة الـ Codespace التي تم تحميلها. سنقوم بتنفيذ مجموعة من الأوامر بالترتيب. جميع الأكواد ستكون متاحة في هذا المقال.
- نبدأ بتنفيذ الأمر الأول لتحديث الحزم. عند لصق الأمر، قد يطلب منك المتصفح السماح باللصق.
sudo apt update
- ننفذ الأمر التالي لتثبيت بيئة سطح المكتب.
sudo apt install -y ubuntu-desktop xrdp
- بعد ذلك، ننفذ الأمر الخاص بـ ngrok.
ngrok tcp 3389
- سيظهر رابط في نافذة الأوامر. لفتحه، نضغط على مفتاح
Ctrl
ثم ننقر بالزر الأيسر للفأرة. - سينقلنا هذا الرابط إلى لوحة تحكم ngrok. نتبع الخطوات لإنشاء نفق (Tunnel) جديد:
- نختار Free.
- نختار TCP/IP.
- نؤكد الاختيار.
- نختار نفس الخيار مرة أخرى.
- نضع رقم المنفذ 3389.
- نضغط على Add.
الآن يتم إنشاء عنوان IP الذي سنتصل به. سيظهر العنوان بهذا الشكل 0.tcp.ngrok.io:XXXXX
. نقوم بنسخ هذا العنوان والاحتفاظ به في محرر نصوص.
الخطوة الرابعة: إعداد مستودع GitHub و Workflow
- نعود إلى نافذة Codespace ونضغط
Ctrl + C
لإيقاف عملية ngrok. - الآن، نحتاج إلى استخراج مفتاح المصادقة (authtoken) الخاص بـ ngrok. يتواجد هذا المفتاح في ملف الإعدادات.
- نفتح ملف
config.yml
الخاص بـ ngrok. لفتحه، نضغط علىCtrl
وننقر على مسار الملف الذي يظهر في نافذة الأوامر. - نقوم بنسخ قيمة الـ
authtoken
ونحتفظ بها في محرر النصوص. - نعود إلى GitHub ونقوم بإنشاء مستودع (Repository) جديد، وليكن بالاسم
rdp-vm
. نجعله Public. - داخل المستودع الجديد، نذهب إلى تبويب Actions ونضغط على set up a workflow yourself.
- نقوم بلصق كود الـ Workflow التالي في المحرر:
name: Windows Server RDP on: workflow_dispatch: jobs: build: runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Setup RDP run: | iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/actions/virtual-environments/main/images/win/scripts/Installers/Install-XRDP.ps1')) Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -name "fDenyTSConnections" -Value 0 Enable-NetFirewallRule -DisplayGroup "Remote Desktop" Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "UserAuthentication" -Value 1 $admin = [ADSI]"WinNT://./Administrator" $admin.SetPassword("admin@123") $admin.SetInfo() - name: Setup Tunnel run: | Invoke-WebRequest -Uri https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-windows-amd64.zip -OutFile ngrok.zip Expand-Archive ngrok.zip ./ngrok.exe authtoken $ ./ngrok.exe tcp 3389
- نضغط على Commit changes.
- الآن نذهب إلى Settings > Secrets and variables > Actions.
- نضغط على New repository secret.
- في حقل Name نكتب
NGROK_AUTH_TOKEN
. - في حقل Secret نلصق قيمة الـ
authtoken
التي نسخناها سابقًا. - نضغط على Add secret.
الخطوة الخامسة: تشغيل الـ Workflow والاتصال بالـ RDP
- نعود إلى تبويب Actions في المستودع.
- نختار الـ Workflow الذي أنشأناه من القائمة الجانبية.
- نضغط على Run workflow.
- ننتظر بضع ثوانٍ ثم نُحدّث الصفحة. سيبدأ الـ Workflow في التنفيذ.
- نضغط على المهمة قيد التشغيل لمشاهدة سجل التنفيذ. الأمر لا يستغرق سوى دقائق.
- بعد اكتمال التنفيذ، نفتح تطبيق Remote Desktop Connection على جهازنا.
- نقوم بلصق عنوان IP والمنفذ الذي حصلنا عليه من ngrok سابقًا.
- عند طلب بيانات الاعتماد، نستخدم التالي:
- Username:
Administrator
- Password:
admin@123
- Username:
- نوافق على شهادة الأمان، وسيتم الاتصال بسطح المكتب البعيد.
ملاحظة هامة: يجب عدم إغلاق نافذة سجل تنفيذ الـ Workflow في GitHub، لأن إغلاقها سيؤدي إلى قطع الاتصال وفصل الجهاز بالكامل.
مواصفات الجهاز
عند فحص مواصفات الجهاز المتصل، سنجد التالي:
- مساحة التخزين: 150 جيجا بايت.
- المعالج: 64-core.
- الذاكرة العشوائية (RAM): 16 جيجا بايت.
عند اختبار سرعة الإنترنت، تصل سرعة التحميل والتنزيل إلى 3 جيجابت في الثانية أو أكثر. في البداية، قد يكون الأداء بطيئًا بعض الشيء، ولكن بعد ذلك يستقر ويصبح سريعًا.
خاتمة
هذه الطريقة توفر RDP بمواصفات ممتازة ومناسب لمختلف الاستخدامات. مدة الجلسة الواحدة تصل إلى 6 ساعات. إذا واجهتكم أي مشكلة، يمكنكم مراجعة الخطوات مرة أخرى. شكرًا جزيلاً لكم.