惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
博客园_首页
J
Java Code Geeks
Jina AI
Jina AI
B
Blog RSS Feed
量子位
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
L
LangChain Blog
Microsoft Security Blog
Microsoft Security Blog
小众软件
小众软件
博客园 - 聂微东
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog
I
InfoQ
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
爱范儿
爱范儿
Y
Y Combinator Blog
Vercel News
Vercel News
雷峰网
雷峰网

方永、南天紫雲

linux透明代理 技术的边界 停机问题通俗说明 Rust与oracle、redis集群的纠结 学习能力的增长 微信调试的原语 mac外接移动硬盘安装ArchLinux linux的死机问题 linux下全键盘操作 漂亮又好用的bspwm linux本机透明代理 ssh、mosh、autossh linux不能待机又一例 从WordPress切换到Hugo 折腾电脑开机 linux系统QQ新思路 Arch Linux的字体渲染 svn管理之submin OpenWrt自动fucking墙記錄 二维码(qrcode)名片的一些事儿 用lua nginx module搭建一个二维码(qr code)生成器 CentOS 7 安裝註記 php程序連接MySQL时只能127.0.0.1而localhost無法連接的問題 ThinkPad之FAN_ERROR、hi fi聲卡 jetty多端口部署 OpenWrt簡單暴力限網 linux中cron之PATH变量 OpenWrt的WDS無線橋接模式 再敘OpenWrt下的rtl8187無線中繼 sed之模擬tail
linuxFreeBSD下的dnspod动态域名客户端
zola · 2013-05-31 · via 方永、南天紫雲

單獨寫一篇文章出來,倒是有些沽名釣譽之嫌了。因爲之前的一篇文章已寫明了。無奈當今信息氾濫,深感往往沒有及時發現而造新輪子之痛,遂貿然用此標題。

此種客戶端,其工作過程非常簡單,無非是用URL之參數向dnspod傳遞一個更新的消息罷了。只是客戶端這邊環境複雜,不得不多判斷幾次了。

配置什麼的請參看這篇文章的2012年10月16日更新。

2013年6月8日更新:

完全脫離functions.sh,使用wget。無論是像OpenWrtdd-wrt這类busybox構建的環境,還是Ubuntu這樣的桌面發行版,還是优雅的FreeBSD,都可以暢快地奔跑。

配置文件(/etc/sddns.conf , $HOME/.sddns.conf):

### edit this variable
login_email='[email protected]'
login_password='oooooo'
main_domain='baidu.com'
sub_domain='b'       # b.baidu.com
 
### 
wanip='c.lexun.com/ip'
 
### DO NOT EDIT THIS

2013年8月2日更新

发布0.0.9版本,除了一些逻辑上的改动,主要增加了支持多个子域的功能。

配置文件如下:

login_email='[email protected]'
login_password='123'
main_domain='baidu.com'
sub_domain='a,b,c'
 
wanip='iframe.ip138.com/ic.asp'
 
### DOT NOT MODIFY THE FOLLOWING

一个子域不变, sub_domain='a' ,多个子域用逗号分隔 sub_domain='a,b,c' 。如果子域等配置参数有变化,需删除 ### DOT NOT MODIFY THE FOLLOWING 下所有内容。欢迎反馈问题。

至于动态监视内网网卡地址获得公网IP,可参考的东西如下:

获取eth0网卡IP地址:

ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'

监控网络配置变化:

ip monitor

更多的参考:DDNS 的工作原理及其在 Linux 上的实现

2013年8月7日更新

本次更新主要增加对curlwget的判断,優先用curl,若沒有安裝則使用wget

需要說明的是幾個環境中的使用:

在一般的已安裝curllinux中,需要註釋掉sddns.conf中的 addon_opt 行,即在有 addon_opt 這行前面加 # 號:

#addon_opt='--cacert /etc/ssl/cacert.pem'

而在OpenWrt中,若安裝了curl, addon_opt 這行不能被註釋掉,並且按照此選項指定的路徑增加這個文件, cacert.pem 這個文件在這裏下載。

若沒有curl,使用wget時一般情況下 addon_opt='--no-check-certificate' 這行的註釋要去掉。在OpenWrt中的話不能使用busybox的wget,需 opkg install wget 安裝一下wget。

2014年2月13日更新

  1. 不再使用wget。若系統中沒有安裝curl,會提示並退出。

  2. ip138的wanip是由於多了POST數據而導致獲致公網地址失敗,已修正。

  3. 檢測配置文件的讀權限。

2014年4月21日更新

  1. 配置文件 sddns.conf :首先检测用户目录是否存在 .sddns.conf ,若不存在,用 /etc/sddns.conf ,否则用 ${HOME}/.sddns.conf

  2. 增加 port 模式,读取当前设备的网口IP作为公网IP,并使用API的 value 参数传递。 sddns.conf 如下配置:

 port=eth0
 mode=port

wanip 在 port 模式下不生效,可在 sddns.conf 可删去。另外若 mode 指定为其它值,如 mode=value ,仍会从wan_ip取得公网地址,但会用value参数传递IP。

  1. 发布版本号: 0.0.9-2

2014年5月15日更新

  1. 發佈版本號: 0.0.9-3

  2. 修正多個子域情況下獲取record_id可能出錯的問題。

2015年5月24日更新

最近sddns无法正常更新dnspod的记录,原因如下:

  1. dnspod的api接口强制使用https协议,http访问链接会重定向到https,从而使用http协议且curl没有编译ssl协议的调用出错。

  2. dnspod的接口URL dnsapi.cn的域名证书过期,导致原来用 --cacert 的调用出错。

解决办法:

  1. 若因curl不支持https使用http的调用,需安装支持https的curl。

  2. 更新dnsapi.cn的根证书,已整理,下载链接见下方。

2015年6月25日更新

更新到0.0.9.4,改动如下:

  1. curl使用 -k 参数,忽略https证书验证的问题。所以现在本地没有根证书或dnspod的证书过期,都不会引发错误。

  2. 配置文件取消 mode ,只验证 port ,若设置了 port ,将忽略 wanip

  3. 配置文件增加 refresh 配置参数,若设置为不为零的值,那么每次执行sddns都会向dnspod的接口发起更新的请求。

  4. 配置文件与运行时缓存数据的文件分离,配置文件不再要求写权限,缓存数据文件默认为 /tmp/sddns.cache ,可在配置文件中用 runtime_file 指定。

  5. 增加curl及dnspod接口出错时的错误回显,方便查找原因。

  6. 配置文件中增加dnspod的 token 鉴权方式,token配置参数的格式为 ID,Token , 更多参见dnspod的说明。token鉴权的优先级高于用户名密码。

下載: http://files.vinoca.org/

相關文章:

OpenWrt使用dnspod的动态域名解析(ddns)功能

sddns(dnspod client for OpenWrt)使用说明