用一个简单的 Shell 脚本实现动态 DNS,自动更新办公室的 DNS 记录

几天前微信公众号上发了一篇《动态修改 AWS EC2 IP 并自动注册 GoDaddy DNS》,当时的意图是自动更新 EC2 的 IP 地址,自动注册 DNS。
然后想到,其实自己公司办公室也可以做成自动更新,假设我有一个 mydomain.com 的域名在 GoDaddy 上注册并管理的,那么,添加一条 office.mydomain.com 的记录, 任意指向一个地址,例如 1.2.3.4

然后,用这个 Github 上已经开源的动态更新 DNS的脚本,就可以实现 办公室内的机器,随时随地访问了。 当然, 需要你对路由器知识有一定的了解,要在办公室的路由器上把端口映射做好。
例如,把 2222 端口映射到内部一台机器 192.168.7.22 的 22 端口,那么 SSH 访问 $ ssh username@office.mydomain.com -p 2222 就是访问 192.168.7.22 的 SSH 服务了。

理论上来说,这个脚本也可以用到 阿里云,腾讯云的 DNS。请 fork/star 这个小脚本吧,star 到 5 -10 个,添加阿里云和腾讯云 DNS的自动注册。

这个方法,基本就不需要搭建复杂的 VPN 服务器,只是在公司内部的一台 Linux 服务器上,每 n 分钟跑一次这个脚本就可以,如果万一公司的 IP 地址修改了, 你还可以收到邮件提醒通知,然后你依然可以访问office.mydomain.com 。一个示例的每2分钟检查的 crontab 如下:
*/2 * * * * /root/bin/MyOffice.sh -d office.mydomain.com -t myemail@qq.com

端口映射做好以后,需要登录到外部网络,例如用 4G 上网,来测试端口映射,直接用内部 IP 访问 office.mydomain.com 是无法连接上做好端口映射的端口的。
一个通过外部的地址 nmap 办公室公网域名,得到的结果如下:(例子是上海电信某款光猫的结果,打开了三个端口 2222/3322/xxxx)

阿里云用 Go 语言写的命令行,配置 Profile

作者: 甬洁网络

--移动互联网&物联网技术提供商