Skip to main content

DDNS

采用以下开源项目作为核心实现:

获取公网IP接口(多个容错):

日志/指标方案支持以下:

部署方案支持以下:

其他参数支持:

  • pid

客户端采用技术:

实现方案考虑

  • coredns + /etc/hosts + python server/client
  • coredns + etcd + python client

实现方案

最终方案选择

降低对环境的耦合, 不对 /etc/hosts 进行操作(简单性能一般), 最终采用 coredns + etcd + python client 方案。

部署方案考虑

支持以下方案(平台支持: linux/amd64+arm64):

  • 二进制/systemd
  • Docker/docker-compose/docker-swarm
  • k8s

周边生态考虑

支持以下项目:

  • 参数配置

  • 日志输出:

    • 标准输出/错误
    • 日志文件(根据信号支持重新打开): logging
    • fluentd输出: fluentd-python
  • 指标输出:

  • 信号处理:

    • 重启加载日志
    • stop/quit/reopen/reload

运行流程图

读取配置文件:

配置文件

运行:

运行

安装部署

# brotlipy(aiohttp[speedup]) requirements
apt install -y build-essential python3.6-dev libffi-dev

Release files for ddns-client 0.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ddns-client 0.8
File Size Uploaded
ddns_client-0.8.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ddns-client 0.8
File Interpreter ABI Platform
ddns_client-0.8-py3-none-any.whl Python 3 none any Details

Total release size: 28.4 kB

Release files / ddns_client-0.8.tar.gz

Download URL ddns_client-0.8.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
f24881889413b4398fafa4db5e033b8c25ecf578c7ecc9ab3915b98e3c0ec9f7
BLAKE2b-256 checksum
How to use checksums
48cf442e5e5a3333457346cc83a5898bba4619facd1d36223206b350d9217587
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

Release files / ddns_client-0.8-py3-none-any.whl

Download URL ddns_client-0.8-py3-none-any.whl
Size 20.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
48b6cab032cd565bcb049f82a7d31b605cfceaed7a96b7046003925ba8919967
BLAKE2b-256 checksum
How to use checksums
2ccff92d4aac445c290dd60393bb27ba14c892e6dd01a264363cd1c2125802ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

Release history Release notifications | RSS feed

This release

0.8 This release

2 release files

0.7

2 release files

0.6

3 release files

0.5

2 release files

0.4

3 release files

0.2

2 release files

0.1

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page