专栏首页运维之美零配置,30 秒实现一个支持无限层级泛域名解析的 DNS 服务

零配置,30 秒实现一个支持无限层级泛域名解析的 DNS 服务

什么是 xip.io

xip.io 是一个提供通配符 DNS 解析的魔法域名。你可以无需配置,将自定义的任何域名解析到指定的 IP 地址。假设你的 IP 地址是 10.0.0.1,你只需使用 前缀域名+IP地址+xip.io 即可完成相应自定义域名解析。

10.0.0.1.xip.io         # 解析到 10.0.0.1
www.10.0.0.2.xip.io     # www 子域解析到 10.0.0.2
mysite.10.0.0.3.xip.io  # mysite 子域解析到 10.0.0.3
foo.bar.10.0.0.4.xip.io # foo.bar 子域解析到 10.0.0.4

xip.io 使用上已经很简单了,如果你想使用自己的域名来实现一个类似 xip.io 同样功能也是很容易的。你只需部署一个 xip.name 的开源软件就可以简单实现了!

什么是 xip.name

xip.name 是受 xip.io 启发,使用 Golang 开发的一个支持通配符的 DNS 服务器。

项目地址:https://github.com/peterhellberg/xip.name

xip.name 也同样提供了一个和 xip.io 类似的公共 DNS 服务,它的使用上和 xip.io 无异。你同样可以直接使用:

10.0.0.1.xip.name         # 解析到 10.0.0.1
www.10.0.0.2.xip.name     # www 子域解析到 10.0.0.2
mysite.10.0.0.3.xip.name  # mysite 子域解析到 10.0.0.3
foo.bar.10.0.0.4.xip.name # foo.bar 子域解析到 10.0.0.4

xip.name 部署教程

前置条件:

  • 一台有公网 IP 并开放 53 端口的服务器
  • 一个有管理权限的域名
  • 一个提供支持通配 NS 记录的 DNS 解析服务的帐号

安装 xip.name

xip.name 使用 Go 语言开发,通常情况下,安装是很容易的,你只需直接下载并放到相应路径即可使用它。

由于 xip.name 项目没有直接提供二进制包下载,所以这里我们使用 go 命令进行源码下载后,进行编译安装。

# 安装 GO 环境
$ yum install -y golang
# 获取、编译代码
$ go get github.com/peterhellberg/xip.name
# 将编译好的二进制文件放到系统 PATH 路径下
$ cp go/bin/xip.name /usr/local/bin/xip

安装完成后,我们给 xip.name 增加一个 Systemd 配置文件。

$ cat << EOF > /usr/lib/systemd/system/xip.service
[Unit]
Description=xip
After=network.target
 
[Service]
Type=simple
ExecStart=/usr/local/bin/xip -ip 0.0.0.0 -fqdn ywzm.org.
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
EOF

注:ExecStart 配置的启动命令的 -fqdn 是用来定义 DNS 服务器要支持的域名,这里设置的是 ywzm.org.。你可以根据实际情况进行调整。

一些常规的 xip 服务管理操作

# 启动 xip
$ systemctl start xip
# 关闭 xip
$ systemctl stop xip
# 重启 xip
$ systemctl restart xip
# 配置开机自启 xip
$ systemctl enable xip

配置 DNS

要成功实现 xip.name 提供的服务,只部署相关程序是不够的。还需要配置你自定义域名的 NS 解析记录,目前国内支持通配 NS 记录的免费 DNS 服务商不多,这里我使用的是阿里云 DNS 解析。

配置其实也很简单,主要需要配置一个通配的 NS 记录和一个指向 DNS 服务器的 A 记录。

以我的域名 ywzm.org 为例,假设部署 xip.name 服务器的公网 IP 是 11.22.33.44。DNS 就应该增加以下两条解析记录:

  • 增加一条通配 NS 记录解析到 ns1.ywzm.org
*  ns ns1.ywzm.org
  • 增加一条 A 记录解析到 11.22.33.44
ns1.ywzm.org  A  11.22.33.44

以上配置好就完成了,看下最终效果吧!

最后,我们来验证一下吧:

从上面的结果可以看到,我们并未对域名进行任何配置就自动实现了相应解析,是不是很给力呢?有兴趣的同学赶紧用起来吧!

本文分享自微信公众号 - 运维之美(Hi-Linux),作者:iMike

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何优雅地实现高可用系统?

    织云平台团队
  • 从代码角度看各类子域名收集工具

    开源的域名收集工具有很多,本文会从代码的角度去看各类开源的域名收集工具的技术特点,以及各有哪些优缺点,来帮助大家,在合适的时候选择合适的利用工具。

    Seebug漏洞平台
  • 国内外提供免费的域名DNS解析的服务商

    是不是该来的时候了!CloudXNS将很快停止免费用户的域名解析!还是世界上没有“永久”的免费服务?! 哪个适合我们的域名?让我们给你推荐一些。 博客作者计划将...

    Erwin
  • 百度APP移动端网络深度优化实践分享(二):网络连接优化篇

    在《百度APP移动端网络深度优化实践分享(一):DNS优化篇》里大家了解到网络优化一般会首选优化DNS,而接下来的HTTP协议成为优化的重点,一般优化者会选择协...

    JackJiang
  • 黑客技术?没你想象的那么难!——dns劫持篇

    在网络中,机器之间只认识IP地址,机器之间最终都要通过IP来互相访问。但是为了方便记忆,可以为IP地址设置一个对应的域名,通过访问域名,就可以找到对应IP地址的...

    C4rpeDime
  • 美国半个互联网瘫痪对开发者使用 DNS 的启发

    DNS 行业正在面临越来越严重的安全威胁,我们应积极采取措施进行应对,最后,仍然是需要完善法律法规,并对进行攻击者加大打击力度,必要时进行法律制裁。

    腾讯云DNSPod团队
  • 技术角 | 架构学习书摘总结(五)架构实战(中)

    最近阅读了一本架构方面的入门图书叫《从零开始学架构:照着做,你也能成为架构师》,部分内容比较不错,先做书摘总结,以便加深印象与未来回顾学习。

    ZNing
  • 51 张图助你彻底掌握 HTTP 协议

    如果说 TCP/IP 协议是互联网通信的根基,那么 HTTP 就是其中当之无愧的王者,小到日常生活中的游戏,新闻,大到双十一秒杀等都能看到它的身影,据 NetC...

    kunge
  • FastDFS蛋疼的集群和负载均衡(十二)之浅谈负载均衡

    用户2032165

扫码关注云+社区

领取腾讯云代金券