相信不少网友和电信纠缠后已经坐拥了公网ip这一宝贵财富,但可惜的是这个ip是动态的,每次重新拨号都会免费换新,下面介绍一种简单的绑定动态ip到域名的技术而不使用花生壳等ddns技术的方法。
该方法使用的是阿里云及其一系列域名管理API。
首先,需要申请一个阿里云域名,orz,不好意思,不是全免费方案。最便宜的那种即可。
打开阿里云管理控制台 => 域名与网站 => 域名 => 点击自己申请的域名 => 选择域名解析标签页
1.PNG (197.03 KB, 下载次数: 0)
基本上,我们只要手动修改这里的记录值项,就可以达到将域名绑定到ip上的作用,但这里我们不能手动来做,而是让自己的计算机来自动更新它。
有请aliyunsdkalidns。
不过在此之前,我们还有一个准备工作来完成。
页面:https://ak-console.aliyun.com/index#/accesskey
这里将生成API访问所需的密钥对。网页打开后,点击右上角的创建Access Key,并记录下Access Key ID与Access Key Secret,后面将要使用它们。
先安装阿里云API库,windows可能需要先安装python,python.org,下载2.7版本的,安装并选择把python.exe放入PATH中。
随后执行命令:
pip install aliyun-python-sdk-core
pip install aliyun-python-sdk-alidns
安装完成后,使用如下这段脚本即可。
http://pan.baidu.com/s/1dFkS0Kx
修改内容如下:
2017-03-03_122546.jpg (227.9 KB, 下载次数: 0)
脚本会比较新的ip和以前记录的ip,若有不同就会去阿里云的域名服务器上自动更新域名解析,这样只要不间断的执行这段脚本(实际使用可以给它设置一个自动执行的间隔,比如5分钟一次,1小时一次),这样就算重新拨号,域名也可以正确配置到新ip上。其实这个脚本是一个十分轻量的处理,你设置成30秒检查一次都不会对计算机性能有影响。
至于如何周期执行,windows使用计划任务,linux使用crontab即可。
开放3389端口,直接使用域名访问远程桌面。
q.jpg (133.58 KB, 下载次数: 0)
评论
这跟ddns有什么区别
评论
区别是你必须是公网ip把
评论
楼主的这个帖子就是ddns而已,提供ddns的除了花生壳还有很多。
评论
就是一种简易的ddns,区别在于是自己做的。因为出于安全考虑,很多人是不会在基建上使用未知的三方软件。
评论
其实固定的公网IP有什么好处?
评论
不错的技术贴,的确现在的公网IP天天变比较麻烦
评论
百度盘的链接失效了,楼主可否再分享下脚本代码,谢谢
评论
DYNU的DDNS更简单,不需要客户端一个GET操作就能更新IP,而且还免费。
花生壳也是,一个GET操作就能更新IP,完全不需要客户端,但是花生壳那个API是HTTP的,容易被劫持到用户名和密码。
评论
楼主,它的功能仅仅是和DDNS一样功能,还是其他?
评论
网盘失效了,楼主方便再分享下那个网盘的链接吗
评论
github上有很多类似的轮子,现在在用这个
https://github.com/NewFuture/DDNS
评论
同楼主方案,花生壳,noip都用了,一个老掉,一个老需要登录,这个是全自动无需管理的。去ali一块钱买个域名就OK了
评论
好处就是,自己开了ss给自己回国用了几天,然后再出去后ip就给长城ban掉了,所有大陆的ip都无法访问,我到现在还未明白它是怎么扫描到我的ip~~~~除非客户端有钓鱼程序。
评论
from json import load
from urllib2 import urlopen
import os
import datetime
from xml.etree import ElementTree
from aliyunsdkcore import client
from aliyunsdkalidns.request.v20150109 import UpdateDomainRecordRequest
from aliyunsdkalidns.request.v20150109 import DescribeDomainRecordsRequest
access_key_id = ''
access_key_secret = ''
local_file_path = '/home/ryu/public_ip.txt'
if os.path.exists(local_file_path):
with open(local_file_path, 'r') as local_file:
line = local_file.readline()
current_ip = line.split(' ')[0]
else:
current_ip = None
new_ip = urlopen('http://ip.42.pl/raw').read()
if new_ip is None:
new_ip = load(urlopen('http://jsonip.com'))['ip']
if new_ip is None:
new_ip = load(urlopen('http://httpbin.org/ip'))['origin']
if new_ip is None:
new_ip = load(urlopen('https://api.ipify.org/?format=json'))['ip']
if (current_ip is None and new_ip is not None) or (
current_ip is not None and new_ip is not None and new_ip != current_ip):
clt = client.AcsClient(access_key_id, access_key_secret, 'cn-hangzhou')
domain_record_list = [['**.com', 'www'],
['**.com', '@'],
['**.net', 'cuda']]
for [DomainName, RRKeyWord] in domain_record_list:
request = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest()
request.set_DomainName(DomainName)
request.set_TypeKeyWord('A')
request.set_RRKeyWord(RRKeyWord)
request.set_accept_format('xml')
response = clt.do_action(request)
root = ElementTree.fromstring(response)
record_id = root.find('DomainRecords/Record/RecordId').text
request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
request.add_query_param('RecordId', record_id)
request.add_query_param('RR', RRKeyWord)
request.add_query_param('Type', 'A')
request.set_accept_format('xml')
request.set_Value(new_ip)
response = clt.do_action(request)
print('domain {0}.{1} update succeed. new ip address is {2}.'.format(RRKeyWord, DomainName, new_ip))
with open(local_file_path, 'w') as local_file:
now = datetime.datetime.now()
current_time = now.strftime('%Y-%m-%d %H:%M:%S')
local_file.write(new_ip + ' ' + current_time)
复制代码
评论
华硕路由器刷了M林,就可以在路由器上完成IP更新了。
评论
DNS生效需要时间,全球生效24~72小时。。。。DDNS更新IP生效就几分钟。所以我买了no-ip,25美元一年 可以申请25个二级域名。
评论
马克一下,字数补丁
评论
30秒吧,美西连国内。
评论
你电脑上的DNS是阿里的吧?所以快, 你换其他DNS就不行了,要等DNS服务器更新。
评论
当然不是,你没必要说这个,没人不懂dns更新的方式。
评论
群晖自带 你折腾这来干什么
评论
上面说了多少次了,为了安全。
评论
晕死,阿里云就安全,群晖就不安全。不过是向服务器报告个ip。
评论
那到底是阿里云安全还是群晖安全?
这个还用问么?
我不说服任何人用,只留给想用的人,这个是透明的,自制的ddns方案。
评论
record_id = root.find('DomainRecords/Record/RecordId').text
AttributeError: 'NoneType' object has no attribute 'text'
评论
这是为什么?
评论
github上搜索frp,配置即可,根本不需要什么花生壳。
评论
snipaste20180116_145717.jpg (83.48 KB, 下载次数: 0)
是这个嘛?
评论
为什么你的这么高级。我的没有哎...很多方法啦,linux的话 灵活度高 ddclient, 直接curl特定的地址 都能更新ip到域名。
评论
刷潘多拉/openwrt/霉林之类的呗
评论
太复杂了
F3322申请一个,网件路由器输上账号密码和地址直接OK
十分钟都用不了,一分钱都不用花
用了一年多了,非常稳定
评论
感谢。我用ros写了段脚本。。搞定了。。 电路 电子 维修 我现在把定影部分拆出来了。想换下滚,因为卡纸。但是我发现灯管挡住了。拆不了。不会拆。论坛里的高手拆解过吗? 评论 认真看,认真瞧。果然有收 电路 电子 维修 求创维42c08RD电路图 评论 电视的图纸很少见 评论 电视的图纸很少见 评论 创维的图纸你要说 版号,不然无能为力 评论 板号5800-p42ALM-0050 168P-P42CLM-01
·日本中文新闻 唐田绘里香为新剧《极恶女王》剃光头 展现演员决心
·日本中文新闻 真子小室夫妇新居引发隐私担忧
·日本中文新闻 前AKB48成员柏木由纪与搞笑艺人交往曝光
·日本学校 {日本国际学校}梅田インターナショナルスクール
·日本学校 LINE:sm287 陳雨菲、20歳、台湾からの留学生、東京に来たばかり
·日本留学生活 出售平成22年走行48000km 代步小车
·日本华人网络交流 円相場 一時1ドル=140円台まで上昇?
·日本华人网络交流 问日本华人一个问题
·日本旅游代购 富山接机
·生活百科 英国转澳大利亚转换插头
·汽车 【求助】修车遇到困难怎么办?