How can I install Adguard Home on the RUTC50?

I cannot find it in package manager; could someone let me know what is the correct way to do this ?

Hello,
Look at this topic and follow the reference you’ll have a working recipe.

Regards,

1 Like

@flebourse thanks for the link I installed with opkg but going to 192.168.1.1:3000 gets me a blank page. The thread is locked so I cannot post there; can you help ? no sure how to troubleshoot this

root@RUTC50:~# /etc/init.d/adguardhome status
running
cat /etc/init.d/adguardhome
#!/bin/sh /etc/rc.common

PROG=/usr/bin/AdGuardHome

USE_PROCD=1

# starts just after network starts to avoid some network race conditions
START=25
# stops before networking stops
STOP=89

start_service() {
  config_load adguardhome
  config_get WORK_DIR config workdir

  [ -d "$WORK_DIR" ] || mkdir -m 0755 -p "$WORK_DIR"

  /bin/mkdir -p /tmp/var/adguardhome/data /opt/var/adguardhome/data/filters >/dev/null 2>&1
  /bin/ln -sf /opt/var/adguardhome/data/filters /tmp/var/adguardhome/data >/dev/null 2>&1
  procd_open_instance
  procd_set_param command "$PROG" -c /etc/adguardhome.yaml -w "$WORK_DIR" --no-check-update
  procd_set_param stdout 1
  procd_set_param stderr 1
  procd_close_instance
}

First step: check if adguardhome listens on port 3000. For that install lsof using the same distfeeds.conf method then execute

lsof -n -P -p $(pidof AdGuardHome)

You should have one file descriptor indicating a LISTEN state on port 3000.

Second step: check that TCP SYN packets are received by the RUTX:

tcpdump -i any -n -v 'port 3000'

and send a request for 192.168.1.1:3000. Do you see something in the tcpdump output ?

From what I can see the process is not listed with lsof; I used 1 from the init file but I am not sure if that is correct. So I also run lsof -n -P and made a search on the console output for adguard and could not find anything.

tcpdump receives on port 3000; btw I changed my lan to 192.168.0.x/24

weird because service adguardhome status says it is running

root@RUTC50:~# lsof -n -P -p 1
COMMAND PID USER   FD      TYPE             DEVICE SIZE/OFF   NODE NAME
procd     1 root  cwd       DIR              254,0      281   5442 /
procd     1 root  rtd       DIR              254,0      281   5442 /
procd     1 root  txt       REG              254,0   101681   1516 /sbin/procd
procd     1 root  mem       REG               0,21       27    189 /tmp/TZ
procd     1 root  mem       REG              254,0    73744   1097 /lib/libgcc_s.so.1
procd     1 root  mem       REG              254,0    12305   1098 /lib/libjson_script.so.20240329
procd     1 root  mem       REG              254,0    12291   1094 /lib/libblobmsg_json.so.20240329
procd     1 root  mem       REG              254,0    65574   1799 /usr/lib/libjson-c.so.5.1.0
procd     1 root  mem       REG              254,0    24714   1101 /lib/libubus.so.20210630
procd     1 root  mem       REG              254,0    69729   1100 /lib/libubox.so.20240329
procd     1 root  mem       REG              254,0   545793   1095 /lib/libc.so
procd     1 root    0r      CHR                5,1      0t0     50 /dev/console
procd     1 root    1w      CHR                5,1      0t0     50 /dev/console
procd     1 root    2w      CHR                5,1      0t0     50 /dev/console
procd     1 root    3w      CHR             10,130      0t0     26 /watchdog
procd     1 root    4u  a_inode                0,9        0   1028 [eventpoll:5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,25,26,27,29,30,32,34]
procd     1 root    5r     FIFO                0,8      0t0   3717 pipe
procd     1 root    6w     FIFO                0,8      0t0   3717 pipe
procd     1 root    7u  netlink                         0t0   3718 KOBJECT_UEVENT
procd     1 root    8u     unix 0x0000000060df3148      0t0    310 type=STREAM
procd     1 root    9r  a_inode                0,9        0   1028 inotify
procd     1 root   10r     FIFO                0,8      0t0 122812 pipe
procd     1 root   11r     FIFO                0,8      0t0   5787 pipe
procd     1 root   12r     FIFO                0,8      0t0   7269 pipe
procd     1 root   13r     FIFO                0,8      0t0   6335 pipe
procd     1 root   14r     FIFO                0,8      0t0   7330 pipe
procd     1 root   15r     FIFO                0,8      0t0   6336 pipe
procd     1 root   16r     FIFO                0,8      0t0   7409 pipe
procd     1 root   17r     FIFO                0,8      0t0   6482 pipe
procd     1 root   18r     FIFO                0,8      0t0   6573 pipe
procd     1 root   19r     FIFO                0,8      0t0   6654 pipe
procd     1 root   20r     FIFO                0,8      0t0 154217 pipe
procd     1 root   21r     FIFO                0,8      0t0   6655 pipe
procd     1 root   22r     FIFO                0,8      0t0   7822 pipe
procd     1 root   23r     FIFO                0,8      0t0   9838 pipe
procd     1 root   25r     FIFO                0,8      0t0  10357 pipe
procd     1 root   26r     FIFO                0,8      0t0   9839 pipe
procd     1 root   27r     FIFO                0,8      0t0 154218 pipe
procd     1 root   28r     FIFO                0,8      0t0  10402 pipe
procd     1 root   29r     FIFO                0,8      0t0  10766 pipe
procd     1 root   30r     FIFO                0,8      0t0  10403 pipe
procd     1 root   32r     FIFO                0,8      0t0  11132 pipe
procd     1 root   34r     FIFO                0,8      0t0  11133 pipe
root@RUTC50:~# tcpdump -i any -n -v 'port 3000'
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
08:51:04.182534 lan1  In  IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 64)
    192.168.0.199.60315 > 192.168.0.1.3000: Flags [S], cksum 0x6d57 (correct), seq 747257338, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 3840999618 ecr 0,sackOK,eol], length 0
