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.

Hello @RollingStone,

Apologies for the delayed response.

Could you please confirm whether your issue has been resolved or if you still require any assistance?

Best regards,

This topic was automatically closed after 60 days. New replies are no longer allowed.