[OPEN CALL 📣] Bring NymVPN to OpenWRT!

well, well, well …

See here (ancient - but for this device it’s kinda the latest if we don’t count the CVE from November (not that scary, you need to social engineer someone on the same network into updating a firmware to pop a shell if I understood it correctly ) … ) :

```sh
root@GL-XE3000:/tmp/nymvpn# cat /etc/os-release
NAME=“OpenWrt”
VERSION=“21.02-SNAPSHOT”
ID=“openwrt”
ID_LIKE=“lede openwrt”
PRETTY_NAME=“OpenWrt 21.02-SNAPSHOT”
VERSION_ID=“21.02-snapshot”
HOME_URL=“Testing to determine if you are a bot!
BUG_URL=“GitHub · Where software is built
SUPPORT_URL=“https://forum.openwrt.org/”
BUILD_ID=“r15812+882-46b6ee7ffc”
OPENWRT_BOARD=“mediatek/mt7981”
OPENWRT_ARCH=“aarch64_cortex-a53”
OPENWRT_TAINTS=“busybox”
OPENWRT_DEVICE_MANUFACTURER=“OpenWrt”
OPENWRT_DEVICE_MANUFACTURER_URL=“Testing to determine if you are a bot!
OPENWRT_DEVICE_PRODUCT=“Generic”
OPENWRT_DEVICE_REVISION=“v0”
OPENWRT_RELEASE=“OpenWrt 21.02-SNAPSHOT r15812+882-46b6ee7ffc”
root@GL-XE3000:/tmp/nymvpn# uname -a
Linux GL-XE3000 5.4.211 #0 SMP Fri Oct 25 02:39:12 2024 aarch64 GNU/Linux
root@GL-XE3000:/tmp/nymvpn# opkg print-architecture | grep -v all
arch noarch 1
arch aarch64_cortex-a53 10
root@GL-XE3000:/tmp/nymvpn# opkg install ./nym-vpn
nym-vpn_1.21.6_aarch64_generic.ipk nym-vpnc nym-vpnd
```

Either I am a bit rusty after XMAS and NYE or it doesn’t work in this ancient version of OpenWRT lol :

```sh
root@GL-XE3000:/tmp/nymvpn# opkg install ./nym-vpn_1.21.6_aarch64_generic.ipk
Unknown package ‘nym-vpn’.
Collected errors:

  • pkg_hash_fetch_best_installation_candidate: Packages for nym-vpn found, but incompatible with the architectures configured

  • opkg_install_cmd: Cannot install package nym-vpn.
    root@GL-XE3000:/tmp/nymvpn#

    ```

    HOWEVER; the binary itself runs. Let me do some more tests.

    Would you people be open to filling up a short form or chatting in a Telegram/Signal group to see what works/AND what doesn’t ?

    Everything works and worked pretty stellar on my raspberry pis - but GL.INET has a custom fork of OpenWRT which is so behind, it’s not even funny.

oops … okay, well it was PEBKAC. I just had to get aarch64_cortex-a53 - which is not the same as aarch64_generic :stuck_out_tongue:

Now the .ipk installed fine.

The uninstall script just stops the daemon and disables the init script. I need to add some more cleanup to it.

Based on your logs, the daemon is in a crash loop.

Try the following:

  1. Stop the daemon
/etc/init.d/nym-vpnd stop
  1. Try to run the daemon manually:
nym-vpnd
  1. If the daemon runs fine manually, do Ctrl + C to stop it, then restart the daemon service
/etc/init.d/nym-vpnd start

If the daemon doesn’t run manually, run the following commands and share the output:

cat /proc/cpuinfo
cat /etc/openwrt_release

lsmod | grep -E "(wireguard|tun)"

Just pushed some changes that should fix this. The order we apply firewall rules was messing this up.

Latest build is running, try downloading the new version when it’s ready! v1.22.0-beta

1 Like

depends on the device which ure using:

regards

meanwhile, i switched to the an full native openwrt for my gl mt300 n v2.
Powered by LuCI openwrt-24.10 branch (25.340.26705~d88390b) / OpenWrt 24.10.5 (r29087-d9c5716d1d)

but it hasnt helped comes the same error as with the glinet fw one.
Network: Error: Failed to create RPC client Caused by: 0: transport error 1: No such file or directory (os error 2) 2: No such file or directory (os error 2)

so now, i’ll going to try the steps which u recommend in this thread

regards

1 Like

so now i had made the commands also,

here is the output:

i think it seems that the service hasnt started in anyway ( see log bottom)

regards

Try running the daemon manually with just:

nym-vpnd

Does it start?

Nope as i had done this before, in the debug log, it comes the error:
Illegal instruction

You have the wrong version installed.

Download nym-vpn_1.21.6_mipsel_24kc.ipk

Try this release actually sorry: Release Nym VPN v1.22.0-beta ¡ dial0ut/nym-vpn-client ¡ GitHub

No Problem

Do i have to remove the old package first ?

Regards

yes, do opkg remove nym-vpn

1 Like

ah sorry wrong i mentioned the wrong file:
this is the right one which ive used: opkg install nym-vpn_1.22.0-beta_mipsel_24kc.ipk

