Docker Hub | سجل حاوية جيثب | Quay.io
Coturn هو تنفيذ مجاني مفتوح المصدر لخادم Turn و Stun. خادم Turn هو خادم و Gateway Media Media Traffic Traffic.
قد تحتوي توزيعات Linux على إصدار من Coturn يمكنك تثبيته بواسطة
apt install coturn turnserver --log-file stdout
أو قم بتشغيل Coturn باستخدام حاوية Docker:
docker run -d -p 3478:3478 -p 3478:3478/udp -p 5349:5349 -p 5349:5349/udp -p 49152-65535:49152-65535/udp coturn/coturn
شاهد المزيد من التفاصيل حول استخدام Docker Container Docker ReadMe
يتطلب Coturn تثبيت التبعيات التالية أولاً
libevent2
خياري
OpenSSL (لدعم TLS و DTLs ، صاعقة معتمدة ودوران)
libmicrohttp و prometheus-client-c (واجهة بروميثيوس)
MySQL (قاعدة بيانات المستخدم)
HiredIs (قاعدة بيانات المستخدم ، المراقبة)
SQLite (قاعدة بيانات المستخدم)
postgreSQL (قاعدة بيانات المستخدم)
git clone [email protected]: coturn/coturn.gitcd coturn ./configure يصنع
المواصفات الصاعقة:
RFC 3489 - "الكلاسيكية" الصاعقة
RFC 5389 - قاعدة "جديدة" المواصفات الصاعقة
RFC 5769 - متجهات اختبار لاختبار بروتوكول Stun
RFC 5780 - دعم اكتشاف السلوك NAT
RFC 7443 - دعم ALPN لـ Stun & Turn
RFC 7635 - Oauth Three Turn/Stun Ouditization
بدوره المواصفات:
RFC 5766 - مواصفات بدوره الأساسية
RFC 6062 - تمديد الترحيل TCP
RFC 6156 - امتداد IPv6 للدوران
RFC 7443 - دعم ALPN لـ Stun & Turn
RFC 7635 - Oauth Three Turn/Stun Ouditization
دعم DTLS (http://tools.ietf.org/html/draft-petithuguenin-turn-turn-dtls-00)
دعم الجليد المتنقل (الفئران) (http://tools.ietf.org/html/draft-wing-tram-turn-mobility-02)
Turn REST API (http://tools.ietf.org/html/draft-uberti-behave-turn-rest-00)
حقل الأصل بدوره (خادم الدوران متعدد المستأجرين) (https://tools.ietf.org/html/draft-ietf-tram-stun-origin-06)
بدوره مسودة عرض النطاق الترددي (http://tools.ietf.org/html/draft-thomson-turn-turn-bandwidth-01)
Turn-Bis (مع التخصيص المزدوج) المواصفات (http://tools.ietf.org/html/draft-ietf-turnbis-04)
الجليد والمواصفات ذات الصلة:
RFC 5245 - ICE
RFC 5768 - ICE -SIP
RFC 6336 - سجل ICE -IINA
RFC 6544 - ICE - TCP
RFC 5928 - آلية دقة الدوران
يدعم التطبيق بالكامل بروتوكولات العميل إلى الخادم التالي:
UDP (لكل RFC 5766)
TCP (لكل RFC 5766 و RFC 6062)
TLS (لكل RFC 5766 و RFC 6062): بما في ذلك TLS1.3 ؛ ecdhe مدعوم.
dtls1.0 و dtls1.2 (http://tools.ietf.org/html/draft-petithuguenin-turn-turn-dtls-00)
SCTP (التنفيذ التجريبي).
بروتوكولات التتابع:
UDP (لكل RFC 5766)
TCP (لكل RFC 6062)
قواعد بيانات المستخدم (لمستودع المستخدم ، مع كلمات المرور أو المفاتيح ، إذا كانت المصادقة مطلوبة):
sqlite
MySQL
postgresql
redis
mongodb
واجهات الإدارة:
Telnet Cli
واجهة HTTPS
يراقب:
يمكن استخدام redis لتخزين الحالة والإحصائيات والإخطار
واجهة بروميثيوس (غير متوفرة على حزمة APT)
خوارزميات هضم سلامة الرسالة:
HMAC-SHA1 ، مع مفاتيح MD5 التي تم جمعها (كما هو مطلوب وفقًا لمعايير الصاعقة والتشغيل)
بدوره آليات المصادقة:
آلية بيانات الاعتماد على المدى الطويل "الكلاسيكية" ؛
Turn Rest API (تعديل للآلية طويلة الأجل ، للمصادقة السرية المحدودة زمنياً ، لتطبيقات Webrtc: http://tools.ietf.org/html/draft-uberti-behave turn-rest-00) ؛
خيار ترخيص العميل التجريبي القائم على OAUTH من طرف ثالث ؛
الأداء وتحميل الموازنة:
عند استخدامها كجزء من محلول ICE ، بالنسبة لاتصال VoIP ، يمكن لهذا الخادم المنعطف التعامل مع الآلاف من المكالمات المتزامنة لكل وحدة معالجة المعالجة المركزية (عند استخدام بروتوكول الدوران) أو عشرات المكالمات الآلاف عند استخدام بروتوكول Stun فقط. من أجل قابلية التوسع غير المحدودة تقريبًا ، يمكن استخدام مخطط موازنة التحميل. يمكن تنفيذ موازنة التحميل باستخدام الأدوات التالية (إما واحدة أو مزيج منها):
DNS SRV القائمة على موازنة التحميل ؛
مدمجة في 300 آلية خادم بديلة (يتطلب 300 دعم استجابة من قبل عميل الدوران) ؛
خادم تحميل الشبكة.
تم تنفيذ خوارزميات النطاق الترددي لحركة المرور وتجنب الازدحام.
المنصات المستهدفة:
Linux (Debian ، Ubuntu ، Mint ، Centos ، Fedora ، Redhat ، Amazon Linux ، Arch Linux ، Opensuse)
BSD (FreeBSD ، Netbsd ، OpenBSD ، Dragonflybsd)
سولاريس 11
ماك OS X.
Cygwin (لأغراض البحث والتطوير غير الإنتاج)
Windows (أصلي مع ، على سبيل المثال ، MSVC Toolchain)
يمكن استخدام هذا المشروع بنجاح على منصات *NIX
الأخرى أيضًا ، لكن هذا غير مدعوم رسميًا.
من المفترض أن يكون التنفيذ بسيطًا وسهل التثبيت والتكوين. يركز المشروع على الأداء وقابلية التوسع والبساطة. الهدف هو توفير حل دوران على مستوى المؤسسة.
لتحقيق الأداء العالي وقابلية التوسع ، يتم تنفيذ خادم الدوران مع الميزات التالية:
يتم استخدام شبكة IO ذات القوة الصناعية عالية الأداء
تم تنفيذ نموذج متعدد الخيوط قابل للتكوين للسماح بالاستخدام الكامل لموارد وحدة المعالجة المركزية المتاحة (إذا سمح نظام التشغيل متعدد الخيوط)
يمكن تكوين عناوين الاستماع والترحيل المتعددة
يستخدم نموذج الذاكرة الفعال
يمكن استخدام رمز مشروع الدوران في بيئة شبكات خاصة مخصصة. في رمز الخادم المنعطف ، يتم استخدام واجهة برمجة تطبيقات الشبكات المجردة. يجب إعادة كتابة الملفات الزوجية فقط في المشروع لتكوين خادم الدوران في بيئة ملكية. مع هذا المشروع ، يتم توفير تطبيق فقط لشبكات UNIX/IO API القياسية ، ولكن يمكن للمستخدم تطبيق أي بيئة أخرى. تم تطوير رمز خادم الدوران في الأصل لبيئة الشركات ذات الأداء العالي
يعمل خادم الدوران كعملية مساحة للمستخدم ، دون فرض أي متطلبات خاصة على النظام
الصفحة الرئيسية للمشروع: https://coturn.github.io/
مستودع: https://github.com/coturn/coturn/
تعقب العدد: https://github.com/coturn/coturn/issues
مجموعة Google: https://groups.google.com/forum/#! forum/turn-server-project-rfc5766-turn-server