Skip to content

mwarning/KadNode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,549 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KadNode - P2P DNS

KadNode intercepts .p2p DNS queries on the system level (e.g from the browser) and resolves them via the mainline BitTorrent DHT network to IP addresses.

For IP address authentication,TLS is supported as well as public key domain names.

Features

  • Support for two kinds of domains:
    1. public key domains as <public-key>.p2p
      • No need to exchange any further keys/certificates
      • Uses secp256r1 ECC key pairs
    2. named domains like yourdomain.com.p2p
      • Needs pre-shared certificates (self-signed root certificates or e.g. Let's Encrypt)
      • Uses TLS session handshake for authentication
  • IPv4/IPv6 support
  • UPnP/NAT-PMP support
  • Local peer discovery
  • Small size / ~100KB depending on features / ~50KB compressed
  • Command line control program
  • NSS support through /etc/nsswitch.conf
  • DNS server interface and DNS proxy
    • Handles A (IPv4),AAAA (IPv6), and SRV requests
  • Packages for ArchLinux, Debian, FreeBSD, MacOSX, OpenWrt, Windows
  • Peer file import/export on startup/shutdown and every 24h
  • Uses sha256 hash method

Documentation

Installation

You can download the latest package from releases page.

OpenWrt

From official package repository: apk install kadnode

Debian/Ubuntu

From PPA repository:

sudo add-apt-repository ppa:stokito/kadnode
sudo apt update
sudo apt install kadnode

Or install a downloaded package with dpkg -i kadnode_*.deb

FreeBSD

From repository: pkg install kadnode

Or install a downloaded package with pkg install kadnode-*.txz

ArchLinux

From repository: yay -S kadnode

Or install a downloaded package with pacman -U kadnode-*.pkg.tar.xz

Build from sources

Install libraries and their headers. On Debian/Ubuntu use:

sudo apt install libmbedtls-dev, libnatpmp-dev, libminiupnpc-dev

Checkout code and compile KadNode:

git clone https://github.com/mwarning/KadNode.git
cd KadNode
# basic features and debug mode
FEATURES="bob tls cmd dns debug" make
# all features
FEATURES="bob tls cmd lpd dns nss natpmp upnp debug" make

Finally, start KadNode:

./build/kadnode --peer bttracker.debian.org:6881 --peer router.bittorrent.com:6881 --peer router.utorrent.com:6881 --peerfile peers.txt

This also add some popular static peers to bootstrap into the global DHT network. Good peers will written to peers.txt. KadNode will also look for local peers, but those are often absent.

To install use:

sudo make install install_nss

To uninstall:

sudo make uninstall uninstall_nss

Related Projects

License

MIT/X11

Authors

About

P2P DNS with content key, crypto key and PKI support. DynDNS alternative.

Topics

Resources

License

Stars

439 stars

Watchers

36 watching

Forks

Packages

 
 
 

Contributors