What's new

NextDNS Installer

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

I can't get this working on my AC86U. It complains about not being able write to write protected filesystem and also complains about unable to allocted memory. Anyone else with an AC86U try this?
Is your /jffs partition mounted? Run
Code:
# df /jffs
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mtdblock4           64256      6512     57744  10% /jffs
It shouldn't say /dev/root but /dev/mtdblock4 (at least on 68U).
 
Is your /jffs partition mounted? Run
Code:
# df /jffs
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mtdblock4           64256      6512     57744  10% /jffs
It shouldn't say /dev/root but /dev/mtdblock4 (at least on 68U).

Yes, I'm running amtm and YazFi already so it should...

Code:
ASUSWRT-Merlin RT-AC86U 384.14-2 Wed Jan  1 03:24:39 UTC 2020
ac86admin@RT-AC86U:/tmp/home/root# df /jffs
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mtdblock8           49152      3504     45648   7% /jffs
ac86admin@RT-AC86U:/tmp/home/root#

EDIT: I think it's trying to write something to /etc/init.d/, said something like it in a message that appeared briefly.
 
Yes, I'm running amtm and YazFi already so it should...

Code:
ASUSWRT-Merlin RT-AC86U 384.14-2 Wed Jan  1 03:24:39 UTC 2020
ac86admin@RT-AC86U:/tmp/home/root# df /jffs
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mtdblock8           49152      3504     45648   7% /jffs
ac86admin@RT-AC86U:/tmp/home/root#

EDIT: I think it's trying to write something to /etc/init.d/, said something like it in a message that appeared briefly.
It might not be detecting your Merlin OS properly? What does the installer say when you start it?
 
What do you get for: "free" and "df -h"?

Code:
ASUSWRT-Merlin RT-AC86U 384.14-2 Wed Jan  1 03:24:39 UTC 2020
ac86admin@RT-AC86U:/tmp/home/root# free
             total       used       free     shared    buffers     cached
Mem:        440420     281108     159312       2072          0      25228
-/+ buffers/cache:     255880     184540
Swap:            0          0          0
ac86admin@RT-AC86U:/tmp/home/root#

Code:
ac86admin@RT-AC86U:/tmp/home/root# df -h
Filesystem                Size      Used Available Use% Mounted on
ubi:rootfs_ubifs         77.2M     63.7M     13.5M  83% /
devtmpfs                214.9M         0    214.9M   0% /dev
tmpfs                   215.0M    216.0K    214.8M   0% /var
tmpfs                   215.0M      1.7M    213.4M   1% /tmp/mnt
mtd:bootfs                4.4M      3.3M      1.1M  75% /bootfs
tmpfs                   215.0M      1.7M    213.4M   1% /tmp/mnt
mtd:data                  8.0M    560.0K      7.5M   7% /data
tmpfs                   215.0M      1.7M    213.4M   1% /tmp
/dev/mtdblock8           48.0M      3.4M     44.6M   7% /jffs
ubi:rootfs_ubifs         77.2M     63.7M     13.5M  83% /usr/sbin/tc
ac86admin@RT-AC86U:/tmp/home/root#
 
You mentioned a message talking about /etc/init.d, any chance to get that message? What do you get for "find /jffs" and "nextdns status"?
 
You mentioned a message talking about /etc/init.d, any chance to get that message? What do you get for "find /jffs" and "nextdns status"?

It just flashes for a second, was visible in earlier versions. First time I try to install it without rebooting I always get this too..

Code:
ac86admin@RT-AC86U:/tmp/home/root# sh -c "$(curl -sL https://nextdns.io/install)"
INFO: OS: asuswrt-merlin
INFO: GOARCH: arm64
INFO: GOOS: linux
i) Install NextDNS
e) Exit
Choice (default=i): i
INFO: Installing NextDNS...
fatal error: out of memory allocating heap arena map

