All Projects → greenboxal → Dns Heaven

greenboxal / Dns Heaven

Licence: mit
Fixes stupid macOS DNS stack (/etc/resolv.conf)

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Dns Heaven

Dosxvpn
Easily deploy your own personal VPN server with DNS adblocking running on DigitalOcean
Stars: ✭ 284 (+56.04%)
Mutual labels:  vpn, osx
Warp Plus Cloudflare
Script for getting unlimited GB on Warp+ ( https://1.1.1.1/ )
Stars: ✭ 381 (+109.34%)
Mutual labels:  dns, vpn
Passepartout Apple
User-friendly OpenVPN client app for iOS and macOS.
Stars: ✭ 284 (+56.04%)
Mutual labels:  vpn, osx
Iodine
Official git repo for iodine dns tunnel
Stars: ✭ 3,950 (+2070.33%)
Mutual labels:  dns, vpn
Dnscrypt Menu
Manage DNSCrypt from the macOS menu bar (BitBar plugin)
Stars: ✭ 59 (-67.58%)
Mutual labels:  dns, osx
AdGuard-WireGuard-Unbound-Cloudflare
The Ultimate Network Security Guide 🔒 Protection | 🔎 Privacy | 🚀 Performance on home network 24/7 🕛 Accessible anywhere 🌏
Stars: ✭ 160 (-12.09%)
Mutual labels:  dns, vpn
Blokada
The official repo for Blokada for Android and iOS.
Stars: ✭ 2,427 (+1233.52%)
Mutual labels:  dns, vpn
Alfred Network Workflow
Show and change your network settings
Stars: ✭ 186 (+2.2%)
Mutual labels:  dns, vpn
Fem
Blokada 5 for Android and iOS (repo moved).
Stars: ✭ 57 (-68.68%)
Mutual labels:  dns, vpn
Traypingapp
📡 OSX tray application showing DNS and ping latency
Stars: ✭ 5 (-97.25%)
Mutual labels:  dns, osx
Virtual Hosts
hosts for android,implement by vpn mode,supports wildcard DNS records
Stars: ✭ 465 (+155.49%)
Mutual labels:  dns, vpn
Vpngate With Proxy
vpn gate client for linux, be able to connect to open vpn server through proxy
Stars: ✭ 150 (-17.58%)
Mutual labels:  dns, vpn
Wirehole
WireHole is a combination of WireGuard, Pi-hole, and Unbound in a docker-compose project with the intent of enabling users to quickly and easily create a personally managed full or split-tunnel WireGuard VPN with ad blocking capabilities thanks to Pi-hole, and DNS caching, additional privacy options, and upstream providers via Unbound.
Stars: ✭ 1,232 (+576.92%)
Mutual labels:  dns, vpn
Tunnelkit
Non-official OpenVPN client library for Apple platforms.
Stars: ✭ 180 (-1.1%)
Mutual labels:  vpn, osx
Docker Openvpn
🔐 Out of the box stateless openvpn-server docker image which starts in less than 2 seconds
Stars: ✭ 174 (-4.4%)
Mutual labels:  vpn
Cmus Osx
Adds track change notifications, and media key support to cmus.
Stars: ✭ 179 (-1.65%)
Mutual labels:  osx
Dnslib
A Python library to encode/decode DNS wire-format packets
Stars: ✭ 174 (-4.4%)
Mutual labels:  dns
Norouter
NoRouter: IP-over-Stdio. The easiest multi-host & multi-cloud networking ever. No root privilege is required.
Stars: ✭ 173 (-4.95%)
Mutual labels:  vpn
Txeh
Go library and CLI utilty for /etc/hosts management.
Stars: ✭ 181 (-0.55%)
Mutual labels:  dns
Dpitunnel
DPITunnel is an android app made for censorship bypass
Stars: ✭ 179 (-1.65%)
Mutual labels:  vpn

dns-heaven

dns-heaven fixes macOS DNS stack by enabling the usage of the native DNS stack through /etc/resolv.conf.

Overview

Some programs like dig, nslookup and anything compiled with Go doesn't use macOS native name resolution stack. This makes some features like split DNS to not work with those programs.

This occurs because macOS native name resolution uses a set of rules that aren't compatible with resolv.conf. This includes:

  • Per interface DNS settings (scoped)
  • Per domain settings

In order to support programs that uses resolv.conf, macOS writes a file with only the primary name server and search domains that were configured either through DHCP or manually.

Installation

Just run:

curl -L https://git.io/fix-my-dns-plz | sudo bash

This script downloads the latest version and installs a LaunchAgent making sure that dns-heaven is always running.

If you want to do this manually, just download the latest release or compile dns-heaven yourself, and make sure it's always running.

How it works

dns-heaven exposes a DNS server that acts as a proxy mimicking native macOS behaviour. This is accomplished by periodically reading the output of scutil --dns and updating upstream rules and nameservers.

It also keeps /etc/resolv.conf pointing to 127.0.0.1 as the system will rewrite this file whenever your network settings changes (e.g.: changing wifi network).

Alternatives

dnsmasq

This is one of the best options but it has some drawbacks. In order to use dnsmasq you need to manually specify it on network settings and manually configure the upstream forwarders. This is bad because sometimes you want to use the servers announced on DHCP instead of something static like 8.8.8.8 and 8.8.4.4.

License

MIT.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].