情景说明

前段时间应公司需求,需要将内网的服务映射到公网。由于公司使用的是类似家庭宽带的线路,没有固定的公网 IP 地址,所以决定使用域名来完成。

当时有几种方案:

1、花生壳:但是目前需要乱七八糟的认证备案,舍弃!

2、NAT123:花里胡哨的,感觉像垃圾软件,也舍弃!

3、holer:GITHUB 上面的一个项目,但是我们只能安装 Client 端,Server 端在别人手里,不安全,舍弃!

还有其它的乱七八糟的很多,但是都觉得要么是 C/S 架构,麻烦。要么就是使用别人的,定制要么收费,要么不安全,也都放弃了,最后决定参考网上的 Python 调用阿里云 API 通过 Linux 定时任务来更新解析!

网络拓扑

简单的网络拓扑如下图:

说明:

1、电信 ASDL 拨号,会有一个会变化的公网 IP 地址,我们的域名就是要解析到最新的该 IP 地址上面

2、公司内网是一个路由器接交换机的方式,路由器比较 Low,H3C 的,简单的进行一个端口转发到指定的服务器 192.168.1.100

3、192.168.1.100 上面安装 Nginx,做反向代理,同时也作为统一的管理入口,方便管理,同时也做定时更新 DNS 解析的任务

准备工作

首先,我们需要去阿里云创建一个 Accesskey ,这个东西将作为我们登录阿里云更新解析的用户,具体创建方法可以参考百度,创建完成后记得保留好生成的 Key 和 Secret:

注意:创建的 AccessKey 用户一定要记得授权 DNS 管理 的权限,否则无法更新!

其次,我们需要有一个已经备案完成的域名,如 abc.com!

最后,有一台内网的 Linux 机器,个人推荐 CentOS,几年运维下来,几乎用的都是这个,不为别的,就为了比较好管理。

服务配置

【1】CentOS 服务器安装 Python: 默认情况下,CentOS 是拥有 Python 的,一般都是 2.6 或者 2.7,但是不一定有 pip,我们需要安装 pip,这里采用的 epel 源:

yum -y install epel-releaseyum -y install python-pip

【2】安装依赖的阿里云 Python 包:前者是阿里云需要的包,后者是模拟请求需要的包

pip install aliyun-python-sdk-alidnspip install requests

【3】编辑更新脚本 ddns_update.py,内容如下:

备注:脚本参考网上的老哥的分享,然后自己做了一些修改

注意:这里解析有一个前提条件,就是你需要修改的那条解析规则必须已经存在,该脚本不能新增,只能修改旧的

#coding:utf-8from aliyunsdkcore import clientfrom aliyunsdkalidns.request.v20150109 import DescribeDomainsRequest,DescribeDomainRecordsRequest,UpdateDomainRecordRequestimport json,urllib,re ####################################################################################### 个人配置区域###################################################################################### 创建的 AccessKeyID="xxxxx"Secret="xxxxx" # 默认RegionId="cn-hangzhou" # 你的域名DomainName="abc.com" # 你想解析的二级域名,是一个列表,可以写多个HostNameList = ['test','hello', 'world'] # 默认Types = "A"clt = client.AcsClient(ID,Secret,RegionId)######################################################################################  # 动态获取当前公司对外的公网 IPdef GetLocalIP():    IPInfo = urllib.urlopen("http://2018.ip138.com/ic.asp").read()

【4】添加定时任务: 每两小时更新一次

# 授执行权限chmod 755 /scripts/ddns_update.py # 添加定时任务echo "* */2 * * * /usr/bin/python /scripts/ddns_update.py" >> /var/spool/cron/root

【5】配置完成,此时你可以手动执行检验该脚本是否能够正常的修改域名解析!至于后面的 Nginx 反向代理,网上的方法很多,这里就不一一缀诉!

其它

这里感谢提供这个脚本的大神,但是我写这个的时候已经离找到这个脚本有一段时间了,所以就无法具体到哪位,有些遗憾!

转载自:https://www.cnblogs.com/Dy1an/p/9229074.html

