AdGuardHome not active after (re)boot

I have a travel router model GL.iNet GL-MT1300.

I installed the plugin AdguardHome. But it fails to start because dnsmasq has allocated the required ports. I then stopped and disabled dnsmasq (via ssh).

After a reboot of the router it looks as if AdGuard is running - but no active ports (i.e. 53/DNS and 67/DHCP). I checked this with /etc/init.d/adguardhome status and netstat -tulpn.

I then tried a manual start via ssh and did some config work - but wasn’t able to get dhcp running. I switched to ssh and edited the config file being /etc/adguardhome.yaml. The running config is at the end of this message.

I tried several reboots - al with dnsmasq disabled - no results. Again - only ssh and /etc/init.d/adguardhome start gives me the webui and working dns/dhcp on the confgured ports.

What am I overlooking here? Why is adguardhome not started after (re)boot with the respective port allocation?

bind_host: 192.168.99.240
bind_port: 88
beta_bind_port: 0
users:
  - name: admin
    password: $2a$10$QT3x2G1Dwm67Xgj4U0CT.OR/1ytc0agSf5EZqMtXeyGndH7EYZbRW
auth_attempts: 5
block_auth_min: 15
http_proxy: ""
language: ""
debug_pprof: false
web_session_ttl: 720
dns:
  bind_hosts:
    - 127.0.0.1
    - 192.168.99.240
  port: 53
  statistics_interval: 1
  querylog_enabled: false
  querylog_file_enabled: true
  querylog_interval: 24h
  querylog_size_memory: 1000
  anonymize_client_ip: false
  protection_enabled: true
  blocking_mode: nxdomain
  blocking_ipv4: ""
  blocking_ipv6: ""
  blocked_response_ttl: 10
  parental_block_host: family-block.dns.adguard.com
  safebrowsing_block_host: standard-block.dns.adguard.com
  ratelimit: 20
  ratelimit_whitelist: []
  refuse_any: true
  upstream_dns:
    - 1.0.0.2
    - 1.1.1.2
  upstream_dns_file: ""
  bootstrap_dns:
    - 1.0.0.2
    - 1.1.1.2
  all_servers: false
  fastest_addr: true
  fastest_timeout: 1s
  allowed_clients: []
  disallowed_clients: []
  blocked_hosts:
    - version.bind
    - id.server
    - hostname.bind
  trusted_proxies:
    - 127.0.0.0/8
    - ::1/128
  cache_size: 4194304
  cache_ttl_min: 0
  cache_ttl_max: 0
  cache_optimistic: true
  bogus_nxdomain: []
  aaaa_disabled: true
  enable_dnssec: true
  edns_client_subnet: false
  max_goroutines: 300
  handle_ddr: true
  ipset: []
  ipset_file: ""
  filtering_enabled: true
  filters_update_interval: 24
  parental_enabled: false
  safesearch_enabled: true
  safebrowsing_enabled: false
  safebrowsing_cache_size: 1048576
  safesearch_cache_size: 1048576
  parental_cache_size: 1048576
  cache_time: 30
  rewrites: []
  blocked_services: []
  upstream_timeout: 10s
  private_networks: []
  use_private_ptr_resolvers: true
  local_ptr_upstreams: []
  serve_http3: false
  use_http3_upstreams: false
tls:
  enabled: false
  server_name: ""
  force_https: false
  port_https: 443
  port_dns_over_tls: 853
  port_dns_over_quic: 853
  port_dnscrypt: 0
  dnscrypt_config_file: ""
  allow_unencrypted_doh: false
  certificate_chain: ""
  private_key: ""
  certificate_path: ""
  private_key_path: ""
  strict_sni_check: false
filters:
  - enabled: true
    url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_27.txt
    name: OISD Blocklist Full
    id: 1762342931
whitelist_filters: []
user_rules: []
dhcp:
  enabled: true
  interface_name: br-lan
  local_domain_name: cyberbrein.lan
  dhcpv4:
    gateway_ip: 192.168.99.240
    subnet_mask: 255.255.255.0
    range_start: 192.168.99.10
    range_end: 192.168.99.60
    lease_duration: 86400
    icmp_timeout_msec: 1000
    options: []
  dhcpv6:
    range_start: ""
    lease_duration: 86400
    ra_slaac_only: false
    ra_allow_slaac: false
clients:
  runtime_sources:
    whois: true
    arp: true
    rdns: true
    dhcp: true
    hosts: true
  persistent: []
