[OPEN CALL 📣] Bring NymVPN to OpenWRT!

It is available. Tunnel Settings > Always On

after reviewing further it is missing from the apk package. Thank you for bringing this to my attention!

Fixed in latest release:
https://github.com/dial0ut/nym-vpn-openwrt/releases/tag/v1.30.5

It seems like I can’t update through apk, wget error 8 when downloading the .apk

Can you do nym-vpnc --version?

It is the old version

1 Like

Try re-running the installer.

curl -fsSL https://packages.dial0ut.org/install.sh | sh

If this doesn’t fix it, you can run:

# 1. Trust key
wget -O /etc/apk/keys/dial0ut-apk.pem https://raw.githubusercontent.com/dial0ut/nym-vpn-openwrt/openwrt/scripts/feed/dial0ut-apk.pem

# 2. Add repo
ARCH=$(. /etc/openwrt_release; echo "$DISTRIB_ARCH")
echo "https://packages.dial0ut.org/apk/${ARCH}/packages.adb" > /etc/apk/repositories.d/nym-vpn.list

# 3. Verify the feed is clean, then install latest via the installer
apk update
curl -fsSL https://packages.dial0ut.org/install.sh | sh

|Hostname|OpenWrt|
|—|—|
|Model|Cudy TR3000 v1|
|Architecture|ARMv8 Processor rev 4|
|Target Platform|mediatek/filogic|
|Firmware Version|OpenWrt 25.12.5 r33051-f5dae5ece4 / LuCI (HEAD detached at 128a7812) branch 26.180.75667~128a781|
|Kernel Version|6.12.94|
NymVPN: Version: 1.30.5 Network: mainnet
Diagnostic Run: Passed All

hello guys,

now i also trying to use the nym vpn on my Cudy device, but its still not working.

Diagnostic is passed already.

but it comes an error “tunnel error switch gateways” but this helps nothing

edit: i have also made some commands on the cli, it seems that the tun device isnt availiable:


root@OpenWrt:~# nym-vpnc connect-v2
root@OpenWrt:~# nym-vpnc status
State: Error state: TunDevice
root@OpenWrt:~# curl ifconfig.me
2a02:810d:9506:7800:82af:caff:fed9:4d1droot@OpenWrt:~#
root@OpenWrt:~#
root@OpenWrt:~#
root@OpenWrt:~# nym-vpnc gateway set --exit-country CH
root@OpenWrt:~# nym-vpnc status
State: Error state: TunDevice
root@OpenWrt:~#

Found the first issue : kmod-tun was missing seems that the installation curl routine doesnt installed it.
Now the connection seems working

Next one is an old one:
its still massive lagging if i try to open up some websites, its not really possible to use the internet in an normal way, but speed seems ok about 40-50 mbit/s.

best regards

1 Like

Thank you for the detailed diagnostics! I’ll fix that dependency issue asap.

The only thing I can think of to increase speed is using kernel WireGuard. We’re currently using GitHub - mullvad/gotatun: Userspace WireGuard® Implementation in Rust · GitHub, a fork of BoringTun which is ~10-30% slower than kernel wg. I’ll look into performance optimizations.

On my GLinet AX1800 it’s not fast by any means but I don’t experience the lags you mention, connectivity works smoothly. I’m sure you’ve already done this but try switching your entry / exit to somewhere geographically close. Also try disabling IPv6.

Hello @code-zm

I made some more tests and i found out it works well ( but not so seamless like with an app on an Client) with quic option on.

So its sth. in the way, i dont really understand , asfaiu when the issue is the provider, it should be also issues occouring with the app client solution or.

But its a huge improvement

Btw. How is the Killswitch implemented with ip link monitor or also watchdog , (or completely anything else )first seems an better solution for me cause its not an polling solution.

Update:
And the Killswitch seems not working with ipv6 and quic on, at least on my system

Regards

2 Likes

@moejoe
Glad QUIC works better for you.

The killswitch is neither, it’s a nftables table, no monitoring loop at all.

Always-on is a separate watchdog that does poll, but the daemon already reconnects on its own events so the watchdog only catches a dead/hung daemon. Could potentially move it to the daemon’s status stream later for instant reconnects instead of polling.

Thanks for finding the IPv6 + QUIC leak, fixed in 1.31.0, along with TCP MSS clamping for stability & more.

1 Like

