GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - nextdns/nextdns: NextDNS CLI client (DoH Proxy)

BranchesTags
Open more actions menu

Latest commit

 

History

831 Commits
831 Commits

Folders and files

NameName
Last commit message
Last commit date
.githooks
.githooks
 
 
.github
.github
 
 
.goreleaser
.goreleaser
 
 
arp
arp
 
 
config
config
 
 
ctl
ctl
 
 
discovery
discovery
 
 
host
host
 
 
hosts
hosts
 
 
internal/resolved
internal/resolved
 
 
ndp
ndp
 
 
netstatus
netstatus
 
 
proxy
proxy
 
 
resolver
resolver
 
 
router
router
 
 
scripts
scripts
 
 
.gitignore
.gitignore
 
 
.goreleaser.yml
.goreleaser.yml
 
 
AGENTS.md
AGENTS.md
 
 
Dockerfile
Dockerfile
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
activate.go
activate.go
 
 
completion.go
completion.go
 
 
completion_test.go
completion_test.go
 
 
config.go
config.go
 
 
ctl.go
ctl.go
 
 
go.mod
go.mod
 
 
go.sum
go.sum
 
 
install.ps1
install.ps1
 
 
install.sh
install.sh
 
 
main.go
main.go
 
 
run.go
run.go
 
 
run_test.go
run_test.go
 
 
service.go
service.go
 
 
upgrade.go
upgrade.go
 
 

Repository files navigation

NextDNS CLI Client

NextDNS CLI is a command-line tool that allows you to use NextDNS's DNS-over-HTTPS (DoH) service with advanced capabilities. Although the most advanced features will only work with NextDNS, this program can work as a client for any DoH provider or a mix of NextDNS + another DNS (split horizon).

This CLI is mostly aimed at routers and UNIX based systems, but it is also a great client for Windows and macOS, especially for people who prefer a fully open-source client and don't mind the lack of a GUI.

See the wiki for installation and usage instructions.

Shell completion

nextdns completion bash | sudo tee /etc/bash_completion.d/nextdns
nextdns completion zsh  > "${fpath[1]}/_nextdns"
nextdns completion fish > ~/.config/fish/completions/nextdns.fish

OpenWrt IPv6 relay DNS

With setup-router enabled, NextDNS replaces the IPv6 DNS servers advertised by OpenWrt's downstream RA/DHCPv6 relay or hybrid interfaces with a local router address. This applies both when dnsmasq forwards to NextDNS and when NextDNS serves port 53 directly. Explicit IPv4 DNS entries and the upstream master interface are preserved.

The override requires odhcpd, netifd and rpcd's UCI interface (ubus call uci get '{"config":"dhcp"}'). NextDNS prefers a local ULA and falls back to a link-local address, checking UDP and TCP DNS before advertising it. Readiness checks retry for up to five seconds per interface while dnsmasq starts, and stop on shutdown. If the interface is down or no suitable resolver responds, setup reports an error and leaves the original IPv6 DNS configuration in place. Restart NextDNS once the interface is ready.

Original DNS options are saved in /etc/nextdns-openwrt-relay.json before changes are applied. Shutdown restores those options, including their original UCI types, unless they have subsequently been edited or the interface has been replaced. The recovery file survives daemon restarts/reboots. Startup recovers it before configuring dnsmasq, and retains it if restoration fails. It is removed only after UCI commit and odhcpd reload succeed.

Clients may retain earlier DNS advertisements until their lifetimes expire or network configuration is renewed. This uses odhcpd's rewriting of existing RDNSS and DHCPv6 DNS options; it does not intercept hardcoded DNS, add missing upstream DNS options, or rewrite authenticated DHCPv6 replies. Router firewall rules must allow clients to reach the advertised address on UDP and TCP port 53.

Run the unit and failure-path tests with go test ./router/openwrt. To check actual UCI/rpcd list replacement and restoration in a disposable OpenWrt 24.10.7 container, run router/openwrt/testdata/relay-integration.sh (requires Go and Docker). This container test does not exercise client-visible RA/DHCPv6 packets; validate those on a routed test network before deployment.

About

NextDNS CLI client (DoH Proxy)

nextdns.io

Topics

dnsdns-over-https

Resources

Readme
MIT license
Activity
Custom properties

Stars

4.3k stars

Watchers

81 watching

Forks

252 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.