log_file: ""
log_max_backups: 0
log_max_size: 100
log_max_age: 3
log_compress: false
log_localtime: false
verbose: false
os:
  group: ""
  user: ""
  rlimit_nofile: 0
schema_version: 14

Hi

Has dnsmasq been disabled from starting automatically?
If not, it may start again after a reboot and cause a port conflict.

The following steps worked for me:

/etc/init.d/dnsmasq stop
/etc/init.d/dnsmasq disable

## Modify the ADG Home configuration file
## Enable ADG Home

reboot

Yes - dns and dhcp is disabled in dnsmasq.conf.

On top of that the service is set to disabled via system - startup.

See also below the current status after (re)boot and result after manual restart:

# /etc/init.d/dnsmasq status
inactive

# /etc/init.d/adguardhome status
running

# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3011/nginx.conf -g
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1998/dropbear
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      3011/nginx.conf -g
tcp        0      0 :::80                   :::*                    LISTEN      3011/nginx.conf -g
tcp        0      0 :::22                   :::*                    LISTEN      1998/dropbear
tcp        0      0 :::443                  :::*                    LISTEN      3011/nginx.conf -g

# /etc/init.d/adguardhome restart
# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3011/nginx.conf -g
tcp        0      0 192.168.99.240:53       0.0.0.0:*               LISTEN      15574/AdGuardHome
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      15574/AdGuardHome
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1998/dropbear
tcp        0      0 192.168.99.240:88       0.0.0.0:*               LISTEN      15574/AdGuardHome
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      3011/nginx.conf -g
tcp        0      0 :::80                   :::*                    LISTEN      3011/nginx.conf -g
tcp        0      0 :::22                   :::*                    LISTEN      1998/dropbear
tcp        0      0 :::443                  :::*                    LISTEN      3011/nginx.conf -g
udp        0      0 192.168.99.240:53       0.0.0.0:*                           15574/AdGuardHome
udp        0      0 127.0.0.1:53            0.0.0.0:*                           15574/AdGuardHome
udp        0      0 0.0.0.0:67              0.0.0.0:*                           15574/AdGuardHome

May check the logs to see why ADG Home failed to start.

logread | grep AdGuardHome

Empty - no results.

I now enabled the logging via the yaml-config.

The log says:

2025/11/06 10:46:50.745506 2412#1 [error] starting dhcp server: dhcpv4: finding interface br-lan by name: route ip+net: no such network interface
2025/11/06 10:46:50.751566 2412#1 [info] AdGuard Home is available at the following addresses:
2025/11/06 10:46:50.762105 2412#1 [info] Go to http://192.168.99.240:88
2025/11/06 10:46:50.924552 2412#1 [info] stopped
2025/11/06 10:46:50.929253 2412#1 [fatal] listen tcp 192.168.99.240:88: bind: cannot assign requested address

While the result of ip a is:

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1504 qdisc fq_codel state UP group default qlen 1000
    link/ether 94:83:c4:20:97:ca brd ff:ff:ff:ff:ff:ff
3: lan1@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN group default qlen 1000
    link/ether 94:83:c4:20:97:ca brd ff:ff:ff:ff:ff:ff
4: lan2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN group default qlen 1000
    link/ether 94:83:c4:20:97:ca brd ff:ff:ff:ff:ff:ff
5: wan@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 94:83:c4:20:97:c9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.101/24 brd 192.168.2.255 scope global wan
       valid_lft forever preferred_lft forever
8: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 94:83:c4:20:97:ca brd ff:ff:ff:ff:ff:ff
    inet 192.168.99.240/24 brd 192.168.99.255 scope global br-lan
       valid_lft forever preferred_lft forever
9: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP group default qlen 1000
    link/ether 94:83:c4:20:97:cb brd ff:ff:ff:ff:ff:ff
10: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP group default qlen 1000
    link/ether 94:83:c4:20:97:cc brd ff:ff:ff:ff:ff:ff

What am I missing/overlooking?

It appears that AdGuard Home may be starting before the LAN interface is fully initialized.

You can adjust the startup sequence to delay its launch:

# Disable the current startup order
/etc/init.d/adguardhome disable

# Modify the startup priority (change START=21 to START=99)
sed -i 's/START=21/START=99/' /etc/init.d/adguardhome

# Re-enable the service
/etc/init.d/adguardhome enable
2 Likes

This made things working - thanks!

1 Like