دليل تكوين خدمة FRP الوكيل العكسي في ServBay
FRP هو أداة وكيل عكسي عالية الأداء، تسهل الاتصال الداخلي بفضل بنية عميل-خادم. يهدف هذا الدليل إلى إرشاد مستخدمي ServBay حول كيفية تكوين عميل frpc لإنشاء نفق آمن يتيح الوصول إلى الخدمات المحلية عبر الإنترنت.
المبادئ التقنية
يؤسس FRP قناة اتصالات مشفرة بين الخادم (frps) والعميل (frpc)، مما يسمح بربط الخدمات الداخلية بخادم الإنترنت. تدعم هذه الحلول بروتوكولات متعددة مثل TCP وUDP وHTTP وHTTPS وهي مناسبة لمشاهد مثل تصحيح الأخطاء عن بُعد واختبار واجهات برمجة التطبيقات في بيئة تطوير ServBay.
إعداد البيئة
1. تثبيت عميل FRP
يرجى اتباع الخطوات التالية لتثبيت عميل frpc:
- قم بزيارة صفحة إصدارات GitHub لتنزيل النسخة المناسبة.
- قم بفك الضغط وتوزيع الملفات إلى مسار النظام (مثال على نظام macOS بمعمارية ARM):bash
tar -zxvf frp_0.61.1_darwin_arm64.tar.gz sudo cp frp_0.61.1_darwin_arm64/frpc /usr/local/bin/
1
2 - تحقق من التثبيت:bash
frpc -v # إصدار frpc 0.61.1
1
2
إعداد النفق العملي
شرح ملف التكوين
قم بإنشاء ملف تكوين frpc.toml
بالهيكل الأساسي كما يلي:
serverAddr = your-frps-server.com
serverPort = 7000
auth.method = token
auth.token = your_authentication_token
[[proxies]]
name = "test_web"
type = "http"
localPort = 80
customDomains = servbay.your-domain.com
2
3
4
5
6
7
8
9
10
عنصر التكوين | وظيفة الشرح |
---|---|
serverAddr | عنوان الخادم العام لـ FRP |
serverPort | منفذ الاتصالات لخادم FRP (افتراضي: 7000) |
auth.method | طريقة مصادقة الخادم |
auth.token | مفتاح مصادقة الخادم |
type | نوع الوكيل (http/https/tcp إلخ) |
localPort | منفذ الخدمة المحلية |
customDomains | أسماء النطاقات العامة |
مثال على تكوين نموذجي
قم برسم خدمات HTTPS المحلية من ServBay إلى الإنترنت:
في هذا المثال:
- عنوان الخادم FRP هو
frps.servbay.demo
- اسم المجال المحلي لـ ServBay هو
servbay.test
- اسم المجال المقدم للخدمات للعالم هو
test-frp.servbay.app
(يجب أن يتم حل اسم المجال عبر DNS إلى خادم FRP)
serverAddr = frps.servbay.demo
serverPort = 7000
auth.method = "token"
auth.token = servbay
[[proxies]]
name = "servbay-frpc-demo"
type = "https"
customDomains = ["test-frp.servbay.app"]
[proxies.plugin]
type = "https2https"
localAddr = "127.0.0.1:443"
crtPath = "/Applications/ServBay/ssl/private/tls-certs/servbay.test/servbay.test.crt"
keyPath = "/Applications/ServBay/ssl/private/tls-certs/servbay.test/servbay.test.key"
hostHeaderRewrite = "servbay.test"
requestHeaders.set.x-from-where = "frp"
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
تشغيل الخدمة:
frpc -c frpc.toml
تحقق الخدمة
- زيارة اسم المجال المرسوم في المتصفح:
https://test-frp.servbay.app
1 - تحقق من مؤشرات المصداقية:
- يتم إرجاع رمز الحالة HTTP 200
- تتطابق محتويات الاستجابة مع الخدمة المحلية
- تحقق من صحة شهادة SSL
تشخيص السجل
frpc -c frpc.toml --log_level debug # قم بتفعيل سجلات التصحيح
tail -f /var/log/frpc.log # راقب السجلات في الوقت الفعلي
2
دليل استكشاف الأخطاء وإصلاحها
الظاهرة | الحل |
---|---|
فشل في مصادقة الاتصال | تحقق من تطابق إعداد auth.token مع الخادم |
استثناء في تحليل اسم المجال | تأكد من أن DNS قد تم حله بشكل صحيح إلى عنوان IP لخادم FRP |
تعارض في المنفذ | استخدم lsof -i :PORT للتحقق من استخدام المنفذ |
انقطاع النفق المتكرر | اضبط معلمات التحقق: heartbeat_timeout = 30 |
مزايا الحل
يوفر حل FRP القيمة الأساسية التالية لمستخدمي ServBay:
- دعم بروتوكولات متعددة لتلبية سيناريوهات الأعمال المعقدة
- تحديث التكوين دون الحاجة لإعادة تشغيل الخدمة
- دعم وكيل متسلسل أصلي لاختراق الشبكات الداخلية عبر مستويات متعددة
- بنية مفتوحة المصدر تضمن أمان البيانات والتحكم فيها
يوصى بتمكين اتصالات TLS المشفرة عند نشرها في بيئة الإنتاج، ومن خلال إعداد tls_enable = true
للتأكد من انتقال البيانات بشكل آمن.