08:51:04.182534 br-lan In  IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 64)
    192.168.0.199.60315 > 192.168.0.1.3000: Flags [S], cksum 0x6d57 (correct), seq 747257338, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 3840999618 ecr 0,sackOK,eol], length 0
08:51:04.182738 br-lan Out IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    192.168.0.1.3000 > 192.168.0.199.60315: Flags [R.], cksum 0xcbde (correct), seq 0, ack 747257339, win 0, length 0
08:51:04.182750 lan1  Out IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    192.168.0.1.3000 > 192.168.0.199.60315: Flags [R.], cksum 0xcbde (correct), seq 0, ack 1, win 0, length 0
08:51:04.182757 eth0  Out IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    192.168.0.1.3000 > 192.168.0.199.60315: Flags [R.], cksum 0xcbde (correct), seq 0, ack 1, win 0, length 0
08:51:04.210102 lan1  In  IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 64)
    192.168.0.199.60316 > 192.168.0.1.3000: Flags [S], cksum 0xc8eb (correct), seq 3642029610, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 140975356 ecr 0,sackOK,eol], length 0
08:51:04.210102 br-lan In  IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 64)
    192.168.0.199.60316 > 192.168.0.1.3000: Flags [S], cksum 0xc8eb (correct), seq 3642029610, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 140975356 ecr 0,sackOK,eol], length 0
08:51:04.210269 br-lan Out IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)

Use ps to get the process id, then lsof -n -P -p this-process-id.

Thank you for the ps tip :slight_smile:

I cannot see any adguard process; or does it have a separate name ?

---------------------------------
    Teltonika RUTC series 2025
----------------------------------
   Device:     RUTC50
   Kernel:     5.15.178
   Firmware:   RUTC_R_00.07.14
   Build:      26ed73328ac
   Build date: 2025-04-18 11:57:28
