A DNS server providing self-sovereign and censorship-resistant domain names. It resolves records hosted on the Mainline DHT, the biggest DHT on the planet with ~10M nodes that services torrents since 15 years.
Use one of the hosted DNS servers to try out pkdns quickly.
tar -xvf tarfile.tar.gz.pkdns --verbose.127.0.0.1.Make sure you have the Rust toolchain installed.
git clone https://github.com/pubky/pkdns.git.cd pkdns.cargo run --package=pkdns.127.0.0.1.See compose.yaml.
Verify your server with this domain http://7fmjpcuuzf54hw18bsgi3zihzyh4awseeuq5tmojefaezjbd64cy/.
Upgrade your whole machine to pkdns by setting it as your primary system DNS.
Follow one of the guides to change your DNS server on your system:
Verify your server with this domain http://7fmjpcuuzf54hw18bsgi3zihzyh4awseeuq5tmojefaezjbd64cy/.
Verify the server resolves pkdns domains. Replace PKDNS_SERVER_IP with your pkdns server IP address.
nslookup 7fmjpcuuzf54hw18bsgi3zihzyh4awseeuq5tmojefaezjbd64cy PKDNS_SERVER_IP
Troubleshooting If this does not work then the pkdns server is likely not running or misconfigured.
Verify it resolves regular ICANN domains. Replace PKDNS_SERVER_IP with your pkdns server IP address.
nslookup example.com PKDNS_SERVER_IP
Troubleshooting If this does not work then you need to change your ICANN fallback server with
pkdns -f REGULAR_DNS_SERVER_IP. Or use the Google DNS server:pkdns -f 8.8.8.8.
Here are some example pkdns domains:
Hint: Always add a ./ to the end of a pkarr domain. Otherwise browsers will search instead of resolve the website.
Other services might occupy the port 53 already. For example, Docker Desktop uses the port 53 on MacOS. systemd-resolved is using it on Ubuntu. Make sure to free those.
Usage: pkdns [OPTIONS]
Options:
-f, --forward <FORWARD> ICANN fallback DNS server. Format: IP:Port. [default: 8.8.8.8:53]
-v, --verbose Show verbose output. [default: false]
-c, --config <CONFIG> The path to pkdns configuration file. This will override the pkdns-dir config path
-p, --pkdns-dir <PKDNS_DIR> The base directory that contains pkdns's data, configuration file, etc [default: ~/.pkdns]
-h, --help Print help
-V, --version Print version
~/.pkdns/pkdns.toml is used for all extended configurations. An example can be found in config.sample.toml.
Currently, pkdns only supports A, AAAA, TXT, CNAME, and MX records. For any other types, use bind9.
May the power ⚡ be with you. Powered by pkarr.
Rust
97.5%
Shell
2.0%
A DNS server providing self-sovereign and censorship-resistant domain names. It resolves records hosted on the Mainline DHT, the biggest DHT on the planet with ~10M nodes that services torrents since 15 years.
Use one of the hosted DNS servers to try out pkdns quickly.
tar -xvf tarfile.tar.gz.pkdns --verbose.127.0.0.1.Make sure you have the Rust toolchain installed.
git clone https://github.com/pubky/pkdns.git.cd pkdns.cargo run --package=pkdns.127.0.0.1.See compose.yaml.
Verify your server with this domain http://7fmjpcuuzf54hw18bsgi3zihzyh4awseeuq5tmojefaezjbd64cy/.
Upgrade your whole machine to pkdns by setting it as your primary system DNS.
Follow one of the guides to change your DNS server on your system:
Verify your server with this domain http://7fmjpcuuzf54hw18bsgi3zihzyh4awseeuq5tmojefaezjbd64cy/.
Verify the server resolves pkdns domains. Replace PKDNS_SERVER_IP with your pkdns server IP address.
nslookup 7fmjpcuuzf54hw18bsgi3zihzyh4awseeuq5tmojefaezjbd64cy PKDNS_SERVER_IP
Troubleshooting If this does not work then the pkdns server is likely not running or misconfigured.
Verify it resolves regular ICANN domains. Replace PKDNS_SERVER_IP with your pkdns server IP address.
nslookup example.com PKDNS_SERVER_IP
Troubleshooting If this does not work then you need to change your ICANN fallback server with
pkdns -f REGULAR_DNS_SERVER_IP. Or use the Google DNS server:pkdns -f 8.8.8.8.
Here are some example pkdns domains:
Hint: Always add a ./ to the end of a pkarr domain. Otherwise browsers will search instead of resolve the website.
Other services might occupy the port 53 already. For example, Docker Desktop uses the port 53 on MacOS. systemd-resolved is using it on Ubuntu. Make sure to free those.
Usage: pkdns [OPTIONS]
Options:
-f, --forward <FORWARD> ICANN fallback DNS server. Format: IP:Port. [default: 8.8.8.8:53]
-v, --verbose Show verbose output. [default: false]
-c, --config <CONFIG> The path to pkdns configuration file. This will override the pkdns-dir config path
-p, --pkdns-dir <PKDNS_DIR> The base directory that contains pkdns's data, configuration file, etc [default: ~/.pkdns]
-h, --help Print help
-V, --version Print version
~/.pkdns/pkdns.toml is used for all extended configurations. An example can be found in config.sample.toml.
Currently, pkdns only supports A, AAAA, TXT, CNAME, and MX records. For any other types, use bind9.
May the power ⚡ be with you. Powered by pkarr.
Rust
97.5%
Shell
2.0%