6353| 3
|
[教程] 系列教程(1)——我见,见我 |
本帖最后由 pATAq 于 2017-9-4 19:07 编辑 前言 原创文章,转载引用务必注明链接。水平有限,如有疏漏,欢迎指正。 我家妞办了个电信宽带,问装机师傅有木有公网IP,果断回答冇,失望之际看到v2ex上的前辈指点,打电话给客服说家里要装监控,需要公网IP,回复好的稍等,然后就有了。。。由于是动态IP,所以要倒腾一下。本文仅作记录过于基础的知识就不讲了,不懂的先百度再pm我。 软硬件环境:EspressoBin ARMv8开发板;ARM Archlinux 64bit操作系统(kernel 4.12.10);
如何判断自己使用的是内网IP还是外网IP呢,我们可以登录路由器管理界面看看wan口获取的IP地址和使用baidu搜索(或者ip.sb服务)获得的ip是否一致来判断。 2、动态域名服务DDNS这里有一个问题,每次拨号甚至过段时间IP地址自己会变,总不能每次都回到家去查IP吧,这里有个概念叫做DDNS,通俗理解就是假设我在全国各地出差,每到一地儿定时告诉俺对象我在哪哪哪,然后俺对象固定在家,别人就可以方便地找到她从而得知我在哪。
常见的DDNS服务莫过于花生壳,官方提供了诸多平台的客户端供下载,我们使用ARM平台,选择树莓派版就可以啦,具体使用参考官方指南,我仅用过路由器版本的,此外还短暂用过no-ip服务。 其他的就是腾讯云(DNSPod)和阿里云(万网)域名服务,使用官方的解析API。前者比较早,相关第三方客户端完善,后者万网之前出过cn域名的问题被人诟病。我有过一个腾讯的cn域名,现在是一个xin域名,非常喜欢哇,由于是万网注册的域名,所以选择阿里云解析的API实现DDNS,github上搜了一下,最初选用NewFuture的项目,添加了crontab计划任务,不定时抽风不更新域名,很忧伤(egg hurt)。
作为一个强迫症,果断去ArchWiki搜了DDNS相关页面,了解到ddclient这个客户端,支持众多国外DDNS服务,而且支持日志和systemd统一管理。 3、选择合适的ddns服务wiki页面提供了几个ddns服务,我们要选出响应速度最快的,参考我之前的文章《树莓派笔记之使用netselect选择最快Raspbian软件源》,方法很简单: [mw_shl_code=bash,true]echo 'now-dns.com www.changeip.com www.dnsdynamic.org www.duckdns.org freedns.afraid.org www.noip.com www.nsupdate.info www.dynu.com' > ddns.listsudo pacman -S netselectnetselect -vv -s 3 $(cat ddns.list)[/mw_shl_code] 【测试结果】我这里使用www.nsupdate.info访问质量尚可。 nsupdate.info免费且开源,使用dyndns2协议,支持中文,简洁大方,不错~阅读一下官方文档,大致懂了。 3.1 服务端设置:注册账号——概览——添加主机。第一个名称就会生成customname.nsupdate.info的动态域名。并且会自动生成配置文件,我们找到ddclient的,复制下来。 3.1.1 使用自定义域名以上可用使用nsupdate.info提供的以及热心网友贡献出来的域名,那么有没有可能使用自己的域名呢,这里可用参考文档Add Domains章节,由于我这里使用的阿里云解析没找到【dynamic updates (RFC 2136)】相关,所以使用CNAME解析的方法,在阿里云解析里进行设置:custom.cctv.com CNAME demo.nsupdate.info,懂我意思吧。 3.2 客户端设置:[mw_shl_code=bash,true]sudo pacman -S ddclientsudo mv /etc/ddclient/ddclient.conf /etc/ddclient/ddclient.conf.oldsudo nano /etc/ddclient/ddclient.conf #添加我们上面的内容,Ctrl+O保存,Ctrl+X退出[/mw_shl_code]记住你的密钥,由于每次访问该网页都会自动更新,所以请及时修改ddclient.conf配置文件。 此外ddclient服务推荐在网络完全准备好之后才执行,参考ArchWiki: [mw_shl_code=bash,true]# systemctl cat ddclient.service# sudo nano /usr/lib/systemd/system/ddclient.service 在[unit]字段添加[Unit]After=network-online.targetWants=network-online.target# 设置相关服务开机自启sudo systemctl enable systemd-networkd-wait-online.service[/mw_shl_code]然而我们执行sudo systemctl start ddclient及systemctl status ddclient -l命令发现启动失败,提示ddclient.service: PID file /var/run/ddclient.pid not readable (yet?) after start: No such file or directory,重新查看原来的配置示例文件,添加以下内容正常运行。 [mw_shl_code=bash,true]daemon=600 # check every 600 secondssyslog=yes # log update msgs to syslogmail=root # mail all msgs to rootmail-failure=root # mail failed update msgs to rootpid=/var/run/ddclient.pid # record PID in file.[/mw_shl_code]使用sudo systemctl restart ddclient和sudo systemctl enable ddclient使服务生效。 这时我们将路由器重新拨号,改变IP地址,稍等片刻即可成功: 以上就基本完事了,终于有一个比较稳定的服务了。最后吐槽一下垃圾aigo的U盘。 本文使用Markdown写成,为获得更好的阅读体验和正确的格式显示,请访问我的博客原文:http://www.cnblogs.com/sjqlwy/p/ddns.html |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed