Files
VDR/README.md

3.0 KiB

VirtualDDNSRouter (VDR)

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:

  1. Download the latest release for your platform from https://git.mahdium.ir/mahdium/VDR/releases/latest
  2. Extract the archives for both client and server
  3. Configure each component using the provided examples
  4. Run the server and client applications

Components

Architecture

┌─────────────────┐        ┌─────────────────┐        ┌─────────────────┐
│   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    │
└─────────────────┘

Alternative Deployment Methods

Using Docker

You can also run VDR using Docker:

# Build the images
docker-compose build

# Run the services
docker-compose up

See the compose.yaml file for details.

Building from Source

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 run

License

This project is licensed under the MIT License - see the LICENSE file for details.