تنزيل

ForestVPN لـMikroTik

ForestVPN كحاوية على مُوجِّه MikroTik يشغّل RouterOS 7. يسجّل نفسه جهازًا مستقلًا ويطبع رمز اقتران.

احصل عليه

احصل عليه

suquant/fvpn:0.3.17

المتطلبات

المتطلبات

RouterOS
7.21 أو أحدث. ترفض الإصدارات الأقدم كتلة التثبيت.
دعم الحاويات
حزمة container مثبَّتة ووضع جهاز الحاويات مفعَّل. تفعيله يتطلب وصولًا ماديًا إلى المُوجِّه، وهذه قاعدة MikroTik لا قاعدتنا.
المعالج
arm أو arm64 أو x86.
مُوجِّه واحد، جهاز واحد
تحتفظ الحاوية بمفتاح الجهاز الخاص بها وترتبط بحسابك كجهاز مستقل.
التثبيت

التثبيت

حاوية RouterOS، تم التحقق منها على أجهزة حقيقية — جهاز MikroTik cAP ax جلب الصورة، وسجّل، وطبع رمز إقران، واتصل. يحمل مفتاح جهازه الخاص ويطلب من طبقة التحكم نقطة خروج بالطريقة نفسها التي يفعلها الهاتف.

  1. 01

    امنح الحاوية عنوانها الخاص

    ثلاثة أسطر في طرفية RouterOS — شبكة فرعية /30 لا توجد إلا بين الحاوية والراوتر، لا شيء تبحث عنه في شبكتك المحلية.

  2. 02

    أضف الحاوية وابدأها

    صورة مثبَّتة الإصدار، لا :latest — راوتر لست واقفًا أمامه يجب ألا يبدّل ما يشغّله بصمت أبدًا.

  3. 03

    اقرأ رمز الإقران

    يُطبع في /log قبل أن تملك الحاوية أي وصول للشبكة على الإطلاق. افتح تطبيق ForestVPN، وقد سجّلت الدخول فيه برقم حسابك، وأدخل الرمز.

  4. 04

    اختر نقطة الخروج من هاتفك

    يقدّم الراوتر صفحة حالته الخاصة على العنوان الذي منحته له للتو — افتحها من هاتف على الشبكة نفسها واضغط موقعًا. هذا هو الشيء الوحيد الذي لا يستطيع جهاز بلا شاشة القيام به بنفسه.

التثبيت كاملًا
/interface/veth/add name=veth-fvpn address=172.31.254.2/30 gateway=172.31.254.1
/ip/address/add address=172.31.254.1/30 interface=veth-fvpn
/interface/list/member/add list=LAN interface=veth-fvpn
# A `flash` folder (hAP ac² and other 16 MB boards) means only flash/ survives a reboot: the state
# goes there, the log stays in RAM, and the image is pulled again at every boot.
:global fvRAMROOT ([:len [/file/find where name="flash"]] > 0)
:global fvSTATE "/forestvpn"
:global fvCMD "--agent --nat-lan --iface fvpn0 --config /etc/forestvpn/fvpn0.conf --policy-route --fwmark 51820 --table 100 --http-port 80 --report /etc/forestvpn/result.txt"
:if ($fvRAMROOT) do={
    :global fvSTATE
    :global fvCMD
    :set fvSTATE "flash/forestvpn"
    :set fvCMD ($fvCMD . " --log-dir /var/log")
}
/container/mounts/add list=fvpn-state src=$fvSTATE dst=/etc/forestvpn mode=rw
/container/add remote-image=suquant/fvpn:0.3.17 interface=veth-fvpn root-dir=/fvpn \
    mountlists=fvpn-state entrypoint=/mikrotik.sh cmd=$fvCMD \
    privileged=yes logging=yes start-on-boot=yes dns=172.31.254.1 name=fvpn
:if ($fvRAMROOT) do={
    /container/set [find name="fvpn"] start-on-boot=no
    /system/script/add name=forestvpn-repull comment="forestvpn" source={
:local c [/container/find where name="fvpn"]
:if ([:len $c] = 1) do={
    :local n 0
    :while ((![/container/get $c running]) && ($n < 60)) do={
        :set n ($n + 1)
        :log info ("ForestVPN: pulling the image into the RAM root, attempt " . $n)
        :do { /container/repull $c } on-error={}
        :local w 0
        :local s ""
        :while (($w < 60) && ($s = "")) do={
            :set w ($w + 1)
            :delay 5s
            :local st [:pick [/container/print as-value where name="fvpn"] 0]
            :if (($st->"stopped") = true) do={ :set s "stopped" }
            :if (($st->"download/extract failed") = true) do={ :set s "failed" }
        }
        :if ($s = "stopped") do={
            :do { /container/start $c } on-error={}
            :delay 30s
        } else={
            :log warning "ForestVPN: image pull failed, retrying in 60s"
            :delay 60s
        }
    }
    :if (![/container/get $c running]) do={
        :log error "ForestVPN: the container is still not running after 60 pulls; see /container/print"
    }
}
}
    /system/scheduler/add name=forestvpn-repull start-time=startup comment="forestvpn" \
        on-event="/system/script/run forestvpn-repull"
}
/container/start [find name="fvpn"]

