×

用户登录


忘记密码 | 立即注册

×

找回登录密码


×

找回密码

×

用户注册


服务条款

已有账号?

服务条款

犀牛代理用户注册协议

  1. 1.您确认:您在使用本服务之前,已经充分阅读、理解并接受本服务条款的全部内容,您应当是具备完全民事权利能力和完全民事行为能力的自然人、法人或其他组织;
  2. 2.用户应保证在注册时提供的资料均真实、完整、无误;
  3. 3.不得利用本软件发表、传送、传播、储存违反国家法律、危害国家安全、祖国统一、社会稳定的内容,或任何不当的、侮辱诽谤的、淫秽的、暴力的及任何违反国家法律法规政策的内容;
  4. 4.不得利用本软件进行任何危害计算机网络安全的行为,包括但不限于:使用未经许可的数据或进入未经许可的服务器/帐户; 未经允许进入公众计算机网络或者他人计算机系统并删除、修改、增加存储信息;未经许可,企图探查、扫描、测试本软件系统或网络的弱点或其它实施破坏网络安全的行为; 企图干涉、破坏本软件系统或网站的正常运行,故意传播恶意程序或病毒以及其他破坏干扰正常网络信息服务的行为;伪造TCP/IP数据包名称或部分名称;
  5. 5.在完成注册或激活流程时,您应当按照法律法规要求,按相应页面的提示准确提供并及时更新您的资料,以使之真实、及时,完整和准确。 如有合理理由怀疑您提供的资料错误、不实、过时或不完整的,犀牛代理有权向您发出询问及/或要求改正的通知,并有权直接做出删除相应资料的处理,直至中止、终止对您提供部分或全部服务。 犀牛代理对此不承担任何责任,您将承担因此产生的任何直接或间接损失及不利后果。
  6. 6.为保障服务器的稳定和给用户一个良好的网络环境,请勿迅雷下载,在线视频等大流量操作,否则我们有权在不通知情况下禁用帐号;
  7. 7.系统可能因下列状况无法正常运作,使您无法使用各项互联网服务时,犀牛代理不承担损害赔偿责任,该状况包括但不限于: 犀牛代理在系统停机维护期间;电信设备出现故障不能进行数据传输的;因台风、地震、海啸、洪水、停电、战争、恐怖袭击等不可抗力之因素,造成犀牛代理系统障碍不能执行业务的; 由于黑客攻击、电信部门技术调整或故障、网站升级、银行方面的问题等原因而造成的服务中断或者延迟。
  8. 8.除第三方产品或服务外,本网站上所有内容,包括但不限于著作、图片、档案、资讯、资料、架构、页面设计,均由犀牛代理关联企业依法拥有其知识产权,包括但不限于商标权、专利权、著作权、商业秘密等。 非经犀牛代理或犀牛代理关联企业书面同意,任何人不得擅自使用、修改、复制、公开传播、改变、散布、发行或公开发表本网站上程序或内容; 尊重知识产权是您应尽的义务,如有违反,您应承担损害赔偿责任。
  9. 9.使用本软件必须遵守国家有关法律和政策等,维护国家利益,保护国家安全,并遵守本协议,对于用户违法或违反本协议的使用而引起的一切责任,由用户负全部责任,一概与犀牛代理动态无关,导致犀牛代理IP 加速损失的,犀牛代理有权要求用户赔偿,并有权立即停止向其提供服务,保留相关记录,保留配合司法机关追究法律责任的权利;
  10. 10.您理解并同意,犀牛代理可依据自行判断,通过网页公告、电子邮件、手机短信或常规的信件传送等方式向您发出通知,且犀牛代理可以信赖您所提供的联系信息是完整、准确且当前有效的;上述通知于发送之日视为已送达收件人。

除非本服务条款另有约定或犀牛代理与您另行签订的协议明确规定了通知方式,您发送给犀牛代理的通知,应当通过犀牛代理对外正式公布的通信地址、传真号码、电子邮件地址等联系信息进行送达。 若犀牛代理发现使用本网服务存在进行如上任意一项行为时,本网站将立即停止其使用权,并保留相关信息以追求各项法律相关责任的权利。

为您提供相关的解决办法

以下基本常见问题,如有使用问题请反馈联系我们!

当前位置:新闻资讯

动态IP解析

2019-04-23

本文关键词:动态IP,动态域名IP解析,
本文介绍两种方便获取主机动态IP的方式(DDNS,IP报告网页),并给出相应的代码实现.
shell脚本获取本机IP,执行上传操作和更新DNS操作.定期执行通过crontab或者systemd等服务.
应用场景

远程访问具有动态IP的公网或内网主机时,如果通过ip进行访问,由于公网IP总是在变化,我们不得不每次去查看新的ip地址,往往这个重复的过程比较麻烦.
远程主机联网的方式有所不同,主要有以下几种情形:

  1. 1.远程主机是通过PPPoE拨号上网,通常获取到动态的私有网络(内网)地址
  2. 2.远程主机直接获取到的是动态公网ipv4地址.
  3. 3.在教育网中通常还能获得动态的公网ipv6地址.

