{"id":43053314,"url":"https://github.com/joshcangit/dnsproxy-resolvconf","last_synced_at":"2026-01-31T10:38:56.228Z","repository":{"id":65811753,"uuid":"545051729","full_name":"joshcangit/dnsproxy-resolvconf","owner":"joshcangit","description":"Run Adguard's dnsproxy in a systemd service.","archived":false,"fork":false,"pushed_at":"2024-04-30T09:03:53.000Z","size":22,"stargazers_count":8,"open_issues_count":1,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-30T10:39:58.298Z","etag":null,"topics":["dns","dns-server","init","linux","services","systemd"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joshcangit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-03T17:44:28.000Z","updated_at":"2024-04-30T09:03:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"3ef3ec0a-68cd-416f-a359-e11791fab3ae","html_url":"https://github.com/joshcangit/dnsproxy-resolvconf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joshcangit/dnsproxy-resolvconf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshcangit%2Fdnsproxy-resolvconf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshcangit%2Fdnsproxy-resolvconf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshcangit%2Fdnsproxy-resolvconf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshcangit%2Fdnsproxy-resolvconf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joshcangit","download_url":"https://codeload.github.com/joshcangit/dnsproxy-resolvconf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshcangit%2Fdnsproxy-resolvconf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28938877,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T10:18:23.202Z","status":"ssl_error","status_checked_at":"2026-01-31T10:18:22.693Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dns","dns-server","init","linux","services","systemd"],"created_at":"2026-01-31T10:38:55.598Z","updated_at":"2026-01-31T10:38:56.223Z","avatar_url":"https://github.com/joshcangit.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dnsproxy-resolvconf\nA systemd service for [AdguardTeam/dnsproxy](https://github.com/AdguardTeam/dnsproxy) to provide DNS.\n\n## For those on newer Ubuntu and Debian distros\nThe code relies on `resolvconf` which was deprecated and replaced by `systemd-resolved`.\n\nThis is replaced since Ubuntu `22.10`.\nhttps://launchpad.net/bugs/1990743\n\nThis is also replaced for Debian using bullseye-backports, bookworm and onwards.\n\nSince now knowing this is using a deprecated feature, I won't be working on it much longer.\nI think it's best to move on and maybe build another project using a newer method that works.\n\n## For other distros\n\nThis is for Linux systems installed with the [**`resolvconf`**](https://repology.org/project/resolvconf/) package to modify the `/etc/resolv.conf` file.\n\nThe **adguard-dnsproxy-setup.service** uses an argument of **`linux-amd64`** in its `ExecStart` line.\n\nRefer to assets in [AdguardTeam/dnsproxy Releases](https://github.com/AdguardTeam/dnsproxy/releases) for other OS architectures.\n\n\u003e Examples:\n\u003e\n\u003e - `linux-386` for i386 / x86\n\u003e - `linux-arm64` for aarch64 / arm64\n\u003e - `linux-arm6` for armv6l / armhf\n\n## Install\n\nAfter cloning this repository, run the command below to download and start up this DNS proxy server.\n\n```shell\nmake\n```\n\nUsing `sudo` is optional since the Makefile already checks for admin access.\n\nAdmin access is need to be permitted to bind IP addresses for listening.\n\n\u003e If you want to run the exact targets, run **`make install start`**.\n\n\u003e If you are not in the **`dnsproxy-systemd`** git directory, you may run **`make -C dnsproxy-systemd`** if you have cloned into the current directory.\n\n### Customization\n\nThe Makefile has 2 variables to customize, BINDIR and CONFDIR.\n\n```shell\nmake BINDIR=/opt/adguard CONFDIR=/etc/adguard\n```\n\nIf you change their values, be sure the chosen directory is _root-owned_.\n\nDue to certain _file conflicts_, `/etc` and `/usr/sbin` are some of the directories not allowed.\n\n## `dnsproxy.yml` file\nRefer to the options in [Adguard/dnsproxy main.go](https://github.com/AdguardTeam/dnsproxy/blob/master/main.go) for yaml configuration.\n\nThe **`listen-addrs`** option is required.\n\nMake sure **adguard-dnsproxy.service** is stopped when editing this option.\n\nMake sure any IP addresses in this option are not already used on port 53.\n\nCheck for IP address on port 53 with `ss`, `netstat` or `lsof`.\n\n```shell\nsudo ss -tnlp | grep :53\n```\n\n```shell\nsudo netstat -tnlp | grep :53\n```\n\n```shell\nsudo lsof -Pni:53 -sTCP:LISTEN\n```\n\n## UDP Receive Buffer Size\n\nLinux and BSD may encounter errors for any QUIC or UDP transfers, especially DNS over QUIC.\n\nThis is solved by setting the maximum buffer sizes to a high enough level.\n\nIt can be done by using `sysctl -w` or permanently by adding a new file to the `sysctl` directory.\n\n### Linux\n\n#### Temporarily\n\n```shell\nsudo sysctl -w net.core.wmem_max=7864320\nsudo sysctl -w net.core.rmem_max=7864320\n```\n\n#### Permanently\n\n```shell\nsudo sh -c 'printf \"# Maximum send buffer size\\nnet.core.wmem_max=7864320\\n# Maximum receive buffer size\\nnet.core.rmem_max=7864320\" \u003e /etc/sysctl.d/10-max-buffer-size.conf'\n```\n\n### BSD\n\n#### Temporarily\n\n```shell\nsu -c 'sysctl -w kern.ipc.maxsockbuf=8441037'\n```\n\n#### Permanently\n\n```shell\nsu -c 'printf \"# Maximum socket buffer\\nkern.ipc.maxsockbuf=8441037\" \u003e /etc/sysctl.kld.d/10-max-socket-buffer.conf'\n```\n\n[UDP Buffer Sizes · quic-go/quic-go Wiki](https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshcangit%2Fdnsproxy-resolvconf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoshcangit%2Fdnsproxy-resolvconf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshcangit%2Fdnsproxy-resolvconf/lists"}