مفاتيح الوصول الديناميكية
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يوفّر Outline نوعَين من مفاتيح الوصول: الثابتة والديناميكية. يتم ترميز كل
معلومات الاتصال في مفاتيح الوصول الثابتة نفسها، بينما يتم ترميز
موقع معلومات الاتصال في مفاتيح الوصول الديناميكية، ما يتيح لك تخزين تلك المعلومات
بعيدًا وتغييرها عند الحاجة. ويعني هذا أنّه يمكن تعديل
إعدادات الخادم دون الحاجة إلى إنشاء مفاتيح جديدة ونشرها
للمستخدمين. ويوضِّح هذا المستند كيفية استخدام مفاتيح الوصول الديناميكية لإدارة خادم Outline بطريقة أكثر
مرونة وفعالية.
هناك ثلاثة تنسيقات لتحديد معلومات الوصول التي ستستخدِمها
مفاتيح الوصول الديناميكية:
استخدام رابط ss://
الإصدار 1.8.1 من تطبيق "عميل Outline" والإصدارات الأحدث
يمكنك استخدام رابط ss://
حالي مباشرةً. وتعتبر هذه الطريقة مثالية إذا كنت
لست بحاجة إلى تغيير الخادم أو المنفذ أو طريقة التشفير بشكل متكرر، ولكنك ما زلت بحاجة إلى
توفُّر إمكانية تعديل عنوان الخادم.
مثال:
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpleGFtcGxl@outline-server.example.com:8388/?outline=1
استخدام عنصر JSON
الإصدار 1.8.0 من تطبيق "عميل Outline" والإصدارات الأحدث
توفّر هذه الطريقة مرونة أكبر لإدارة جميع جوانب اتصال
Outline الخاص بالمستخدمين. ويمكنك تعديل الخادم والمنفذ وكلمة المرور وطريقة
التشفير بهذه الطريقة.
مثال:
{
"server": "outline-server.example.com",
"server_port": 8388,
"password": "example",
"method": "chacha20-ietf-poly1305"
}
- server: النطاق أو عنوان IP الخاص بخادم VPN
- server_port: رقم المنفذ الذي يتم تشغيل خادم VPN فيه
- password: كلمة المرور المطلوبة للاتصال بشبكة VPN
- method: طريقة التشفير التي تستخدمها شبكة VPN. يُرجى الاطّلاع على
رموز AEAD المتوافقة مع بروتوكول Shadowsocks
استخدام عنصر YAML
الإصدار 1.15.0 من تطبيق "عميل Outline" والإصدارات الأحدث
تشبه هذه الطريقة طريقة JSON السابقة ولكنها توفّر مرونة أكثر
من خلال الاستفادة من تنسيق الإعدادات المتقدّمة لـ Outline. ويمكنك
تعديل الخادم والمنفذ وكلمة المرور وطريقة التشفير والمزيد.
مثال:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint: outline-server.example.com:8388
cipher: chacha20-ietf-poly1305
secret: example
udp:
$type: shadowsocks
endpoint: outline-server.example.com:8388
cipher: chacha20-ietf-poly1305
secret: example
- transport: يحدِّد بروتوكولات نقل البيانات التي سيتم استخدامها (TCP وUDP
في هذه الحالة)
- tcp/udp: يحدِّد إعدادات كل بروتوكول
- $type: يحدِّد نوع الإعداد، في هذه الحالة shadowsocks
- endpoint: نطاق أو عنوان IP ومنفذ خادم VPN
- secret: كلمة المرور المطلوبة للاتصال بشبكة VPN
- cipher: طريقة التشفير التي تستخدمها شبكة VPN. يُرجى الاطّلاع على
رموز AEAD المتوافقة
مع بروتوكول Shadowsocks
يُرجى الاطّلاع على إعدادات مفاتيح الوصول لمزيد من التفاصيل حول جميع الطرق
التي يمكنك استخدامها لضبط إمكانية الوصول إلى خادم Outline، بما في ذلك بروتوكولات نقل البيانات ونقاط النهاية
وبرامج الاتصال ومتتبِّعات الحِزم.
في حال كان لديك مفتاح وصول ثابت حاليًا، يمكنك استخراج المعلومات لإنشاء
مفتاح وصول ديناميكي استنادًا إلى عناصر JSON أو YAML. وتكون مفاتيح الوصول الثابتة
بالنمط التالي:
SS-URI = "ss://" userinfo "@" hostname ":" port [ "/" ] [ "#" tag ]
userinfo = websafe-base64-encode-utf8(method ":" password)
method ":" password
مثال:
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpleGFtcGxl@outline-server.example.com:8388/?outline=1
والآن بعد فهم كيفية إنشاء مفاتيح الوصول الديناميكية، من المُهمّ
اختيار منصة استضافة مناسبة لإعدادات مفاتيح الوصول. وعند تنفيذ هذا الإجراء،
يُرجى الأخذ بعين الاعتبار بعض العوامل مثل موثوقية المنصة
وأمانها وسهولة استخدامها ومقاومتها للرقابة. هل ستوفّر هذه المنصة معلومات مفاتيح الوصول باستمرار
بدون فترة توقف عن العمل؟ هل تقدِّم هذه المنصة
إجراءات أمان مناسبة لحماية إعداداتك؟ ما مدى سهولة إدارة
معلومات مفاتيح الوصول على هذه المنصة؟ هل يمكن الوصول إلى تلك المنصة في المناطق
التي يُفرض فيها رقابة على الإنترنت؟
في الحالات التي يكون فيها الوصول إلى المعلومات محدودًا، يمكنك استضافة تلك المعلومات
على المنصات المقاوِمة للرقابة مثل Google Drive أو
pad.riseup.net أو Amazon
S3
(بإذن وصول من المسار إلى النمط) أو
Netlify
أو مراكز GitHub
السرية.
وعليك تقييم احتياجات النشر المحدّدة واختيار منصة تتوافق
مع متطلباتك لتسهيل الاستخدام وتعزيز الأمان.
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-03-13 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-03-13 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eThe Outline Client now supports Dynamic Access Keys, allowing for real-time updates to VPN access information without reissuing keys.\u003c/p\u003e\n"],["\u003cp\u003eDynamic Access Keys can host access information as either an \u003ccode\u003ess://\u003c/code\u003e link, simplifying setup for those needing only server switching, or as a JSON object to enable changes to server, port, password, and encryption method.\u003c/p\u003e\n"],["\u003cp\u003eGoogle Sheets, Riseup pad, S3, and Netlify are presented as censorship-resistant options for storing dynamic access information, with clear instructions on how to configure each for use with \u003ccode\u003essconf://\u003c/code\u003e protocol.\u003c/p\u003e\n"],["\u003cp\u003eExisting static access keys can be used to derive the necessary information (server, port, password, method) for creating a JSON-based dynamic key, which is done by decoding the base64 password, then filling in each of the relevant fields.\u003c/p\u003e\n"],["\u003cp\u003eCustom error messages can be sent to users via Dynamic Access Keys by adding an "error" key to the JSON object, allowing for tailored feedback in case of connection failures.\u003c/p\u003e\n"]]],["The Outline Client supports Dynamic Access Keys, allowing VPN information to be hosted remotely and updated dynamically. This enables changing the VPN's location, port, password, and encryption method without re-issuing keys. Access information can be stored as an `ss://` link or a JSON object containing the server, server_port, password, and method. Censorship-resistant options like Google Sheets, pad.riseup.net, S3, and Netlify are suggested for hosting. Dynamic access keys are created by replacing `https://` with `ssconf://` in the access information URL, the user can also include an error message for their end user.\n"],null,["# Dynamic Access Keys\n\nOutline offers two types of access keys: static and dynamic. Static keys encode\nall the connection information within the key itself, while dynamic keys encode\nthe location of the connection information, allowing you to store that\ninformation remotely and change it if needed. This means you can update your\nserver configuration without having to generate and distribute new keys to your\nusers. This document explains how to use dynamic access keys for more flexible\nand efficient management of your Outline server.\n\nThere are three formats to specify the access information that will be used by\nyour dynamic access keys:\n\n### Use an `ss://` Link\n\n*Outline Client v1.8.1+.*\n\nYou can directly use an existing `ss://` link. This method is ideal if you don't\nneed to frequently change the server, port, or encryption method, but still want\nthe flexibility to update the server address.\n\n**Example:** \n\n ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpleGFtcGxl@outline-server.example.com:8388/?outline=1\n\n### Use a JSON object\n\n*Outline Client v1.8.0+.*\n\nThis method offers more flexibility for managing all aspects of your users'\nOutline connection. You can update the server, port, password, and encryption\nmethod this way.\n\n**Example:** \n\n {\n \"server\": \"outline-server.example.com\",\n \"server_port\": 8388,\n \"password\": \"example\",\n \"method\": \"chacha20-ietf-poly1305\"\n }\n\n- **server:** The domain or IP address of your VPN server.\n- **server_port:** The port number your VPN server is running on.\n- **password:** The password required to connect to the VPN.\n- **method:** The encryption method used by the VPN. Refer to the Shadowsocks supported [AEAD ciphers](https://shadowsocks.org/doc/aead.html)\n\n### Use a YAML Object\n\n*Outline Client v1.15.0+.*\n\nThis method is similar to the previous JSON method but adds even more\nflexibility by leveraging Outline's advanced configuration format. You can\nupdate the server, port, password, encryption method, and much more.\n\n**Example:** \n\n transport:\n $type: tcpudp\n tcp:\n $type: shadowsocks\n endpoint: outline-server.example.com:8388\n cipher: chacha20-ietf-poly1305\n secret: example\n udp:\n $type: shadowsocks\n endpoint: outline-server.example.com:8388\n cipher: chacha20-ietf-poly1305\n secret: example\n\n- **transport:** Defines the transport protocols to be used (TCP and UDP in this case).\n- **tcp/udp:** Specifies the configuration for each protocol.\n - **$type:** Indicates the type of configuration, here it's shadowsocks.\n - **endpoint:** The domain or IP address and port of your VPN server.\n - **secret:** The password required to connect to the VPN.\n - **cipher:** The encryption method used by the VPN. Refer to the Shadowsocks supported [AEAD\n ciphers](https://shadowsocks.org/doc/aead.html).\n\nSee [Access Key Configuration](/outline/docs/guides/service-providers/config) for details on all the ways you can\nconfigure access to your Outline server, including transports, endpoints,\ndialers, and packet listeners.\n\nExtract Access Information from a Static Key\n--------------------------------------------\n\nIf you have an existing static access key, you can extract the information to\ncreate a JSON- or YAML-based dynamic access key. Static access keys follow the\nfollowing pattern: \n\n SS-URI = \"ss://\" userinfo \"@\" hostname \":\" port [ \"/\" ] [ \"#\" tag ]\n userinfo = websafe-base64-encode-utf8(method \":\" password)\n method \":\" password\n\nExample: \n\n ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpleGFtcGxl@outline-server.example.com:8388/?outline=1\n\n- **Server:** `outline-server.example.com`\n- **Server Port:** `8388`\n- **User Info:** `Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpleGFtcGxl` Decoded as\n [base64](https://en.wikipedia.org/wiki/Base64) using a tool like the [Google\n Admin Toolbox\n Encode/Decode](https://toolbox.googleapps.com/apps/encode_decode/)\n\n - **Method** : `chacha20-ietf-poly1305`\n - **Password** : `example`\n\nChoose a Hosting Platform\n-------------------------\n\nNow that you understand how to create dynamic access keys, it's important to\nchoose a suitable hosting platform for your access key configuration. When\nmaking this decision, consider factors like the platform's reliability,\nsecurity, ease of use, and censorship resistance. Will the platform consistently\nserve your access key information without downtime? Does it offer appropriate\nsecurity measures to protect your configuration? How easy is it to manage your\naccess key information on the platform? Is the platform accessible in regions\nwith internet censorship?\n\nFor situations where access to information might be restricted, consider hosting\non censorship-resistant platforms like [Google Drive](https://drive.google.com),\n[pad.riseup.net](https://pad.riseup.net/), [Amazon\nS3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html)\n(with path-style access),\n[Netlify](https://dev.to/alexmercedcoder/delivering-json-data-with-netlify-1j96),\nor [GitHub secret\ngists](https://docs.github.com/en/get-started/writing-on-github/editing-and-sharing-content-with-gists/creating-gists).\nEvaluate the specific needs of your deployment and choose a platform that aligns\nwith your requirements for accessibility and security."]]