VirtualDDNSRouter (VDR) is a lightweight dynamic DNS router solution that consists of two components:
- Client: Updates the server with the current IP address of a service
- Server: Acts as a reverse proxy that redirects requests to the correct IP address
This solution is particularly useful for accessing services running on dynamic IP addresses through consistent URLs.
The easiest way to use VDR is by downloading the pre-built binaries:
- Download the latest release for your platform from https://git.mahdium.ir/mahdium/VDR/releases/latest
- Extract the archives for both client and server
- Configure each component using the provided examples
- Run the server and client applications
- Client Documentation - For updating IP addresses
- Server Documentation - For routing requests
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ VDR Client │ │ VDR Server │ │ Service │
│ │ │ │ │ │
│ • Periodically │◄──────►│ • Maintains IP │◄──────►│ • Running on │
│ updates IP │ │ mappings │ │ dynamic IP │
│ with server │ │ • Redirects to │ │ • Exposes port │
│ │ │ correct IP │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
┌─────────────────┐
│ User │
│ │
│ • Accesses │
│ service via │
│ consistent │
│ URL │
└─────────────────┘
│
▼
┌─────────────────┐
│ VDR Server │
│ │
│ • Redirects to │
│ current IP │
└─────────────────┘
You can also run VDR using Docker:
# Build the images
docker-compose build
# Run the services
docker-compose upSee the compose.yaml file for details.
If you prefer to build from source:
# For the server
cd VirtualDDNSRouter.Server
dotnet build
dotnet run
# For the client
cd VirtualDDNSRouter.Client
dotnet build
dotnet runThis project is licensed under the MIT License - see the LICENSE file for details.