中文 | English
Automatically obtain your public IPv4 or IPv6 address and resolve it to the corresponding domain name service.
Aliyun Aliyun ESA Tencent Dnspod Cloudflare Huawei Callback Baidu Porkbun GoDaddy Namecheap NameSilo Dynadot DNSLA Nowcn Eranet Gcore EdgeOne IBM NS1 Connect Rainyun[!NOTE] If you enable public network access, it is recommended to use Nginx and other reverse proxy software to enable HTTPS access to ensure security.
sudo ./ddns-go -s install.\ddns-go.exe -s installhttp://localhost:9876 for initial configurationsudo ./ddns-go -s uninstall.\ddns-go.exe -s uninstall-l listen address-f sync frequency(seconds)-cacheTimes interval N times compared with service providers-c custom configuration file path-noweb does not start web service-skipVerify skip certificate verification-dns custom DNS server-resetPassword reset passwordbash
./ddns-go -s install -f 600 -c /Users/name/.ddns_go_config.yamlbash
./ddns-go -s install -f 10 -cacheTimes 180bash
./ddns-go -resetPassword 123456/opt/ddns-go with any directory on your host, the configuration file is a hidden filebash
docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go
Please open the browser and visit http://DOCKER_IP:9876 for initial configuration
[Optional] Use ghcr.io mirror
bash
docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root ghcr.io/jeessy2/ddns-go
-llisten address -fSync frequency(seconds)bash
docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go -l :9877 -f 600
bash
docker run -d --name ddns-go --restart=always -p 9876:9876 -v /opt/ddns-go:/root jeessy/ddns-go
bash
docker exec ddns-go ./ddns-go -resetPassword 123456
docker restart ddns-go
| Variable name | Comments |
|---|---|
| #{ipv4Addr} | The new IPv4 |
| #{ipv4Result} | IPv4 update result: no changed success failed |
| #{ipv4Domains} | IPv4 domains,Split by , |
| #{ipv6Addr} | The new IPv6 |
| #{ipv6Result} | IPv6 update result: no changed success failed |
| #{ipv6Domains} | IPv6 domains,Split by , |
| #{timestamp} | Current UTC+0 timestamp in seconds |
If RequestBody is empty, it is a GET request, otherwise it is a POST request
Telegram
Discord
Webhook URL copied from Discord in the URLInput in RequestBody
json
{
"content": "The domain name #{ipv4Domains} dynamically resolves to #{ipv4Result}.",
"embeds": [
{
"description": "Domains: #{ipv4Domains}, Result: #{ipv4Result}, IP: #{ipv4Addr}",
"color": 15258703,
"author": {
"name": "DDNS"
},
"footer": {
"text": "DDNS #{ipv4Result}"
}
}
]
}
| Variable name | Comments |
|---|---|
| #{ip} | The new IPv4/IPv6 address |
| #{domain} | Current domain |
| #{recordType} | Record type A or AAAA |
| #{ttl} | TTL |
- If RequestBody is empty, it is a GET request, otherwise it is a POST request |

$ claude mcp add ddns-go \
-- python -m otcore.mcp_server <graph>