----------------------------------
root@RUTC50:~# ps
  PID USER       VSZ STAT COMMAND
    1 root      1896 S    /sbin/procd
    2 root         0 SW   [kthreadd]
    3 root         0 IW<  [rcu_gp]
    4 root         0 IW<  [rcu_par_gp]
    5 root         0 IW<  [slub_flushwq]
    6 root         0 IW<  [netns]
    8 root         0 IW<  [kworker/0:0H-kb]
   10 root         0 IW<  [mm_percpu_wq]
   11 root         0 SW   [rcu_tasks_trace]
   12 root         0 SW   [ksoftirqd/0]
   13 root         0 IW   [rcu_sched]
   14 root         0 SW   [migration/0]
   15 root         0 SW   [cpuhp/0]
   16 root         0 SW   [cpuhp/1]
   17 root         0 SW   [migration/1]
   18 root         0 SW   [ksoftirqd/1]
   20 root         0 IW<  [kworker/1:0H-ev]
   21 root         0 IW<  [inet_frag_wq]
   23 root         0 SW   [oom_reaper]
   24 root         0 IW<  [writeback]
   25 root         0 SW   [kcompactd0]
   36 root         0 IW<  [pencrypt_serial]
   37 root         0 IW<  [pdecrypt_serial]
   38 root         0 IW<  [cryptd]
   68 root         0 IW<  [kblockd]
   69 root         0 IW<  [blkcg_punt_bio]
   70 root         0 IW<  [tpm_dev_wq]
   71 root         0 IW<  [ata_sff]
   72 root         0 SW   [watchdogd]
  105 root         0 SW   [kswapd0]
  112 root         0 IW<  [kworker/1:1H-kb]
  114 root         0 IW<  [kthrotld]
  220 root         0 SW   [spi0]
  274 root         0 SW   [spi1]
  293 root         0 SW   [spi2]
  393 root         0 SW   [napi/mtk_eth-3]
  394 root         0 SW   [napi/mtk_eth-4]
  420 root         0 IW<  [mld]
  422 root         0 IW<  [ipv6_addrconf]
  424 root         0 IW<  [dsa_ordered]
  468 root         0 SW   [ubi_bgt0d]
  473 root         0 IW<  [kworker/0:1H-kb]
  482 root         0 SW   [irq/30-gpio_key]
  586 root         0 SW   [ubifs_bgt0_2]
  728 root         0 SWN  [jffs2_gcd_mtd7]
  951 ubus      1616 S    /sbin/ubusd
  952 root       848 S    /sbin/askfirst /usr/libexec/login.sh
  987 root      1000 S    /sbin/urngd
 1370 root         0 SW   [irq/19-10320000]
 1371 root         0 IW<  [wq_ring0]
 1372 root         0 SW   [irq/20-10320000]
 1374 root         0 IW<  [wq_ring1]
 1377 root         0 SW   [irq/21-10320000]
 1378 root         0 IW<  [wq_ring2]
 1379 root         0 SW   [irq/22-10320000]
 1380 root         0 IW<  [wq_ring3]
 1680 root         0 IW<  [cfg80211]
 1934 root         0 SW   [napi/phy0-5]
 1935 root         0 SW   [napi/phy0-6]
 1936 root         0 SW   [napi/phy0-7]
 1937 root         0 SW   [napi/phy0-8]
 1940 root         0 SW   [napi/phy0-9]
 1941 root         0 SW   [napi/phy0-10]
 2027 root         0 SW   [mt76-tx phy0]
 2598 logd      2672 S    /sbin/logd -S 128
 2599 root      2784 S    /sbin/logread -f -i -p /var/run/logread.1.pid -S 200
 3582 nlbwmon   2808 SN   /usr/sbin/nlbwmon -o /usr/local/share/nlbwmon/data.d
 4402 dnsmasq   1532 S    /usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf.cfg01411c
 4408 dnsmasq   1444 S    /usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf.cfg01411c
 4453 root      9464 S    /usr/sbin/hostapd -s -g /var/run/hostapd/global -f /
 4454 root      9548 S    /usr/sbin/wpa_supplicant -n -s -g /var/run/wpa_suppl
 4508 root      4956 S    /sbin/rpcd -s /var/run/ubus/ubus.sock -t 300
 4565 gsm       2192 S    /usr/sbin/gsmd -c
 4622 root      1784 S    /usr/sbin/modem_trackd
 4691 gsm       9592 S    /usr/sbin/mobifd
 4822 root     10536 S    /usr/sbin/uhttpd -f -b -h /www -x /cgi-bin -l /api -
 4882 root      2156 S    /usr/sbin/urcd
 4949 root      1360 S    /usr/sbin/dropbear -F -P /var/run/dropbear.1.pid -p
 5034 root      2216 S    {event_server} /usr/bin/lua /sbin/event_server
 5145 root      3456 S    /usr/bin/ip_blockd
 5486 port_eve  1772 S    /usr/bin/port_eventsd --suppress-topology
 6038 root      2016 S    /usr/sbin/crond -f -c /etc/crontabs -l 5
 6199 root         0 IW   [kworker/1:1-pm]
 6399 root      1828 S    /usr/bin/iomand -S
 6420 root         0 SW   [irq/36-ioman]
 6454 root      2012 S    udhcpc -p /var/run/udhcpc-wlan1-3.pid -s /lib/netifd
 7085 root      3872 S    /usr/bin/mdcollectd -i 10 --ignore lo
 7239 root      2088 S<   /usr/bin/ledman -d
 7520 connchec  1228 S    /usr/local/usr/sbin/connchecker -t 60 -4 1.1.1.1 -6
