Unduh

ForestVPN untuk MikroTik

ForestVPN sebagai kontainer di router MikroTik yang menjalankan RouterOS 7. Ia terdaftar sebagai perangkat tersendiri dan mencetak kode pemasangan.

Dapatkan

Dapatkan

suquant/fvpn:0.3.17

Persyaratan

Persyaratan

RouterOS
7.21 atau lebih baru. Versi yang lebih lama menolak blok pemasangan.
Dukungan kontainer
Paket container terpasang dan mode perangkat kontainer aktif. Mengaktifkannya memerlukan akses fisik ke router, aturan MikroTik, bukan aturan kami.
Prosesor
arm, arm64, atau x86.
Satu router, satu perangkat
Kontainer menyimpan kunci mesinnya sendiri dan ditautkan ke akun Anda sebagai perangkat tersendiri.
Pemasangan

Pemasangan

Kontainer RouterOS, diverifikasi pada perangkat keras nyata — sebuah MikroTik cAP ax mengambil image-nya, mendaftar, mencetak kode pemasangan, dan tersambung. Kontainer ini menyimpan kunci mesinnya sendiri dan meminta exit ke control plane dengan cara yang sama seperti ponsel.

  1. 01

    Beri kontainer alamatnya sendiri

    Tiga baris di terminal RouterOS — sebuah /30 yang hanya ada di antara kontainer dan router, tidak ada yang perlu dicari di LAN Anda.

  2. 02

    Tambahkan dan jalankan kontainernya

    Image yang disematkan (pinned), bukan :latest — router yang tidak sedang Anda awasi langsung sebaiknya tidak pernah diam-diam berganti apa yang sedang dijalankannya.

  3. 03

    Baca kode pemasangannya

    Kode ini dicetak ke /log sebelum kontainer punya akses jaringan sama sekali. Buka aplikasi ForestVPN, yang sudah masuk dengan nomor akun Anda, lalu masukkan kodenya.

  4. 04

    Pilih exit dari ponsel Anda

    Router menyajikan halaman statusnya sendiri di alamat yang baru saja Anda berikan — buka dari ponsel di jaringan yang sama dan ketuk sebuah lokasi. Itulah satu-satunya hal yang tidak bisa dilakukan sendiri oleh kotak tanpa layar.

Instalasi lengkapnya
/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"]

Setiap baris itu penting, `cmd=` yang paling penting.

Tanpa `--agent`, entrypoint menjalankan tunneller mentah alih-alih yang dikelola akun, mencari `.conf` yang tidak pernah ditulis siapa pun, dan kontainer keluar dengan pesan `fvpn0 never appeared`. Mount adalah bagian lainnya: image-nya adalah `scratch`, jadi tidak ada yang bertahan setelah restart kecuali yang di-mount, dan kehilangan mount kunci mesin berarti router kembali sebagai perangkat yang benar-benar baru yang diam-diam sudah lepas dari akun Anda.

Pertama kali dijalankan

Pertama kali dijalankan

  1. 01

    Baca kode pemasangan

    Kode dicetak ke /log, dan router menyajikan halaman status di http://172.31.254.2/.

  2. 02

    Masukkan di aplikasi

    Buka ForestVPN di ponsel tempat Anda sudah masuk lalu masukkan kodenya. Tautan dibuat dari aplikasi, bukan dari router.

  3. 03

    Pilih exit

    Di halaman status, ketuk sebuah lokasi.

Apa yang berfungsi di MikroTik

Apa yang berfungsi di MikroTik

Seluruh router, satu terowongan
Kontainer menerowongkan apa yang diberikan RouterOS kepadanya. RouterOS yang menentukan lalu lintas mana itu.
Image yang dikunci
Pemasangan memakai tag image tetap, tidak pernah :latest, agar router yang tidak sedang Anda hadapi tidak diam-diam mengganti apa yang dijalankannya.
Papan dengan folder flash
Papan seperti hAP ac² hanya mempertahankan folder flash setelah dihidupkan ulang. Blok pemasangan menanganinya.

Belum ada di MikroTik: memilih situs atau layanan per tujuan dari dalam ForestVPN. RouterOS yang memutuskan perutean.

Yang baru di MikroTik

Yang baru di 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.

Semua catatan rilis

Pembaruan

Pembaruan

Pindah ke image yang lebih baru adalah langkah yang disengaja, karena tag-nya dikunci.

Baca catatan perubahan

Periksa unduhan Anda

Periksa unduhan Anda

Image-nya adalah suquant/fvpn:0.3.17. Tag dikunci dan diterbitkan di Docker Hub; blok pemasangan memakai persis tag ini.

Pencopotan

Pencopotan

Hentikan dan hapus kontainer dengan /container/stop dan /container/remove, lalu hapus veth dan alamatnya. Perangkat tetap ada di akun Anda sampai Anda menghapusnya di aplikasi.

Pertanyaan umum

Router MikroTik mana yang berfungsi?
Router apa pun yang menjalankan RouterOS 7.21 atau lebih baru dengan paket container. Image dibangun untuk arm, arm64, dan x86, dan telah diverifikasi di perangkat keras arm64 sungguhan.
Apakah saya perlu disk?
Tidak, untuk pemasangan kontainer sederhana yang ditunjukkan di sini. Papan dengan folder flash hanya mempertahankan folder itu setelah dihidupkan ulang, dan blok pemasangan menanganinya.
Apakah aman memakai :latest?
Tidak. Pemasangan mengunci tag image agar router yang tidak sedang Anda dekati tidak diam-diam mengubah apa yang dijalankannya.
Bahasa Indonesia
Tanyakan apa saja pada kami