没固定公网 IP 的公司内网实现动态域名解析( 阿里云万网解析 )相关推荐

  1. 阿里云万网域名解析方法

    昨天,株洲SEO给大家分享了阿里云万网域名备案流程http://www.wangxiaoyou.com/youhua/23.html,那么今天继续来给大家分享备案通过之后我们需要做的事情,域名的解析, ...

  2. 阿里云万网域名解析免费教程

    域名解析配置,以阿里云域名为例: 1.登录阿里云控制台:点击管理控制台,点击左侧域名 2.解析域名.选择你需要配置的域名,点击右侧解析 3.解析配置,点击添加记录 4.添加解析. 主机记录: 就是域名 ...

  3. 腾讯邮箱 新浪邮箱 网易 免费企业邮箱 阿里云/万网域名MX解析配置

    公司在网易上申请的免费的企业邮箱,对应的域名在阿里云上购买,如何配置? 1.首先通过阿里云的账号密码登录进入管理控制台首页 2.点击左侧的域名菜单进入域名列表 3.在对应的域名后面点击[解析]跳转到域 ...

  4. 阿里云万网虚拟主机安装配置Https(SSL)教程

    太多太多的用户咨询阿里云虚拟主机是否可以安装SSL数字证书?万网空间是否可以支持HTTPS协议访问网站?答案只有一个:目前阿里云虚拟主机都不支持安装SSL证书!但是,但是,可以曲线实现目标! 1.为了 ...

  5. 阿里云万网域名一键签发SSL证书 快捷申请免费SSL证书教程

    原文链接:点击打开链接     前段时间不止一个用户在开发者论坛询问阿里云的免费证书无法购买了,经过在版主群里面的讨论和实践,并不是停止提供免费的SSL证书,而是在购买云盾证书服务中,需要先选择&qu ...

  6. [图文教程]阿里云万网域名一键签发SSL证书 快捷申请免费SSL证书

    前段时间不止一个用户在开发者论坛询问阿里云的免费证书无法购买了,经过在版主群里面的讨论和实践,并不是停止提供免费的SSL证书,而是在购买云盾证书服务中,需要先选择"Symantec" ...

  7. [Linux]阿里云万网域名-腾讯云服务器nginx下配置免费的https

    我的域名是在阿里云万网上购买的,服务器是部署在腾讯云上,可以按照下面的步骤配置https 首先登陆阿里云网站控制台,申请免费证书,免费证书只能单一域名.测试地址如:https://gofly.sopa ...

  8. golang中获取公网ip、查看内网ip、检测ip类型、校验ip区间、ip地址string和int转换、根据ip判断地区国家运营商等

    作者: 一蓑烟雨1989 所属专栏: Go从不放弃到实战 本文链接:https://blog.csdn.net/wangshubo1989/article/details/78066344 生命不止, ...

  9. 如何分辨动态公网ip和固定公网ip之间的关系有什么不同?

    ** 前言 ** 顾名思义,很多小白会把动态公网ip和固定公网ip两者混淆,就和家庭宽带和专线一样,不知道他们看似都一样,但是价格却相差很多!通过笔者的长篇大文,希望能为大家普及动态公网ip和固定公网 ...

最新文章

  1. 理解C语言声明的优先级规则
  2. 年终福利 | 京东虚拟平台团队问答专场
  3. 【Python】/ 和 // 的区别
  4. docker php nginx,使用docker快速搭建nginx+php环境
  5. 腾讯 2017 年投资项目榜单 TOP 10,与阿里死磕到底?
  6. 错误:找不到或无法加载主类
  7. aspnet实现搜索查询_C#算法设计查找篇之01-顺序查找
  8. linux语音识别_linux语音识别 arm_linux 语音识别引擎 - 云+社区 - 腾讯云
  9. OpenCV图像的编解码读取
  10. Java用POI导出Excel表格中的数据
  11. 山重水复 Thinkpad T61改装记
  12. 三目运算(三目表达式)是什么?
  13. matlab心理学函数包,心理学研究方法:基于MATLAB和PSYCHTOOLBOX
  14. Python的seek函数
  15. 04Reverse基础(五)
  16. CList 简单用法
  17. 解决Eclipse打开某个workspace报错:The project description file (.project) for (项目名)
  18. 多线程处理大数据量查询
  19. 几种简单方法找回丢失的IE图标
  20. 远程诊断DoIP(笔记二)概念

热门文章

  1. bf2无限载具服务器,战地2 局域网 飞机无限
  2. 48页智慧城市大数据可视化平台建设方案
  3. CSDN产品公告第3期:博客数据统计功能上线,OFFER大挑战等你来!
  4. JavaScript2谁刚开始学习应该知道4最佳实践文章(翻译)
  5. 名帖332 王献之 草书《鸭头丸帖》
  6. win7 凭据管理无法保存
  7. win10打开 Windows凭据管理器 0x800706BA
  8. 计算机网络应用层和传输层及网络层协议有哪些?
  9. 对异地工作的一些看法
  10. 弘辽科技:直通车成交率多少正常?如何提高成交率?