Secure Dynamic DNS Client
VozDNS is a secure dynamic DNS client that automatically updates your subdomain's DNS record when your IP address changes. Perfect for home servers, development environments, or any service that needs a stable domain name with a dynamic IP.
π»π³ Vietnamese version: README_VI.md
Before using VozDNS, you need:
To get a subdomain (e.g., yourname.vozdns.vn
), you need to submit a pull request:
subdomain.json
file and add your entry:{
"domain": "yourname.vozdns.vn",
"publickey": "your-public-key-will-be-generated"
}
Note: You'll generate your public key in the next step, then update your pull request with the actual key.
Download the latest binary for your platform from the Releases page.
Available platforms:
# Pull the latest image
docker pull ghcr.io/hypnguyen1209/vozdns:latest
# Run as client (with config volume)
docker run -d --name vozdns-client \
-v /path/to/config:/home/appuser/.vozdns:ro \
ghcr.io/hypnguyen1209/vozdns:latest -start
# Or use docker-compose
docker-compose up -d vozdns-client
# Clone the repository
git clone https://github.com/hypnguyen1209/vozdns.git
cd vozdns
# Build the binary
go build -o vozdns
# Make it executable (Linux/macOS)
chmod +x vozdns
# Generate configuration for your subdomain
./vozdns -generate -domain yourname.vozdns.vn
This creates a configuration file at:
$HOME/.vozdns/config.json
%USERPROFILE%\.vozdns\config.json
The generated config contains:
{
"privatekey": "<your-private-key>",
"publickey": "<your-public-key>",
"domain": "yourname.vozdns.vn",
"proxy_ssl": false
}
Once your subdomain is approved and merged:
./vozdns -start
https://vozdns.vn/server.json
https://vozdns.vn/subdomain.json
Located at $HOME/.vozdns/config.json
:
Field | Description | Default |
---|---|---|
privatekey |
Your private key (keep secret!) | Generated |
publickey |
Your public key (shared with server) | Generated |
domain |
Your subdomain | Required |
proxy_ssl |
Enable Cloudflare proxy | false |
./vozdns -help
Available flags:
-generate
: Generate client configuration-domain string
: Specify domain for config generation-start
: Start the client-server
: Start server (admin only)-generate-server
: Generate server config (admin only)The client outputs detailed logs showing:
Example output:
Starting VozDNS client...
Loaded config for domain: yourname.vozdns.vn
[2025-07-21 10:22:19] Starting client cycle...
Public IP: 203.0.113.42
Server: server.vozdns.vn:9000
Verification successful, server public key received
Registration successful
VozDNS client started. Press Ctrl+C to stop.
"Domain not authorized"
"Config file not found"
./vozdns -generate -domain yourname.vozdns.vn
first"Connection failed"
"Failed to get public IP"
MIT License - see LICENSE file for details.
Contributions are welcome! Please: