19个版本 (8个稳定版)
1.0.7 | 2024年2月26日 |
---|---|
1.0.6 | 2024年2月25日 |
1.0.5 | 2023年12月28日 |
1.0.4 | 2023年5月29日 |
0.1.11 | 2023年1月21日 |
#5 in #路由
每月296次下载
66KB
505 代码行
AWS Route 53 动态DNS
简介
此应用程序提供了一种方法,通过在由Amazon Route 53服务托管主DNS的域名中添加记录,来保持网络中的URL一致性,其中外部IP地址可能会不时发生变化。
你会有很多原因想要这样做,最常见的是提供一个URL,指向国内网络上托管的服务,而你的ISP没有提供静态IP地址,例如,web服务器、家庭VPN等。还有其他DDNS服务可能提供免费选项,我只是想使用自己的域名。
这不是一个面向公众的DDNS API,对于此,我推荐另一个具有类似名称的仓库:aws-ddns。这是一个提供DDNS的应用程序,它使用R53 API,目的是在你网络中的一台计算机上运行,以你满意的频率运行。
先决条件
- 一个AWS账户,此工具使用Amazon Route 53服务,这是AWS的一部分,因此你需要一个账户
- 你的域名,Route 53服务允许你管理你的域名DNS,此工具允许你将子域名映射到你的当前外部IP地址
- AWS凭证 允许修改存储在位于
$HOME/.aws/credentials
的本地凭证文件中的R53记录,就像为AWS CLI做的那样。你也可以使用AWS_SHARED_CREDENTIALS_FILE
环境变量来定位你的凭证文件,或者使用AWS_ACCESS_KEY
/AWS_SECRET_ACCESS_KEY
环境变量来指定你的凭证。
工作原理
应用程序从线上的许多服务中获取其外部网络地址,通过https进行。应用程序已将其中一些站点设置为默认,但您可以通过使用-i
参数提供以逗号分隔的站点列表来自定义选择。这些服务中的许多都有调用频率限制,因此r532-ddns将每次运行检查中的随机两个服务。返回的IP地址值将与存储在Amazon Route 53 DNS设置中的值进行比较,如果它们不同,则将在Route 53中更新DNS记录。
选项
$ r53-ddns -h
Set an Amazon Route 53 DNS record for the server/network
Usage: r53-ddns [OPTIONS]
Options:
-s, --subdomain <SUBDOMAIN> The subdomain to save (required)
-d, --domain <DOMAIN> The domain to save the record in (required)
-r, --region <REGION> The aws region [default: us-east-1]
-i, --ipaddress-svc <IPADDRESS_SVC> The ip address services to use, e.g. ident.me,ifconfig.me/ip
-n, --nat The record is a nat router and so a *.<subdomain>.<domain> CNAME record will be set
-l, --logdir <LOGDIR> Absolute path for the directory where log file should be written [default: /var/tmp]
-a, --alert-script <ALERT_SCRIPT> Script called on error or ip address changes, see: https://r53-ddns.a1ecbr0wn.com/alert-script
-c, --check <CHECK> Consecutive check gap in seconds for continuous checking [default: 0]
-v, --verbose Verbose logging
-V, --version Print version information
-h, --help Print help
- 要设置DNS记录,应用程序必须提供子域和域参数。
- 如果域所在的区域与默认的
us-east-1
不同,则需要使用-r
参数进行指定。 - 可以通过
-i
参数覆盖默认的IP地址https服务列表。 - 如果提供了
-n
参数,则将设置一个额外的*.<子域>.<域>
DNS记录。这可以用于将流量路由到具有该模式的全部主机。 - 为了使应用程序持续运行,可以使用
-c
参数传入连续检查之间的秒数间隔。一些IP地址Web服务器如果被频繁调用会返回错误,这个应用程序通过随机化使用的服务来尝试解决这个问题,但建议使用默认列表时,连续检查间隔不低于300秒。
安装
使用方法
r53-ddns可以按需使用,但如果您的外部IP地址发生变化,您可能希望将其设置为持续运行。您可以通过使用作业调度程序(如cron)或作为服务来完成此操作。
问题
如果您在使用此应用程序时遇到问题,请首先启用详细日志记录,使用-v
参数。如果您在cron或作为服务运行时尝试解决一个问题,日志将默认记录到/var/tmp/r53-ddns.log
文件,这是一个无论您以哪个用户运行应用程序都应该是可写的文件。
如果问题不明显或您认为存在错误,请通过GitHub提出问题。
贡献
请随意贡献,我会很高兴查看提出的任何PR。
其他信息
依赖关系
~23–37MB
~700K SLoC