[HowTo] Running Adguard Home on OpenWrt

I am still stuck on this update. Any further help, please?

Try a reinstall via their script. It should just pull the newer version and overwrite your bugged version.

If that doesn't replace your existing bugged version i would just delete the AdGuard folder from /opt and do a clean install. It shouldn't take long to reset it back up and also mean any bugged/corrupt files are replaced.

Just to be clear, with this, I'd CD into /overlay/AdGuardHome and then run the command above? Do I need to care which version it will pull. I'm using the MIPS version. An earlier guide on AgGuard failed to point this out and I ran into a lot of issues, until I downloaded the correct file for my device.
Thanks a lot.

it will install into /opt/AdGuardHome and will install the correct arch version for your router.

thanks, but where it installs is an issue because I did Extroot; moved everything to a USB stick. So, is this a concern; anything I should change in the command, or simply cd into the directory i mentioned earlier and run the command from there?
While I have your attention, do you know the commands to start and stop AdGuardhome?
Thanks

Their wiki is here with the automated start script which is the command i linked you.

AdguardTeam/AdGuardHome: Network-wide ads & trackers blocking DNS server (github.com)

root@OpenWrt:~# /etc/init.d/AdGuardHome --help
Syntax: /etc/init.d/AdGuardHome [command]

Available commands:
        start           Start the service
        stop            Stop the service
        restart         Restart the service
        reload          Reload configuration files (or restart if service does not implement reload)
        enable          Enable service autostart
        disable         Disable service autostart
        enabled         Check if service is started on boot
        running         Check if service is running
        status          Service status
        trace           Start with syscall trace
        status  Print the service status

i have questions, in android device they still have ads, can even access what im block but in logs it say blocked

Yes same for me. Ad blocking doesn't seem to work.

I switched to Brave android browser and removed adguard. I've listened to YT all day on 2 cellphones.

do you have idea ?

on version 0.104.3 whit openwrt 21.02.0-rc3 no update list after reboot, strange no ?

Uninstall 104. Its old and has numerous bugs.

AdguardTeam/AdGuardHome: Network-wide ads & trackers blocking DNS server (github.com)

Install the 107 branch like so :

curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v -c edge
1 Like

thanks,

juste memory usage strange ( 331% ) but work for me, i don't know memory usage before update

I use your script on OpenWrt SNAPSHOT r16753-b810d649fb / LuCI Master git-21.132.35841-3c66c5b
then install AdGuard by curl, instead of opkg.

The Adguard runs well and OpenWRT distributes DHCP to subnet, all computer on subnet can access internet. But the OpenWRT itself cannot :frowning:

DNS forwardings needs to be set.

either use openwrt menu

Network > DHCP and DNS

and add to the DNS forwardings your adguard server (192.168.1.1) if that is your server

or from ssh shell?

uci set dhcp.@dnsmasq[0].server='192.168.1.1'
uci commit dhcp
/etc/init.d/dnsmasq restart

I use both OpenWRT and AdGuard on a same device.

After install AdGuard, i changed the OpenWRT webport to 8081 to avoid conflict with AdGuard

Then use your set of command to change DNS listen port to 5353, to force the subnet use Adguard DNS port 53. The subnet runs well, but OpenWRT itself cannot connect to internet

uci set dhcp.@dnsmasq[0].cachesize='1000'
uci set dhcp.@dnsmasq[0].noresolv='1'
uci set dhcp.@dnsmasq[0].server='192.168.99.1'
uci set dhcp.@dnsmasq[0].port='5353'
uci add_list dhcp.lan.dhcp_option='6,192.168.99.1' 
uci add_list dhcp.lan.dhcp_option='3,192.168.99.1' 
uci set dhcp.lan.leasetime='24h' 
uci set network.wan.peerdns='0' 

uci commit dhcp
uci commit network
# Save changes

# Restart network + dnsmasq service to reflect changes
/etc/init.d/network restart
/etc/init.d/dnsmasq restart

To test your DNS :

opkg install bind-dig

Then test like so:

root@OpenWrt:~# dig @192.168.1.1 -p53 www.google.com

; <<>> DiG 9.17.13 <<>> @192.168.1.1 -p53 www.google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45379
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
;; QUESTION SECTION:
;www.google.com.                        IN      A

;; ANSWER SECTION:
www.google.com.         181     IN      A       172.217.169.68

;; Query time: 32 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
;; WHEN: Tue Aug 17 11:43:12 BST 2021
;; MSG SIZE  rcvd: 59

root@OpenWrt:~# dig @192.168.1.1 -p5353 www.google.com

; <<>> DiG 9.17.13 <<>> @192.168.1.1 -p5353 www.google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 26207
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.google.com.                        IN      A

;; Query time: 4 msec
;; SERVER: 192.168.1.1#5353(192.168.1.1) (UDP)
;; WHEN: Tue Aug 17 11:41:01 BST 2021
;; MSG SIZE  rcvd: 43

dig @192.168.1.1 -p5353 www.google.com

dig @(server_to_use) -p(portnumber) www.example.com

In the first example it is using Adguard DNS to lookup. (the usual port 53)

In second it use OpenWRT DNS to lookup on port 5353. (because we moved it)

A quick check to bypass your dns would be to do this

uci set dhcp.@dnsmasq[0].server='8.8.8.8'
uci commit dhcp
/etc/init.d/dnsmasq restart

That will set google to be your OpenWRT DNS directly. Adguard will continue to be your DNS for rest of network.

add 127.0.0.1 in your bind dns in adguard yaml

1 Like

@thanhtantran

AdGuardHome.yaml

dns:
  bind_hosts:
  - 127.0.0.1
  - 192.168.1.1
  - ::1

First entry is local host
2nd is ipv4 router address
3rd is ipv6 router address localhost

1 Like

@mercygroundabyss

can you share your firewall settings? like custom rules