runtime stack:
runtime.throw(0x3e9e5c, 0x27)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/panic.go:774 +0x54 fp=0x7ff6aa2950 sp=0x7ff6aa2920 pc=0x3c4f4
runtime.(*mheap).sysAlloc(0x6f9a60, 0x2000, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/malloc.go:711 +0x594 fp=0x7ff6aa2a00 sp=0x7ff6aa2950 pc=0x1aa64
runtime.(*mheap).grow(0x6f9a60, 0x1, 0xffffffff)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mheap.go:1255 +0x9c fp=0x7ff6aa2a50 sp=0x7ff6aa2a00 pc=0x3496c
runtime.(*mheap).allocSpanLocked(0x6f9a60, 0x1, 0x711c48, 0x0)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mheap.go:1170 +0x230 fp=0x7ff6aa2ad0 sp=0x7ff6aa2a50 pc=0x34810
runtime.(*mheap).alloc_m(0x6f9a60, 0x1, 0x2a, 0x0)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mheap.go:1022 +0xc0 fp=0x7ff6aa2b20 sp=0x7ff6aa2ad0 pc=0x340b0
runtime.(*mheap).alloc.func1()
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mheap.go:1093 +0x48 fp=0x7ff6aa2b60 sp=0x7ff6aa2b20 pc=0x63c98
runtime.(*mheap).alloc(0x6f9a60, 0x1, 0x7ff601002a, 0x25974)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mheap.go:1092 +0x6c fp=0x7ff6aa2bb0 sp=0x7ff6aa2b60 pc=0x343dc
runtime.(*mcentral).grow(0x6fa898, 0x0)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mcentral.go:255 +0x78 fp=0x7ff6aa2c00 sp=0x7ff6aa2bb0 pc=0x261a8
runtime.(*mcentral).cacheSpan(0x6fa898, 0x1bf40)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mcentral.go:106 +0x374 fp=0x7ff6aa2c70 sp=0x7ff6aa2c00 pc=0x25c94
runtime.(*mcache).refill(0x7fa88ce008, 0x2a)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mcache.go:138 +0xa4 fp=0x7ff6aa2ca0 sp=0x7ff6aa2c70 pc=0x256a4
runtime.(*mcache).nextFree(0x7fa88ce008, 0x1bd2a, 0x7ff6aa2d68, 0x626e0, 0x6f2f90)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/malloc.go:854 +0x8c fp=0x7ff6aa2cf0 sp=0x7ff6aa2ca0 pc=0x1ad0c
runtime.mallocgc(0x180, 0x3d97e0, 0x7fa88d2001, 0x626a0)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/malloc.go:1022 +0x688 fp=0x7ff6aa2db0 sp=0x7ff6aa2cf0 pc=0x1b528
runtime.newobject(0x3d97e0, 0x7ff6aa2dc8)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/malloc.go:1151 +0x38 fp=0x7ff6aa2de0 sp=0x7ff6aa2db0 pc=0x1b8c8
runtime.malg(0xc8700008000, 0x3eeac)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/proc.go:3232 +0x2c fp=0x7ff6aa2e30 sp=0x7ff6aa2de0 pc=0x45d2c
runtime.mpreinit(...)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/os_linux.go:324
runtime.mcommoninit(0x6f4520)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/proc.go:626 +0xd8 fp=0x7ff6aa2e70 sp=0x7ff6aa2e30 pc=0x3f2d8
runtime.schedinit()
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/proc.go:543 +0x7c fp=0x7ff6aa2ee0 sp=0x7ff6aa2e70 pc=0x3eebc
runtime.rt0_go(0x7ff6aa3e0b, 0x7ff6aa3e21, 0x0, 0x7ff6aa3e28, 0x7ff6aa3e37, 0x7ff6aa3e5d, 0x7ff6aa3e71, 0x7ff6aa3e79, 0x7ff6aa3ea4, 0x7ff6aa3eaf, ...)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/asm_arm64.s:70 +0xb8 fp=0x7ff6aa2f10 sp=0x7ff6aa2ee0 pc=0x65ef8
NextDNS Configuration ID:

Code:
ac86admin@RT-AC86U:/tmp/home/root# find /jffs
/jffs
/jffs/scripts
/jffs/scripts/YazFi
/jffs/scripts/amtm
/jffs/scripts/firewall-start
/jffs/scripts/stubby.postconf
/jffs/scripts/service-event
/jffs/syslog.log
/jffs/.le
/jffs/.le/account.key
/jffs/.le/account.conf
/jffs/.le/tcpjp.mywire.org
/jffs/.le/tcpjp.mywire.org/domain.key
/jffs/.le/tcpjp.mywire.org/backup
/jffs/.le/tcpjp.mywire.org/fullchain.cer
/jffs/.le/tcpjp.mywire.org/tcpjp.mywire.org.csr.conf
/jffs/.le/tcpjp.mywire.org/tcpjp.mywire.org.cer
/jffs/.le/tcpjp.mywire.org/fullchain.pem
/jffs/.le/tcpjp.mywire.org/tcpjp.mywire.org.key
/jffs/.le/tcpjp.mywire.org/tcpjp.mywire.org.csr
/jffs/.le/tcpjp.mywire.org/tcpjp.mywire.org.conf
/jffs/.le/tcpjp.mywire.org/ca.cer
/jffs/syslog.log-1
/jffs/nmp_cl_json.js
/jffs/nextdns
/jffs/nextdns/nextdns
/jffs/.amtm_theme
/jffs/signature
/jffs/signature/rule.trf
/jffs/configs
/jffs/configs/YazFi
/jffs/configs/YazFi/YazFi.config
/jffs/configs/profile.add
/jffs/configs/dnsmasq.conf.add
/jffs/cfg.json
/jffs/usericon
/jffs/nvram
/jffs/nvram/asus_device_list
/jffs/nvram/wl1_rast_static_client
/jffs/nvram/fb_comment
/jffs/nvram/MULTIFILTER_DEVICENAME
/jffs/nvram/wl_sched
/jffs/nvram/MULTIFILTER_MACFILTER_DAYTIME
/jffs/nvram/custom_clientlist
/jffs/nvram/url_sched
/jffs/nvram/vts_rulelist
/jffs/nvram/dhcp_staticlist
/jffs/nvram/wl1_sched
/jffs/nvram/sshd_authkeys
/jffs/nvram/wl1_maclist_x
/jffs/nvram/nc_setting_conf
/jffs/nvram/wrs_app_rulelist
/jffs/nvram/wl1_chansps
/jffs/nvram/custom_usericon
/jffs/nvram/keyword_sched
/jffs/nvram/wl0_rast_static_client
/jffs/nvram/wl0_sched
/jffs/nvram/lb_skip_port
/jffs/nvram/wrs_rulelist
/jffs/nvram/wl0_maclist_x
/jffs/nvram/vpn_serverx_clientlist
/jffs/nvram/wl_maclist_x
/jffs/nvram/wl_rast_static_client
/jffs/nvram/qos_rulelist
/jffs/nvram/wollist
/jffs/nvram/qos_orates
/jffs/nvram/dhcp_hostnames
/jffs/.sys
/jffs/.sys/AiProtectionMonitor
/jffs/.sys/AiProtectionMonitor/AiProtectionMonitor.db
/jffs/.sys/cfg_mnt
/jffs/.sys/TrafficAnalyzer
/jffs/.sys/TrafficAnalyzer/TrafficAnalyzer.db
/jffs/.sys/nc
/jffs/.sys/nc/nt_center.db
/jffs/.cert
/jffs/.cert/sshd_ecdsakey
/jffs/.cert/sshd_hostkey
/jffs/.cert/sshd_dsskey
/jffs/openvpn
/jffs/openvpn/vpn_crt_server1_client_crt
/jffs/openvpn/vpn_crt_server1_key
/jffs/openvpn/vpn_crt_server1_client_key
/jffs/openvpn/vpn_crt_server1_dh
/jffs/openvpn/vpn_crt_server1_ca_key
/jffs/openvpn/vpn_crt_server1_ca
/jffs/openvpn/vpn_crt_server1_crt
/jffs/nvram_war
ac86admin@RT-AC86U:/tmp/home/root#

Code:
ac86admin@RT-AC86U:/jffs/nextdns# ./nextdns status
fatal error: out of memory allocating heap arena map

runtime stack:
runtime.throw(0x3e9e5c, 0x27)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/panic.go:774 +0x54 fp=0x7fdc8dc530 sp=0x7fdc8dc500 pc=0x3c4f4
runtime.(*mheap).sysAlloc(0x6f9a60, 0x2000, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/malloc.go:711 +0x594 fp=0x7fdc8dc5e0 sp=0x7fdc8dc530 pc=0x1aa64
runtime.(*mheap).grow(0x6f9a60, 0x1, 0xffffffff)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mheap.go:1255 +0x9c fp=0x7fdc8dc630 sp=0x7fdc8dc5e0 pc=0x3496c
runtime.(*mheap).allocSpanLocked(0x6f9a60, 0x1, 0x711c48, 0x0)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mheap.go:1170 +0x230 fp=0x7fdc8dc6b0 sp=0x7fdc8dc630 pc=0x34810
runtime.(*mheap).alloc_m(0x6f9a60, 0x1, 0x2a, 0x0)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mheap.go:1022 +0xc0 fp=0x7fdc8dc700 sp=0x7fdc8dc6b0 pc=0x340b0
runtime.(*mheap).alloc.func1()
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mheap.go:1093 +0x48 fp=0x7fdc8dc740 sp=0x7fdc8dc700 pc=0x63c98
runtime.(*mheap).alloc(0x6f9a60, 0x1, 0x7fdc01002a, 0x25974)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mheap.go:1092 +0x6c fp=0x7fdc8dc790 sp=0x7fdc8dc740 pc=0x343dc
runtime.(*mcentral).grow(0x6fa898, 0x0)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mcentral.go:255 +0x78 fp=0x7fdc8dc7e0 sp=0x7fdc8dc790 pc=0x261a8
runtime.(*mcentral).cacheSpan(0x6fa898, 0x1bf40)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mcentral.go:106 +0x374 fp=0x7fdc8dc850 sp=0x7fdc8dc7e0 pc=0x25c94
runtime.(*mcache).refill(0x7f93df8008, 0x2a)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/mcache.go:138 +0xa4 fp=0x7fdc8dc880 sp=0x7fdc8dc850 pc=0x256a4
runtime.(*mcache).nextFree(0x7f93df8008, 0x1bd2a, 0x7fdc8dc948, 0x626e0, 0x6f2f90)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/malloc.go:854 +0x8c fp=0x7fdc8dc8d0 sp=0x7fdc8dc880 pc=0x1ad0c
runtime.mallocgc(0x180, 0x3d97e0, 0x7f93dfc001, 0x626a0)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/malloc.go:1022 +0x688 fp=0x7fdc8dc990 sp=0x7fdc8dc8d0 pc=0x1b528
runtime.newobject(0x3d97e0, 0x7fdc8dc9a8)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/malloc.go:1151 +0x38 fp=0x7fdc8dc9c0 sp=0x7fdc8dc990 pc=0x1b8c8
runtime.malg(0xcc000008000, 0x3eeac)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/proc.go:3232 +0x2c fp=0x7fdc8dca10 sp=0x7fdc8dc9c0 pc=0x45d2c
runtime.mpreinit(...)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/os_linux.go:324
runtime.mcommoninit(0x6f4520)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/proc.go:626 +0xd8 fp=0x7fdc8dca50 sp=0x7fdc8dca10 pc=0x3f2d8
runtime.schedinit()
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/proc.go:543 +0x7c fp=0x7fdc8dcac0 sp=0x7fdc8dca50 pc=0x3eebc
runtime.rt0_go(0x7fdc8dce22, 0x7fdc8dce2c, 0x0, 0x7fdc8dce33, 0x7fdc8dce59, 0x7fdc8dce68, 0x7fdc8dce93, 0x7fdc8dce9b, 0x7fdc8dceb1, 0x7fdc8dcebc, ...)
        /opt/hostedtoolcache/go/1.13.3/x64/src/runtime/asm_arm64.s:70 +0xb8 fp=0x7fdc8dcaf0 sp=0x7fdc8dcac0 pc=0x65ef8
ac86admin@RT-AC86U:/jffs/nextdns#
 
Do you get an issue with other commands, let's say if you run "service".

Nope, it's fine. I'm already running "amtm" and "YazFi" without problems too. Why are the errors referencing x64?
 
Because it's cross compiled from a x64 machine. I guess you tried power cycling the router?

Ah I see. I've tried rebooting the router but not turning it off physically this time around, did last time though. I think when I power cycled it I didn't get all the error messages, just something shorter about memory.
 
Just installed the NextDNS CLI client (from GitHub) on an AC86U. Installation went without any problems and NextDNS was reporting that my PC was using NextDNS with my configuration.

Only a few minutes later that changed back to not using NextDNS but Cloudflare (my previous DNS). The nextdns executable is no longer running. There does not seem to be any logging.

Pretty disappointing: the DoT variant was unusable because it stopped resolving within an hour and now the DoH variant crashes within minutes...

Hope this can be improved!
 
Last edited:
Just installed the NextDNS CLI client (from GitHub) on an AC86U. Installation went without any problems and NextDNS was reporting that my PC was using NextDNS with my configuration.

Only a few minutes later that changed back to not using DNS but Cloudflare (my previous DNS). The nextdns executable is no longer running. There does not seem to be any logging.

Pretty disappointing: the DoT variant was unusable because it stopped resolving within an hour and now the DoH variant crashes within minutes...

Hope this can be improved!
Once you launch it, exit the ssh session immediately (no syslog checking, etc.). It should stay up and running.
Actually, today's versions fixed the session issue. But there's still a weird issue if you CTRL-C anything in the SSH session. Don't do that and it should stay up. Check System Log from the GUI.
 
Last edited:
Check System Log from the GUI.
Oops, did not check that...
Code:
Jan  7 21:28:05 nextdns[2970]: Stopping NextDNS 1.4.14/linux
Jan  7 21:28:05 nextdns[2970]: Restore router settings
Jan  7 21:28:05 rc_service: service 3347:notify_rc restart_dnsmasq
Jan  7 21:28:05 custom_script: Running /jffs/scripts/service-event (args: restart dnsmasq)
Jan  7 21:28:05 nextdns[2970]: Deactivating
Jan  7 21:28:05 nextdns[2970]: Deactivate: restore resolv.conf: rename /etc/resolv.conf.nextdns-bak /etc/resolv.conf: no such file or directory
Jan  7 21:28:05 nextdns[2970]: NextDNS 1.4.14/linux stopped
Jan  7 21:28:05 dnsmasq[3163]: exiting on receipt of SIGTERM

Don't know why it stopped (who gave the SIGTERM?).

But it's neat that NextDNS restored everything to the old state when stopping.

Restarted it myself:
Code:
./nextdns restart

Seems to work (longer) now (also after exiting the SSH session).
 
I purposely tried to access some blocked sites (which were indeed blocked) and noticed that for some blocked queries the router hostname is used, but queries from my PC and iOS devices show a (random?) 5 character string, like "Device #ABC1D". When I hover over them the local IP address and manufacturer are shown (based on the MAC address?).

Would be really nice if the hostname for these devices was used as well in logging!

The nvram variable "dhcp_hostnames" (that maps MAC addresses to hostnames?) might help doing that? (for people that manually assign IP's in the DHCP server, like me)
 
Oops, did not check that...
Code:
Jan  7 21:28:05 nextdns[2970]: Stopping NextDNS 1.4.14/linux
Jan  7 21:28:05 nextdns[2970]: Restore router settings
Jan  7 21:28:05 rc_service: service 3347:notify_rc restart_dnsmasq
Jan  7 21:28:05 custom_script: Running /jffs/scripts/service-event (args: restart dnsmasq)
Jan  7 21:28:05 nextdns[2970]: Deactivating
Jan  7 21:28:05 nextdns[2970]: Deactivate: restore resolv.conf: rename /etc/resolv.conf.nextdns-bak /etc/resolv.conf: no such file or directory
Jan  7 21:28:05 nextdns[2970]: NextDNS 1.4.14/linux stopped
Jan  7 21:28:05 dnsmasq[3163]: exiting on receipt of SIGTERM

Don't know why it stopped (who gave the SIGTERM?).

But it's neat that NextDNS restored everything to the old state when stopping.

Restarted it myself:
Code:
./nextdns restart

Seems to work (longer) now (also after exiting the SSH session).
They just pushed 1.4.15 which takes care of that CTRL-C issue. Works fine now for me.
I purposely tried to access some blocked sites (which were indeed blocked) and noticed that for some blocked queries the router hostname is used, but queries from my PC and iOS devices show a (random?) 5 character string, like "Device #ABC1D". When I hover over them the local IP address and manufacturer are shown (based on the MAC address?).
They have some new "device discovery" code in the works. Not sure if it's enabled yet. It will look in dnsmasq for lease hostnames, and other sources.
 

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top