又可以简易地分成两类: 配有公网ip的主机与仅配置内网ip的主机.
内网主机访问方式

  1. 1.反向隧道
    对于躲在NAT之后的内网主机,比较方便的方式是在内网主机建立到公网主机的反向隧道,命令行建立反向隧道工具有:ssh,ngrok,tmate等,参考我之前的反向隧道的文章. 这些工具往往都能在ip发生改变后自动重建连接.
    缺点是我们需要一台拥有公网ip的主机,并且时刻保持隧道长连接,另外由于远程访问内网主机需要经过这个公网主机中转,速度变慢.

  2. 2.内网穿透

    通过公网服务器得到内网主机在NAT设备的转码地址,然后可以建立p2p的连接.QQ,TeamViewer即是类似原理.前提是内网容易穿透.

  3. 3.路由器端口映射
    外网IP和端口映射到内网:在路由器的「转发规则」页面添加外网的端口到内网某主机端口的映射.

本着只要有不断重复的麻烦事就用脚本实现的原则,我们通过一些脚本来方便我们的工作.


ddns(动态域名IP解析

IP报告/搜集脚本
IP报告脚本

通过linux的ip命令获取到本机的公网ip以及通过网站获取本机的外网ip,然后上传到自建的php服务器上.

脚本使用了本地文件记录前一次变更的ip地址,当ip发生变化才执行网络操作.文件保存在内存文件系统或临时文件中.
reportIP.sh


text

php收集脚本
提供的服务地址形式是:http://x.makefile.tk/?k=password&n=2&p0=x.x.x.x&p1=x.x.x.x,其中n是ip地址个数,p0,p1,...分别是单独的ip,参数k为了简单地防止一些人捣乱.直接访问http://x.makefile.tk/将能看到上一次保存的ip地址.

下面是index.php代码,通过文件来记录ip地址,不能够并发写入.同shell报告脚本一样可以使用内存文件来加快读写速度.


text

text
对于这种web应用,使用网络上各种php建站即可.
公共dns服务

准备:购买公网域名,域名设置DNS解析服务为Dnspod或CloudFlare.本文的代码使用CloudFlare的API动态修改DNS记录.

思路是修改IP报告脚本,将更新的IP更新的公共的DNS服务上.


ipv6-dns.sh 代码:

text
text
脚本中通过source dns.conf读取了配置信息:
text

自建dns服务

准备:外网服务器B,搭建bind9服务用来提供DNS服务

借助于IP报告/收集脚本,在服务器B上不断更新域名解析.

客户端机器C,手动设置DNS服务地址为B的IP.这种方式的优点是域名想怎么写就怎么写.

示意图:


DDNS
通过DNS服务可以实现与著名的花生壳相类似的服务,而且成本低,“自主、可控”:) 。
关于域名解析ttl
TTL是英语Time-To-Live的简称,意思为一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。

如果域名的IP经常变更,那么减小TTL的值,如果很少改变,调大成几个小时都行.
将TTL设为1,表示'Automatic',如Cloudflare的DNS会在约5分钟内push出去.

IP地址变更事件通知

得到网络变化的方式有多种:

  1. C语言使用linux下的rtnetlink的NETLINK_ROUTE socket,监听之后会收到消息.要求写的程序一直在运行.参考.
  2. 如果网络管理器使用的Gnome的NetworkManager,那么会通过D-Bus广播事件(浏览器等常通过这种方式切换在线/离线模式).
  3. Debian系统中网络接口up或down时会执行/etc/network下的相关脚本.
  4. ifplugd 当网线被拔掉或接入时会执行相应脚本.

如果网络是使用NetworkManager(Ubuntu等系统默认的网络管理器)进行DHCP获取动态IP,比较方便的方式是将我们的脚本添加到事件响应脚本中. 参考man手册,在/etc/NetworkManager/dispatcher.d中添加脚本.

text
CRON定时执行
执行crontab -e将会编辑用户的crontab文件,其创建/tmp下的临时文件进行编辑,保存后将会提交到系统目录下(/var/spool/cron),这种设计方式类似visudo,目的是先检查用户的输入,防止错误的输入带来的破坏.系统重启后/tmp下的文件会删除,而crontab不会丢失.
也可以使用自定义的crontab文件导入到系统任务中:`crontab /path/to/cronfile
文件内容如下,注意使用绝对路径:

*/1 * * * /home/s05/fyk/ip/ipv6-dns.sh /home/s05/fyk/ip/dns.conf
cron job的执行命令情况可以在/var/log/syslog中看到.
使用logger 'msg'可以将msg记录到syslog文件中.
crontab无需重启会立即生效.

邮件通知
发送邮件.适合于ip更新不太频繁的情形,通过代码发送邮件的代码很简便,Python,Java等语言均有方便的实现.

支付方式

  • 微信支付
  • 支付宝支付

售后服务

  • 技术支持QQ:337292404
  • 投诉建议QQ:337292407

商务合作

关注微信公众号

优惠多多

声明:本站资源仅限用来计算机技术学习及大数据抓取、爬虫研究等合法行为。 利用本站资源从事任何违反中国法律法规的行为,由此引起的一切后果与本站无关。

枣庄联宇商贸有限公司版权所有