MONO VPN
الوثائق الفنية

تكوين SSTP و NaiveProxy

أمثلة محايدة للموفر لتوصيل الخادم الخاص بك أو نقطة خارجية بـ MONO VPN. حدد المخطط المطلوب وقم بتكييفه مع البنية التحتية الخاصة بك.

خادم SSTP

يتطلب SSTP اسم مضيف عام، TCP 443 أو منفذ TCP آخر متاح، وشهادة TLS، ومصادقة PPP، وتكوين IPv4 على الخادم. تعد عمليات نشر أنماط RouterOS وSoftEther وWindows RRAS مناسبة إذا كانت توفر خدمة SSTP متوافقة.

مثال على نمط RouterOS

/ip pool
add name=your-pool ranges=10.20.30.10-10.20.30.200

/ppp profile
add name=sstp-profile \
    local-address=10.20.30.1 \
    remote-address=your-pool \
    dns-server=1.1.1.1,8.8.8.8 \
    use-encryption=yes

/ppp secret
add name=username password="strong-password" service=sstp profile=sstp-profile

/interface sstp-server server
set enabled=yes \
    port=443 \
    certificate=your-certificate-name \
    authentication=mschap2 \
    default-profile=sstp-profile

رابط الاتصال

sstp://username:strong-password@yourdomain.com:443?name=Office&cc=DE&label=Work
  • استخدم شهادة TLS عامة صالحة كلما أمكن ذلك.
  • افتح منفذ SSTP TCP في جدار الحماية.
  • قم بإنشاء بيانات اعتماد فريدة لكل مستخدم أو جهاز.
  • اسمح لخادم PPP بتوفير معلمات IP وDNS إذا كان نظامك يدعمها.
  • استخدم قيود RADIUS أو الخادم الأصلي لانتهاء الصلاحية، والمحاسبة، وحدود الجلسة المتزامنة.

قائمة فحص تشخيص SSTP

الأعراضما يجب التحقق منه
يتم إغلاق TLS على الفورسلسلة الشهادات، SNI/اسم المضيف، جدار الحماية، سياسة TLS غير المدعومة أو الوكيل قبل SSTP.
خطأ في المصادقةتسجيل الدخول وكلمة المرور وطريقة مصادقة PPP وحالة الحساب وتاريخ انتهاء الصلاحية السري واستجابة RADIUS.
متصل، ولكن لا توجد حركة مرورالمسارات، NAT/masquerade، DNS، قواعد إعادة التوجيه في جدار الحماية وتجمع IP للخادم.
ينقطع عند تغيير الشبكةسياسة مهلة الخادم وسلوك إعادة اتصال العميل: عند نقل شبكة Wi-Fi/شبكة الهاتف المحمول إلى iOS، قد تتم إعادة إنشاء المسار.

NaiveProxy مع العلبة

يستخدم نظام NaiveProxy الشائع العلبة مع مجموعة تضيف وكيلًا للأمام. الجزء المهم هو مصادقة HTTP CONNECT عبر TLS. قد يختلف البناء الدقيق لصيغة Caddy والمكونات الإضافية، لذا فإن نمط النشر الموضح أدناه ليس مضمونًا للنسخ واللصق.

yourdomain.com {
    tls admin@yourdomain.com

    route {
        forward_proxy {
            basic_auth username strong-password
            hide_ip
            hide_via
            probe_resistance
        }

        respond 204
    }
}
naive+https://username:strong-password@yourdomain.com:443?sni=yourdomain.com&name=Office&cc=DE&label=Work

غالبًا ما يتم اختيار هذا الخيار لإكمال TLS المعتاد في الوكيل والشهادات التلقائية والمصادقة الأساسية البسيطة.

NaiveProxy مع صندوق الغناء

هناك خيار آخر وهو تشغيل صندوق الغناء مباشرة من Naive inbound. يعد هذا مناسبًا عندما يجب أن يمتلك ثنائي واحد كلاً من مستمع الوكيل ومنطق التوجيه.

{
  "log": { "level": "warn" },
  "inbounds": [
    {
      "type": "naive",
      "tag": "naive-in",
      "listen": "0.0.0.0",
      "listen_port": 443,
      "users": [
        { "username": "username", "password": "strong-password" }
      ],
      "tls": {
        "enabled": true,
        "server_name": "yourdomain.com",
        "certificate_path": "/etc/letsencrypt/live/yourdomain.com/fullchain.pem",
        "key_path": "/etc/letsencrypt/live/yourdomain.com/privkey.pem"
      }
    }
  ],
  "outbounds": [
    { "type": "direct", "tag": "direct" }
  ],
  "route": { "final": "direct" }
}
[Unit]
Description=sing-box naive proxy
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/sing-box run -c /etc/sing-box/config.json
Restart=on-failure
RestartSec=3
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

UDP-over-TCP لـ NaiveProxy

NaiveProxy موجه بشكل أساسي لـ TCP. إذا كان المستخدمون بحاجة إلى حركة مرور تشبه UDP من خلال ملف تعريف Naive، فيمكن لـ MONO VPN توجيه تدفقات UDP إلى مستمع Naive TCP منفصل. أضف uot إلى الارتباط وتشغيل مستمع متوافق على هذا المنفذ.

naive+https://username:strong-password@yourdomain.com:443?sni=yourdomain.com&uot=8443
{
  "log": { "level": "warn" },
  "inbounds": [
    {
      "type": "naive",
      "tag": "naive-uot-in",
      "listen": "0.0.0.0",
      "listen_port": 8443,
      "users": [
        { "username": "username", "password": "strong-password" }
      ],
      "tls": {
        "enabled": true,
        "server_name": "yourdomain.com",
        "certificate_path": "/etc/letsencrypt/live/yourdomain.com/fullchain.pem",
        "key_path": "/etc/letsencrypt/live/yourdomain.com/privkey.pem"
      }
    }
  ],
  "outbounds": [
    { "type": "direct", "tag": "direct" }
  ],
  "route": { "final": "direct" }
}

افتح منفذ UoT TCP فقط عند استخدام هذا الوضع. إذا uot مفقود، يستخدم MONO VPN فرع NaiveProxy العادي لحركة مرور TCP وليس هناك حاجة إلى مستمع إضافي.

السلامة والتشغيل

  • لا تنشر كلمات مرور حقيقية أو بيانات اعتماد الجذر أو المفاتيح العامة طويلة الأمد.
  • قم بإصدار بيانات اعتماد فريدة لكل مستخدم أو جهاز.
  • استدعاء البيانات وتدويرها عند مغادرة المستخدم، أو تسرب الرابط، أو انتهاء صلاحية الوصول.
  • قم بتحديث Caddy أو Sing-box أو RouterOS أو SoftEther أو حزمة VPN المحددة.
  • تحديد منافذ الإدارة حسب مصدر IP والإدارة المنفصلة عن منافذ VPN/الوكيل.
ufw allow 443/tcp
ufw allow 443/udp
ufw allow 8443/tcp

افتح فقط المنافذ التي تتوافق مع تصميمك. يعد UDP 443 اختياريًا ويعتمد على استخدام QUIC/HTTP3. TCP 8443 مطلوب فقط لمثال UDP-over-TCP.