-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Building from source
Windows: Install git and go. Or use chocolatey:
choco install git golangNow open a PowerShell window (Win+X > Windows PowerShell).
Linux: Open a terminal window, install git and go:
<pkg-install-command> git golangAndroid: Install Termux and start it. Then install git and go:
pkg install git golangmkdir dnscrypt-proxy-src
cd dnscrypt-proxy-srcIt must be cloned into a folder called src.
git clone --depth=1 https://github.com/DNSCrypt/dnscrypt-proxy srcGOOS and GOARCH don't need to be set if you're only building for your current OS install; they are already set to the right values (see go env GOOS GOARCH). Otherwise, run go tool dist list to list supported GOOS/GOARCH pairs. You may also want to set GOARM when using GOARCH=arm; see the GoArm wiki.
# Windows
$env:GOOS='windows'
$env:GOARCH='amd64'
# Linux
export GOOS=linux
export GOARCH=amd64
# Android
export GOOS=android
export GOARCH=arm64Change the output path as appropriate for your OS/arch.
cd src/dnscrypt-proxy
go build -ldflags="-s -w" -mod vendorThe binary should be in the current directory.
If the build command returns an error similar to go: ../go.mod requires go >= ..., it means your Go toolchain is older than the version dnscrypt-proxy was developed and tested with.
dnscrypt-proxy generally uses the latest stable Go version as it is released.
You can download a more recent version of Go from the official Go website. The downloaded files can be installed anywhere and can be removed afterwards.
Alternatively, you can use goenv, a convenient tool for installing (even temporarily) multiple versions of Go.
- Building on a non-Android OS: You cannot build the Android version without following this guide first.
- Building on Android: You cannot build for an Android architecture different from your device's, nor can you build for Linux/any architecture. Windows with any architecture seems to work, however.
You will need root to use dnscrypt-proxy. Otherwise, you can try copying it to internal storage.
- Home
- Installation
- Configuration
- Checking that your DNS traffic is encrypted
- Automatic Updates
- Server sources
- Combining blocklists
- Public Blocklist and other configuration files
- Building from source
- Run your own DNSCrypt server in under 10 minutes
- DNS stamps specifications
- Windows tips
- dnscrypt-proxy in the media
- Planned Features