20129 root      9548 S    /usr/sbin/gpsd
20424 root      2000 S    /sbin/netifd
21323 root         0 IW   [kworker/1:2-eve]
22767 root         0 SW   [napi/wwan%d-12]
23024 root      2012 S    udhcpc -p /var/run/udhcpc-wlan1-3.pid -s /lib/netifd
26366 root         0 IW   [kworker/u4:6-nf]
26911 root         0 IW   [kworker/u4:1-nf]
27742 root         0 IW   [kworker/u4:2-ev]
28075 root         0 IW   [kworker/u4:0-ev]
28121 root         0 IW   [kworker/0:0-eve]
28256 root      2012 S    udhcpc -p /var/run/udhcpc-qmimux0.pid -s /lib/netifd
28280 root      2356 S    /bin/sh /usr/bin/qmuxtrack /dev/cdc-wdm0 2-1.1 17 18
28864 root         0 IW   [kworker/u4:5-ev]
28985 root         0 IW   [kworker/u4:7-nf]
29031 root         0 IW   [kworker/0:2-pm]
29274 root         0 IW   [kworker/u4:3-ev]
29355 ntpclien  1780 S    /usr/sbin/ntpclient -s -l
29441 root         0 IW   [kworker/0:1-pm]
29629 root      2012 S    sleep 20
29630 root      1380 R    /usr/sbin/dropbear -F -P /var/run/dropbear.1.pid -p
29632 root      2032 S    -ash
29643 root         0 IW   [kworker/1:0-pm]
29656 root      2020 R    ps
root@RUTC50:~# service adguardhome status
running

AdGuardHome doesn’t appear to be running. Try to restart it and check with logread where it fails.

Adguard seems to be running

root@RUTC50:~# service adguardhome status
running

I restarted it with service adguardhome reload

logread does not show anything related to adguard at all even after reload

so the service is running but I got nothing in the logs

digging deeper from references in /etc/init.d/adguardhome

PROG=/usr/bin/AdGuardHome => file does not exist

/opt/var/adguardhome => does not exist

I got a folder in /var/adguardhome but nothing in it

Do you understand what is going on ?

Hmm. Which firmware version do you have ? If it is 7.14 then the root filesystem is read-only and the opkg install cannot succeed.
Could you reflash an older version (7.13.x ?) and retry ?

Ah yes it is a 7.14 version I should have read the motd.

Well.. that’s a bummer… so there is no solution to this i guess except downgrading and never updating again :face_vomiting: maybe would docker work ? Why would teltonika do this; that is a finger to the tinkerers right ?

Forget about docker. The change in 7.14 is rather radical I haven’t installed it yet I have a lot of modified base executables / scripts I am reluctant to convert all at once. For the moment my best choice is to rebuild a fully functional (for me) firmware using the SDK but without the read-only feature. I’ll do that next week if you are interested I’ll give you the relevant instructions.

Sounds good. But then you would have to begin maintaining a fork or are you planning not updating again?
At the moment i have installed adguard on a pi i have but i also use netbird so i might be interested if that enables it for me.
Whats the story with docker ? Any limitation since 7.14 ?
Sorry im completely new to teltonika devices.

@staff any comment on the 7.14 situation please ? Are you planning on implementing adguard in the package manager ? That situation is a real bummer. I chose this router because i saw prior buying adguard and custom packages could be installed.

I’ll maintain a fork until I’ll have a clean series of patches to apply to the new ro filesystem. Should be doable just not miss anything in the VPNs section.
Using docker might be a solution however I won’t bet on it the risk is hitting the same write permissions limits.

The original post about this ro implementation is here.