本文へスキップ

DDNS-Go

トレンド活発
jeessy2/ddns-go

シンプルで使いやすい DDNS。Aliyun、Tencent Cloud、DNSPod、Cloudflare、Callback、Huawei Cloud、Baidu Cloud、Porkbun、GoDaddy、Namecheap、NameSilo などに対応します。

GitHub で見る
スター
1.7万
フォーク
1894
ウォッチ
1.7万
未解決の Issue
15

この紹介文は現在英語版のみです。

🌐 Project Overview

DDNS-Go is a lightweight, cross-platform Dynamic DNS client written in Go. It automatically updates your DNS records when your public IP address changes, supporting 15+ major DNS providers including Cloudflare, Aliyun, Tencent Cloud, and more. With its intuitive web interface and flexible deployment options, DDNS-Go makes dynamic DNS management effortless for both beginners and advanced users.

⭐ Core Features

  • 🏢 Multi-Provider Support

    • 15+ DNS providers supported
    • Cloudflare, Aliyun, Tencent Cloud, Dnspod
    • GoDaddy, Namecheap, NameSilo, Porkbun
    • Huawei Cloud, Baidu Cloud, and more
  • 🌍 IPv4 & IPv6 Dual Stack

    • Full IPv6 support
    • Automatic IP detection
    • Dual stack configuration
    • Network interface selection
  • ⚡ Smart Updates

    • Configurable check intervals
    • IP change detection
    • Cache mechanism to prevent API abuse
    • Real-time IP monitoring
  • 🔔 Notification System

    • Webhook support for status updates
    • Integration with popular services
    • Custom callback functions
    • Multiple notification channels

🛠️ Technology Stack

Core Technology

  • Go - High-performance backend (71.8%)
  • HTML/CSS/JavaScript - Web interface (28.2%)
  • Cross-platform - Windows, Linux, macOS, ARM

Supported DNS Providers

  • Cloudflare - Global CDN and DNS
  • Aliyun DNS - Alibaba Cloud DNS service
  • Tencent Cloud - Tencent’s DNS platform
  • Dnspod - Professional DNS service
  • GoDaddy - Domain registrar DNS
  • Namecheap - Domain and DNS services
  • Porkbun - Modern domain services
  • Google Domains - Google’s domain service
  • Custom Callback - DIY integration support

🚀 Quick Start

Download & Install

# Download latest release
wget https://github.com/jeessy2/ddns-go/releases/latest/download/ddns-go_linux_x86_64.tar.gz

# Extract and run
tar -xzf ddns-go_linux_x86_64.tar.gz
./ddns-go

Web Interface Setup

  1. Open browser and visit http://localhost:9876
  2. Set admin password
  3. Configure DNS provider credentials
  4. Add domains to monitor
  5. Start DDNS service

Command Line Options

# Install as system service
./ddns-go -s install

# Custom check interval (600 seconds)
./ddns-go -s install -f 600

# Specify config file location
./ddns-go -c /path/to/config.yaml

# Reset password
./ddns-go -resetPassword newpassword

🐳 Docker Deployment

Basic Docker Run

# Using host network mode (recommended)
docker run -d --name ddns-go \
  --restart=always \
  --net=host \
  -v /opt/ddns-go:/root \
  jeessy/ddns-go

Docker Compose

version: '3'
services:
  ddns-go:
    image: jeessy/ddns-go
    container_name: ddns-go
    restart: always
    network_mode: host
    volumes:
      - /opt/ddns-go:/root

Advanced Options

# Custom port and interval
docker run -d --name ddns-go \
  --restart=always \
  --net=host \
  -v /opt/ddns-go:/root \
  jeessy/ddns-go -l :9877 -f 600

# Using GitHub Container Registry
docker run -d --name ddns-go \
  --restart=always \
  --net=host \
  -v /opt/ddns-go:/root \
  ghcr.io/jeessy2/ddns-go

🔔 Webhook Integration

Supported Variables

Variable Description
#{ipv4Addr} New IPv4 address
#{ipv4Result} IPv4 update result
#{ipv4Domains} IPv4 domains (comma-separated)
#{ipv6Addr} New IPv6 address
#{ipv6Result} IPv6 update result
#{ipv6Domains} IPv6 domains (comma-separated)

Server酱 (ServerChan)

URL: https://sctapi.ftqq.com/[SendKey].send?title=IP变更通知&desp=IPv4变更为#{ipv4Addr},更新结果:#{ipv4Result}

Bark (iOS)

URL: https://api.day.app/[YOUR_KEY]/IP变更#{ipv4Addr}/更新结果#{ipv4Result}

DingTalk (钉钉)

{
  "msgtype": "markdown",
  "markdown": {
    "title": "DDNS更新通知",
    "text": "#### IP地址变更 \n - IPv4: #{ipv4Addr} \n - 结果: #{ipv4Result}"
  }
}

Discord

{
  "content": "DDNS更新: #{ipv4Domains} -> #{ipv4Addr}",
  "embeds": [{
    "description": "域名 #{ipv4Domains} 已更新到 #{ipv4Addr}",
    "color": 5814783,
    "author": {"name": "DDNS-Go"}
  }]
}

🔧 Advanced Configuration

IPv6 Support

  • Prerequisites: IPv6 connectivity required
  • Windows/Mac: System installation recommended
  • Linux: Docker host mode for best compatibility
  • NAS: Enable Docker host networking

Custom Callbacks

Supports custom DNS providers through callback mechanism:

Variable Description
#{ip} New IP address
#{domain} Current domain
#{recordType} Record type (A/AAAA)
#{ttl} TTL value

Performance Optimization

# Fast IP change detection (10s) with rate limiting (30min)
./ddns-go -s install -f 10 -cacheTimes 180

# Custom configuration file
./ddns-go -c /etc/ddns-go/config.yaml

📊 Project Statistics

  • ⭐ 14.4k+ GitHub Stars
  • 🍴 1.6k+ Forks
  • 🐛 34 Open Issues
  • 👥 60 Watchers
  • 📦 MIT License
  • 🏷️ 170 Releases

🎯 Use Cases

  • Home Server - Keep your home lab accessible
  • Self-hosted Services - Dynamic IP for personal cloud
  • IoT Devices - Remote access to embedded systems
  • Development - Testing webhooks and APIs
  • Small Business - Cost-effective DNS management

🌟 Key Benefits

  1. Simplicity - Web interface for easy configuration
  2. Reliability - Robust error handling and retry logic
  3. Performance - Efficient Go implementation
  4. Flexibility - Multiple deployment options
  5. Community - Active development and support

🔗 Resources

  • Live Demo: Web interface at http://localhost:9876
  • GitHub Repository: jeessy2/ddns-go
  • Documentation: Comprehensive setup guides
  • Releases: GitHub Releases

📖 Installation Guides

System Service Installation

# Install as system service
./ddns-go -s install

# Start/Stop/Restart service
./ddns-go -s start
./ddns-go -s stop
./ddns-go -s restart

# Uninstall service
./ddns-go -s uninstall

Platform-Specific Instructions

  • Windows: Run as Windows Service
  • Linux: Systemd service integration
  • macOS: LaunchDaemon support
  • NAS: Synology, QNAP compatible
  • OpenWrt: Router firmware support

🤝 Contributing

We welcome contributions in various forms:

  • DNS provider integrations
  • Bug reports and fixes
  • Feature enhancements
  • Documentation improvements
  • Webhook integrations

Please read our Contributing Guide before submitting changes.

📄 License

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


共通のカテゴリとタグで順位付けした、似たオープンソースプロジェクトです。

すべてのネットワークプロジェクト →