1 Like

try running this and sharing the output:


# first, stop the daemon service
/etc/init.d/nym-vpnd stop

# run daemon manually 
nym-vpnd 2>&1; dmesg | tail -10

share the output here

root@OpenWrt:~# /etc/init.d/nym-vpnd stop
root@OpenWrt:~# nym-vpnd 2>&1; dmesg | tail -10
Illegal instruction
[  114.372440] eth0.1: entered promiscuous mode
[  114.376866] mtk_soc_eth 10100000.ethernet eth0: entered promiscuous mode
[  115.254405] br-lan: port 1(eth0.1) entered blocking state
[  115.259940] br-lan: port 1(eth0.1) entered forwarding state
[  136.868677] br-lan: port 2(phy0-ap0) entered blocking state
[  136.874465] br-lan: port 2(phy0-ap0) entered disabled state
[  136.880185] mt76_wmac 10300000.wmac phy0-ap0: entered allmulticast mode
[  136.887491] mt76_wmac 10300000.wmac phy0-ap0: entered promiscuous mode
[  137.910306] br-lan: port 2(phy0-ap0) entered blocking state
[  137.916115] br-lan: port 2(phy0-ap0) entered forwarding state

Try this as well:

opkg update && opkg install strace
strace -f /usr/sbin/nym-vpnd 2>&1 | tail -50
readelf -h /usr/sbin/nym-vpnd
 * opkg_install_cmd: Cannot install package readelf.
root@OpenWrt:~# strace -f /usr/sbin/nym-vpnd 2>&1 | tail -50
[pid  8813] open("/etc/os-release", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 9
[pid  8813] fcntl64(9, F_SETFD, FD_CLOEXEC) = 0
[pid  8813] fstat64(9, {st_mode=S_IFREG|0644, st_size=572, ...}) = 0
[pid  8813] _llseek(9, 0, [0], SEEK_CUR) = 0
[pid  8813] read(9, "NAME=\"OpenWrt\"\nVERSION=\"24.10.5\""..., 572) = 572
[pid  8813] read(9, "", 32)             = 0
[pid  8813] close(9)                    = 0
[pid  8813] open("/etc/os-release", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 9
[pid  8813] fcntl64(9, F_SETFD, FD_CLOEXEC) = 0
[pid  8813] fstat64(9, {st_mode=S_IFREG|0644, st_size=572, ...}) = 0
[pid  8813] _llseek(9, 0, [0], SEEK_CUR) = 0
[pid  8813] read(9, "NAME=\"OpenWrt\"\nVERSION=\"24.10.5\""..., 572) = 572
[pid  8813] read(9, "", 32)             = 0
[pid  8813] close(9)                    = 0
[pid  8813] uname({sysname="Linux", nodename="OpenWrt", ...}) = 0
[pid  8813] uname({sysname="Linux", nodename="OpenWrt", ...}) = 0
[pid  8813] getuid()                    = 0
[pid  8813] getgid()                    = 0
[pid  8813] geteuid()                   = 0
[pid  8813] getegid()                   = 0
[pid  8813] socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0) = 9
[pid  8813] connect(9, {sa_family=AF_UNIX, sun_path="/run/dbus/system_bus_socket"}, 29) = -1 ENOENT (No such file or directory)
[pid  8813] --- SIGILL {si_signo=SIGILL, si_code=SI_KERNEL, si_addr=NULL} ---
[pid  8826] <... futex resumed>)        = ?
[pid  8825] <... futex resumed>)        = ?
[pid  8824] <... futex resumed>)        = ?
[pid  8823] <... futex resumed>)        = ?
[pid  8822] <... futex resumed>)        = ?
[pid  8821] <... futex resumed>)        = ?
[pid  8820] <... futex resumed>)        = ?
[pid  8819] <... futex resumed>)        = ?
[pid  8818] <... futex resumed>)        = ?
[pid  8817] <... futex resumed>)        = ?
[pid  8816] <... futex resumed>)        = ?
[pid  8815] <... epoll_pwait resumed> <unfinished ...>) = ?
[pid  8814] <... futex resumed>)        = ?
[pid  8826] +++ killed by SIGILL +++
[pid  8825] +++ killed by SIGILL +++
[pid  8824] +++ killed by SIGILL +++
[pid  8823] +++ killed by SIGILL +++
[pid  8822] +++ killed by SIGILL +++
[pid  8821] +++ killed by SIGILL +++
[pid  8820] +++ killed by SIGILL +++
[pid  8819] +++ killed by SIGILL +++
[pid  8818] +++ killed by SIGILL +++
[pid  8817] +++ killed by SIGILL +++
[pid  8816] +++ killed by SIGILL +++
[pid  8815] +++ killed by SIGILL +++
[pid  8814] +++ killed by SIGILL +++
+++ killed by SIGILL +++
Illegal instruction
root@OpenWrt:~# readelf -h /usr/sbin/nym-vpnd
-ash: readelf: not found
root@OpenWrt:~#

not sure how im able to install readelf on openwrt.

regards

Hell yeah!!! Working fully for me, from what I can see now.
I ll be back in 1-2 days/week and give more feedback

Thanks for the amazing job

1 Like