v1.31.0

  • Added Mixnet Tuning feature in LuCI
  • Fixed killswitch leaking established IPv6 flows during tunnel reconnects
  • Fixed .apk packages missing deps on fresh install
  • Synced upstream core fixes
1 Like

Hello again,
i want to test if these lags are coming from my main router or sth. else.

so i want to config my cudy tr 3000 that it act in an client mode that im able to connect my mobile phone as an hotspot, that im able to exclude the noise from my evironment.

unfortunately im not sure what i have to change and how i can get back to the state before.

could someone help that im able to debug my lagging issues when i use nym vpn without quic ?

regards

1 Like

I can help, DM’d you

v1.32.0

Hello guys,

I got an error with the new 1.32 Version:

        ⋯
Mon Jul 20 22:10:33 2026 daemon.info nym-vpnd[2792]: 2026-07-20T22:10:33.793904Z  WARN nym_vpnd::service::vpn_service: RunDiagnostic took 7287 ms to execute
        ⋯
Mon Jul 20 22:17:50 2026 daemon.info nym-vpnd[2792]: 2026-07-20T22:17:50.222355Z  WARN nym_statistics::handler::usage: UsageHandler: Received disconnect request event while in state NoSession
        ⋯
Mon Jul 20 22:17:50 2026 daemon.info nym-vpnd[2792]: 2026-07-20T22:17:50.387107Z ERROR nym_routing::imp::imp: Failed to remove route: ::/0 via dev nym1 table 333 mtu 1340: netlink error
        ⋯
Mon Jul 20 22:17:50 2026 daemon.info nym-vpnd[2792]: 2026-07-20T22:17:50.415966Z ERROR nym_sqlx_pool_guard::imp: Failed to read symlink: No such file or directory (os error 2)
Mon Jul 20 22:17:50 2026 daemon.info nym-vpnd[2792]: 2026-07-20T22:17:50.416744Z ERROR nym_sqlx_pool_guard::imp: Failed to read symlink: No such file or directory (os error 2)
        ⋯
Mon Jul 20 22:17:50 2026 daemon.info nym-vpnd[2792]: 2026-07-20T22:17:50.418108Z ERROR nym_sqlx_pool_guard::imp: Failed to read symlink: No such file or directory (os error 2)
Mon Jul 20 22:17:50 2026 daemon.info nym-vpnd[2792]: 2026-07-20T22:17:50.422641Z ERROR nym_sqlx_pool_guard::imp: Failed to read symlink: No such file or directory (os error 2)
        ⋯
Mon Jul 20 22:17:55 2026 daemon.info nym-vpnd[13552]: 2026-07-20T22:17:55.145941Z ERROR nym_vpnd::adblocker: Failed to restore ad-blocking on startup: Failed to download blocklist: curl failed with status exit status: 7:
        ⋯
Mon Jul 20 22:17:56 2026 daemon.info nym-vpnd[13552]: 2026-07-20T22:17:56.414699Z  WARN nym_dns::imp::dnsmasq: dnsmasq generated config did not converge after restart (attempt 1), retrying
Mon Jul 20 22:17:59 2026 daemon.info nym-vpnd[13552]: 2026-07-20T22:17:59.133596Z  WARN nym_dns::imp::dnsmasq: dnsmasq generated config did not converge after restart (attempt 2), retrying
Mon Jul 20 22:17:59 2026 daemon.info nym-vpnd[13552]: 2026-07-20T22:17:59.133650Z  WARN nym_dns::imp::dnsmasq: dnsmasq converge failed (will retry on first use): failed to restart dnsmasq: generated config does not point at managed resolv file after restart

Regards

Could you post the output of uci get dhcp.@dnsmasq[0].noresolv?

Yes, it shows:

root@OpenWrt:~# uci get dhcp.@dnsmasq[0].noresolv
1

1 Like

v1.32.1

  • Fixed: connect failed on routers with noresolv set (AdGuard Home, https-dns-proxy, stubby) - the daemon now leaves dnsmasq alone and your own DNS upstreams just ride the tunnel.
  • Fixed: ad-blocking silently stayed off after a restart or reboot with the kill-switch on.
  • Fixed: a crashed daemon could strand the router behind its own kill switch - stop now always tears the firewall down, and the service respawns instead of giving up.
  • Security: WireGuard (gotatun) bumped to 0.8.1 - fixes a remotely triggerable crash, cross-peer allowed-IPs spoofing, and nonce-limit enforcement.