كل سطر أساسي، و`cmd=` أهمّها.

بلا `--agent` يشغّل نقطة الدخول المُشغِّل الخام بدلًا من ذاك المُدار بالحساب، ويبحث عن ملف `.conf` لم يكتبه أحد، وتخرج الحاوية برسالة `fvpn0 never appeared`. النقطة الأخرى هي التركيب (mount): الصورة هي `scratch`، فلا شيء ينجو من إعادة التشغيل سوى ما هو مُركَّب، وفقدان تركيب مفتاح الجهاز يعني أن الراوتر يعود كجهاز جديد تمامًا سقط بصمت عن حسابك.

التشغيل الأول

التشغيل الأول

  1. 01

    اقرأ رمز الاقتران

    يُطبع في /log، ويقدّم المُوجِّه صفحة حالة على http://172.31.254.2/.

  2. 02

    أدخله في التطبيق

    افتح ForestVPN على هاتف سجّلت الدخول فيه وأدخل الرمز. يتم الربط من التطبيق لا من المُوجِّه.

  3. 03

    اختر الخروج

    في صفحة الحالة اضغط على موقع.

ما الذي يعمل على MikroTik

ما الذي يعمل على MikroTik

المُوجِّه كله، نفق واحد
تمرّر الحاوية عبر النفق ما يسلّمه RouterOS إليها. ويقرر RouterOS أي حركة مرور هي.
صورة مثبَّتة
يستخدم التثبيت وسم صورة ثابتًا، وليس :latest أبدًا، حتى لا يغيّر مُوجِّه لست بقربه ما يشغّله دون أن تدري.
اللوحات ذات مجلد flash
تحتفظ لوحات مثل hAP ac² بمجلد flash فقط بعد إعادة التشغيل. وكتلة التثبيت تتولى ذلك.

غير متوفر بعد على MikroTik: اختيار المواقع أو الخدمات حسب الوجهة من داخل ForestVPN. يتخذ RouterOS قرار التوجيه.

الجديد على MikroTik

الجديد على MikroTik

0.3.16

  • The router now makes its own account and name-lookup requests through the same fallback paths as the apps, so it keeps reaching ForestVPN on networks that interfere with them.

0.3.15

  • A router stays on the location you chose: the fallback path no longer moves it to another one.
  • Tested on an arm64 router before release; not yet on 32-bit ARM hardware.

0.3.14

  • Boards with a flash folder (the hAP ac² and other 16 MB boards) now keep their key and settings across a reboot.

كل ملاحظات الإصدارات

التحديثات

التحديثات

الانتقال إلى صورة أحدث خطوة مقصودة، لأن الوسم مثبَّت.

اقرأ سجل التغييرات

تحقق من تنزيلك

تحقق من تنزيلك

الصورة هي suquant/fvpn:0.3.17. الوسم مثبَّت ومنشور على Docker Hub؛ وتستخدم كتلة التثبيت هذا الوسم تحديدًا.

إزالة التثبيت

إزالة التثبيت

أوقف الحاوية وأزلها بالأمرين /container/stop و/container/remove، ثم احذف veth وعنوانها. يبقى الجهاز في حسابك إلى أن تزيله في التطبيق.

أسئلة شائعة

أي مُوجِّهات MikroTik تعمل؟
أي مُوجِّه يشغّل RouterOS 7.21 أو أحدث مع حزمة container. تُبنى الصورة لـarm وarm64 وx86، وقد جرى التحقق منها على عتاد arm64 حقيقي.
هل أحتاج إلى قرص؟
لا، للتثبيت البسيط بالحاوية المعروض هنا. اللوحات ذات مجلد flash تحتفظ بذلك المجلد فقط بعد إعادة التشغيل، والكتلة تتولى ذلك.
هل من الآمن استخدام :latest؟
لا. يثبّت التثبيت وسم صورة حتى لا يغيّر مُوجِّه لست بقربه ما يشغّله دون أن تدري.
العربية
اسألنا أي شيء