家里的ip是内网地址,adsl路由器上的公网ip是变化的,所以有花生壳之类的程序来提供动态dns解析功能(它提供一个二级域名,同时硬件路由器在公网ip变动之后向它的dns解析器更新,同时硬件路由器应该实现公网ip到内网ip的NAT映射),但它是收费的.
域名提供商,如万网,如www.godaddy.com,它可以提供顶级域名,如quqi99.com,它负责将quqi99.com这条记录插到.com根域名服务器中,所以一般都是收费的,并且如果是在中国注册域名的,还要求备案,否则,站点提供商不会用未备案的域名在apache中配置virtual host。
dnspod.cn则是一个DNS服务提供商,可以用来解析域名提供商提供的顶级域名,虽然域名提供商一般也会提供dns解析服务,但域名提供商提供dns解析服务 往往不够稳定由于服务的不够快并且域名提供商一般也提供不了免费的支持多线解析,所以dns服务提供商实现了域名与解析的分离,还是有很大的存在价值的。但是dnspod.cn却不能提供如quqi99.dnspod.cn的免费二级域名。考虑到伟大的长城防火墙一般对国外的dns服务器有干扰,所以一般地采用国外的域名+国内的dns解析,这样,需要在godaddy的配置界面配置Nameservers指向dnspod提供的ns记录 f1g1ns1.dnspod.net, 方法见:http://jingyan.baidu.com/article/39810a23c5a3a3b636fda699.html
ddclient则是一个客户端软件,它可以获取公网ip的变化,然后通过dyndns2协议去更新支持dyndns2协议的dns解析器。
dnspod.cn除了不提供免费的二级域名,也不支持dyndns2协议,但它提供了api可以通过编程去更新dns记录中的公网ip,程序见:http://blog.sweetfree.net/article/RaspberryPI/1106.html
dnsexit.com是一个国外的类似于dnspod.cn的dns服务提供商,但是它提供了如quqi99.publicvm.com之类的免费二级域名,虽然不支持dyndns2协议,但它它提供了一个用perl写的ipUpdate程序实现了类似ddclient的功能,ipUpdate程序可运行在linux主机上,这样硬件路由器上同样得做端口映射,见:http://www.dnsexit.com/Direct.sv?cmd=userIpClients
因为本人喜欢免费,所以经过一系列的选型,最终选择了dnsexit.com提供的免费的动态dns服务:
1,上dnsexit.com网站申请免费二级域名,如quqi99.publicvm.com
2,在内网机器安装ipUpdate程序用于向二级域名记录更新公网ip地址,方法见:http://www.dnsexit.com/Direct.sv?cmd=userIpClients
使用nslookup -vc quqi99.publicvm.com 8.8.8.8命令可以验证公网ip已经变化了。
3,在硬件路由器上打开端口映射功能(对于我家中的TP-LINK路由器,对应的管理菜单路径是'转发规则‘),映射如端口22
4,这样,在广域网的其他机器就可以通过ssh -X user@quqi99.publicvm.com来访问这个家里的内网机器了。
注:dlinkddns.com与myqnapcloud.com也都提供免费的ddns服务, 把UPnP服务打开效果更佳, vpn和UPnP结合后这样vpn服务也不一定非要运行在网关上了运行在内网的一台机器上也行。
附录一,使用DNS服务提供商dnspod.cn提供的免费域名解析功能
1)先在域名服务商如godaddy.com里新建顶级域名,如quqi99.com, 注意前面不能添加www. 这可能需要收费。
2)添加两个子域名,即主机记录:
quqi99.com, 主机记录填@
desktop.quqi99.com, 主机记录填desktop
记录类型填A, A记录是指直接的域名和IPv4 IP的映射对,
AAAA是指域名和IPv6 IP的映射对,
PTR是指根据IP查域名的反身域名解析,有些邮件邮服器为了反垃圾邮件要求必须提供PTR记录
CNAME是指一个域名指向另一个域名再由另一个域名提供IP地址,
NS记录指域名服务器记录,dnspod已经为我们添加了两条默认的ns记录:
f1g1ns1.dnspod.net
f1g1ns2.dnspod.net
IP随便填呆会我们会通过程序调用dnspod提供的rest api动态更新这个IP, TTL默认为600秒.
3)路由器记得配置端口映射
4)想要用dnspod提供的dns来解析godaddy域名,那需要在godaddy的配置界面配置Nameservers指向dnspod提供的ns记录 f1g1ns1.dnspod.net, 方法见:http://jingyan.baidu.com/article/39810a23c5a3a3b636fda699.html
5)使用dnspod API动态更新dns的外网IP的程序见: http://blog.sweetfree.net/article/RaspberryPI/1106.html
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。