دليل إعداد خدمة عكس الوكيل frp في ServBay
frp (Fast Reverse Proxy) هو تطبيق عالي الأداء لعكس الوكيل يتيح لك عرض خدمات الشبكة المحلية بأمان على الإنترنت. ServBay يدمج وظيفة عميل frp (frpc)، مما يمكنك من الاتصال بخادم frp (frps) الذي قمت بنشره بنفسك، والوصول إلى مواقعك المحلية المستضافة في ServBay من خلال نطاقات مخصصة. هذا الأسلوب يمنحك تحكمًا كاملاً في خوادم التوجيه الخاصة بك.
يوضح هذا الدليل بالتفصيل كيفية إعداد عميل frp في ServBay وربطه بخادم frps الخاص بك.
نظرة عامة
على عكس خدمات النقل الأخرى المدمجة في ServBay، يتطلب استخدام frp أن تنشر وتكوّن خادم frps الخاص بك على خادم عام مقدمًا. يلعب ServBay دور عميل frpc، حيث يعيد توجيه حركة مرور الموقع المحلي من خلال خادم frps إلى الإنترنت العام. هذا الوضع مناسب للمطورين الذين يحتاجون إلى تخصيص عالٍ وسيطرة مطلقة على قنوات النقل.
حالات الاستخدام
- تحكم كامل في خادم التوجيه: يمكنك السيطرة الكاملة على إعدادات وأمان وأداء خادم frps.
- تخصيص النطاق وSSL: مرونة في ربط أي نطاق تملكه مع المشاريع المحلية، مع التكامل مع شهادات ACME SSL المدارة بواسطة ServBay.
- إعدادات شبكة متقدمة: يدعم frp أنواعًا متعددة من الوكلاء وإعدادات متقدمة لتلبية الاحتياجات المعقدة.
- انشره ذاتيًا: مناسب لمن لا يرغب في الاعتماد على خدمات التوجيه الخارجية.
المتطلبات المسبقة
- تثبيت ServBay: تأكد من تثبيت ServBay وتشغيله بنجاح على نظام macOS الخاص بك.
- خادم
frps
مستضاف ذاتيًا:- يجب أن يكون لديك خادم يمكن الوصول إليه من الإنترنت، مع نشر وتشغيل خدمة
frps
عليه بنجاح. - احتفظ بعنوان الـ IP العام أو اسم النطاق الخاص بخادم
frps
. - احتفظ بإعدادات
bindPort
(منفذ الاتصال بين frp client/server) وtoken
(رمز المصادقة) من ملف إعدادات الخادم (frps.toml
أوfrps.ini
).
- يجب أن يكون لديك خادم يمكن الوصول إليه من الإنترنت، مع نشر وتشغيل خدمة
- إعداد النطاقات وDNS:
- تحتاج إلى نطاق عام (مثل
your-frp-server.com
) وتوجيه سجل الـ DNS من نوع A إلى عنوان الـ IP العام الخاص بخادمfrps
. سيتم استخدام هذا النطاق لاحقًا للوصول إلى الموقع المحلي.
- تحتاج إلى نطاق عام (مثل
- شهادة ACME SSL في ServBay:
- للوصول إلى نطاق خارجي عبر HTTPS، تحتاج أولاً لطلب شهادة ACME SSL من خلال خاصية شهادات SSL في ServBay لهذا النطاق. على سبيل المثال، إذا كنت تخطط لاستخدام
project.your-frp-server.com
، يجب عليك طلب شهادة لهذا النطاق.
- للوصول إلى نطاق خارجي عبر HTTPS، تحتاج أولاً لطلب شهادة ACME SSL من خلال خاصية شهادات SSL في ServBay لهذا النطاق. على سبيل المثال، إذا كنت تخطط لاستخدام
- النطاقات الفرعية الكثيرة وشهادات SSL:
- إذا كنت بحاجة لاستخدام عدة نطاقات فرعية دون إضافة سجلات A كثيرة في DNS، يمكنك استخدام النطاق النجمي (
*
): أضف سجل A لـ*.your-frp-server.com
نحو عنوان الـ IP العام لخادمfrps
. وقدم طلب شهادة ACME SSL باستخدام النطاق النجمي من ServBay (عند التقديم، اكتب فيDomain
:your-frp-server.com, *.your-frp-server.com
، مع وضع سجل*
في النهاية والفصل بينهما بفاصلة إنجليزية). بعدها، يمكنك إضافة أي نطاق فرعي تريده في ServBay دون الحاجة لإضافة سجلات A متعددة أو شهادات منفصلة. - بهذه الطريقة، يمكنك تقديم مواقع مثل
company-project.your-frp-server.com
،personal.your-frp-server.com
، وcustomer-1.your-frp-server.com
مباشرة من ServBay للعامة دون كثير من الإعدادات.
- إذا كنت بحاجة لاستخدام عدة نطاقات فرعية دون إضافة سجلات A كثيرة في DNS، يمكنك استخدام النطاق النجمي (
خطوات التشغيل
1. تثبيت حزمة frp في ServBay
- افتح تطبيق ServBay.
- من الشريط الجانبي، انقر على الحزم (Packages).
- ابحث عن الحزمة
frp
في القائمة. - اضغط زر التثبيت بجانب
frp
. - بعد التثبيت، من الطبيعي أن يفشل تشغيل خدمة frp بسبب عدم إعدادها بعد.
2. تجهيز خادمك frps
وإعداداته
ستحتاج إلى تثبيت وتشغيل frps
بنفسك على خادمك العام. يمكن لـ ServBay توليد قالب إعداد أساسي لـ frps.toml
(لإصدارات frp الحديثة) لتسهيل البدء:
في ServBay، توجه إلى Tunnel -> frp.
ابحث عن زر السحب أو التوسيع بجانب frp server config (frps.toml) واضغط عليه.
سيظهر نموذج لملف إعداد
frps.toml
على النحو التالي:toml# The frps configuration file automatically generated by ServBay # is intended for direct use on the server. # Please adjust the configuration parameters according # to your specific needs. bindPort = 12345 auth.method = "token" auth.token = "myserverpassword" vhostHTTPPort = 80 vhostHTTPSPort = 443 log.to = "/tmp/frps.log" log.level = "info" log.maxDays = 3 log.disablePrintColor = true # بالنسبة لإصدارات frps الحديثة (مثل 0.52.0+)، استخدم webServer.port و webServer.addr و webServer.user و webServer.password لإعداد لوحة المعلومات # webServer.port = 7500 # webServer.addr = "0.0.0.0" # webServer.user = "admin" # webServer.password = "admin_password"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21شرح الإعدادات المهمة:
bindPort
: المنفذ بين frpc و frps. تأكد من فتح هذا المنفذ في جدار الحماية الخاص بالخادم. ننصحك بشدة بحماية هذا المنفذ باستخدام جدار حماية وتقييد الوصول حسب عنوان الـ IP.auth.method = "token"
وauth.token
: خيارات المصادقة للعميل. يرجى تغيير الرمز إلى كلمة مرور قوية خاصة بك.vhostHTTPPort = 80
وvhostHTTPSPort = 443
: المنافذ التي يستمع إليها frps لطلبات HTTP وHTTPS الافتراضية.- 【هام】جرى تحسين ServBay لاستخدام خادم
frps
مباشرة على منافذ 80 و443 لنطاق vhost، حتى يكون نقل شهادة ACME SSL سهلاً وآمنًا. - إذا لم يكن بمقدور خادم
frps
استخدام 80/443 مباشرة (مثلاً مشغول بخدمة أخرى)، يجب نشر خادم عكس وكيل (مثل Nginx أو Caddy) أمام frps للاستماع على 80/443 وتحويل الطلبات نحو منافذ vhost الحقيقية. في هذا السيناريو، يتعامل خادم الوكيل مع الشهادات SSL بدلاً من منحها عبر ServBay.
- 【هام】جرى تحسين ServBay لاستخدام خادم
log.to
: مسار سجل خادم frps.- خيارات لوحة المعلومات (مثل
webServer.port
): لإدارة واجهة frps لوحة التحكم، إعداد اختياري.
انسخ هذا الإعداد إلى خادمك واحفظه باسم
frps.toml
(أوfrps.ini
حسب إصدار frp وتفضيلاتك)، وعدل الخيارات حسب الحاجة.شغل خدمة
frps
الخاصة بك.
3. إعداد عميل frp في ServBay
ارجع إلى تطبيق ServBay لإعداد معلمات الاتصال بالعميل:
توجه إلى Tunnel -> frp.
أدخل معلومات خادم frps كالتالي:
- عنوان الخادم (Server Address): أدخل اسم النطاق أو الـ IP العام لخادمك
frps
(مثلاً:my.test.frp.server.host
). - منفذ الخادم (Server Port): أدخل قيمة
bindPort
من إعداداتfrps.toml
(مثلاً:12345
). - رمز المصادقة (Auth Token): أدخل قيمة
auth.token
من إعداداتfrps.toml
(مثلاً:myserverpassword
).
- عنوان الخادم (Server Address): أدخل اسم النطاق أو الـ IP العام لخادمك
إعداد قواعد نقل المواقع (Tunnel Mapping):
- النطاق المحلي (Local Domain): من القائمة المنسدلة، اختر الموقع المحلي على ServBay الذي ترغب بعرضه للعامة عبر frp (مثلاً:
servbay.demo
). - النطاق الخارجي (External Domain): أدخل النطاق الذي سيستخدمه المستخدمون للوصول إلى موقعك عبر العامة (مثلاً:
test.ks.do
). يجب أن يكون سجل الـ DNS A لهذا النطاق مؤشراً إلى خادمfrps
.- هام: خلافًا لخيارات الـ Tunnel الأخرى في ServBay (مثلاً
Ngrok
أوCloudflared
)، عليك كتابة النطاق الكامل هنا.
- هام: خلافًا لخيارات الـ Tunnel الأخرى في ServBay (مثلاً
- شهادة ACME (ACME Certificates): من القائمة، اختر شهادة ACME SSL المطلوبة لهذا النطاق (مثل شهادة تخص
test.ks.do
).- مهم: للوصول إلى النطاق عبر HTTPS، يجب اختيار الشهادة الصحيحة هنا. سيتولى ServBay نقل معلومات الشهادة إلى
frpc
، والذي سيعطيها لاحقًا إلىfrps
ليستخدمها عند الاستجابة لطلبات HTTPS لذلك النطاق. بذلك، لست بحاجة لإعداد شهادة SSL منفصلة على خادم frps.
- مهم: للوصول إلى النطاق عبر HTTPS، يجب اختيار الشهادة الصحيحة هنا. سيتولى ServBay نقل معلومات الشهادة إلى
- النطاق المحلي (Local Domain): من القائمة المنسدلة، اختر الموقع المحلي على ServBay الذي ترغب بعرضه للعامة عبر frp (مثلاً:
إضافة قنوات أكثر:
- لإدارة عدة مواقع أو عدة نطاقات خارجية، يمكنك الضغط على زر
+
بجوار القناة (Tunnel) لإضافة قناة جديدة.
- لإدارة عدة مواقع أو عدة نطاقات خارجية، يمكنك الضغط على زر
4. حفظ الإعداد وتشغيل خدمة frp
- بعد إنهاء كل الإعدادات، إضغط حفظ (Save) في الزاوية اليمنى السفلي.
- سيحفظ ServBay إعدادات frpc وسحاول تشغيل خدمة frp.
- تحقق من مؤشر الحالة بجوار frp ضمن قائمة Tunnel. إذا تم التوصيل بنجاح، يتحول الضوء إلى اللون الأخضر (تشغيل الخدمة).
- تحقق من الوصول:
- يمكنك الآن الوصول إلى موقعك المحلي من عامة الإنترنت عبر النطاق الخارجي (مثلاً:
https://test.ks.do
). - جرب ذلك بالضغط على رمز النسخ أو رمز المتصفح بجوار النطاق الخارجي.
- يمكنك الآن الوصول إلى موقعك المحلي من عامة الإنترنت عبر النطاق الخارجي (مثلاً:
ملاحظات هامة
- نشر وصيانة خادم
frps
: أنت المسؤول عن تثبيت وإعداد وأمان وصيانة خادم frps. - أمان
bindPort
الخاص بـfrps
: استخدم رمز مصادقة قوي، وحد الوصول إلى المنفذ عبر جدار حماية (مثلاً السماح بالاتصال من عناوين IP محددة فقط). - اختيار منافذ vhostHTTPPort و vhostHTTPSPort:
- ننصح بشدة أن يسمع
frps
على المنافذ 80 و443 مباشرة، يسهل هذا نقل شهادات ACME SSL من ServBay. - إذا استخدمت منافذ غير 80/443، يلزمك إعداد Nginx أو Caddy أمام frps ليستمع على 80/443 وينقل الطلبات للمنافذ الحقيقية، حينها يتولى الوكيل الأمامي إدارة شهادات SSL.
- ننصح بشدة أن يسمع
- ضرورة شهادة ACME: للوصول إلى النطاق الخارجي عبر HTTPS، عليك طلب شهادة ACME لهذا النطاق في ServBay، ثم اختيارها ضمن إعداد frp.
- انتشار سجلات DNS: تأكد من توجيه سجل A للنطاق الخارجي إلى خادم frps وانتشار التغييرات عالميًا في DNS.
الأسئلة الشائعة (FAQ)
- س: فشل تشغيل خدمة frp في ServBay، وإشارة الحالة حمراء أو برتقالية، ماذا أفعل؟
- ج: تحقق من تطابق إعدادات
Server Address
وServer Port
وAuth Token
في ServBay مع الإعدادات فيfrps.toml
. تحقق من تشغيل خدمة frps فعليًا على الخادم، وأن المنفذ مفتوح من جهاز ServBay (اختبر الجدار الناري). اطلع على سجل خدمة frp للتفاصيل.
- ج: تحقق من تطابق إعدادات
- س: إمكانية الوصول للنطاق الخارجي لكن عبر HTTP لا HTTPS؟
- ج: تحقق من اختيار شهادة ACME الصحيحة لهذا النطاق في إعداد frp لدى ServBay. وتأكد من تعيين
vhostHTTPSPort
الصحيح فيfrps.toml
(الأفضل 443).
- ج: تحقق من اختيار شهادة ACME الصحيحة لهذا النطاق في إعداد frp لدى ServBay. وتأكد من تعيين
- س: ماذا لو اضطررت لاستخدام منافذ غير 80/443 مع frps؟
- ج: في هذه الحالة يجب نشر وكيل أمامي (مثل Nginx أو Caddy) ليستمع على 80/443 ويوجه الطلبات إلى frps. سيتولى هذا الوكيل إدارة شهادات SSL الخارجية، وقد لا تُستخدم حقول شهادات ACME في ServBay لهذا الغرض.
- س: لماذا تختلف بنية frps.toml المولد من ServBay عن frps.ini الذي أملكه؟
- ج: انتقل frp تدريجيًا من ملفات الإعداد
.ini
إلى.toml
. النموذج المرفق من ServBay بمنسق.toml
. إذا كان الخادم قديمًا أو تفضل استخدام.ini
، راجع توثيق frp وحوّل الإعداد حسب الحاجة، إلا أن معاني الخيارات الأساسية واحدة.
- ج: انتقل frp تدريجيًا من ملفات الإعداد
الخلاصة
بدمج ServBay لوظيفة عميل frp، يحصل مطورو macOS الذين يبحثون عن تحكم كامل وخيارات متقدمة في اختراق الشبكة الداخلية على أداة فعالة وآمنة. عبر نشر خادم frps الخاص بك مع إعداد frpc وإدارة شهادات SSL من ServBay، يمكنك مشاركة مواقع التطوير المحلية بشكل سهل وآمن وقابل للتخصيص على الإنترنت. الرجاء الانتباه جيدًا لضبط إعدادات الأمان والمنافذ لضمان استقرار الخدمة وحمايتها.