Quick HOWTO : Ch19 : Dynamic DNS/zh:修订间差异
无编辑摘要 |
|||
(未显示3个用户的20个中间版本) | |||
第9行: | 第9行: | ||
= 简介<br> = | = 简介<br> = | ||
<br>在大多数家庭网络环境,通过DSL或者Cable | <br>在大多数家庭网络环境,通过DSL或者Cable Modem连接网络的主机IP地址都是通过DHCP获得并随时间经常改变,这会给DNS解析带来问题.第18章"comfigurition DNS"一节中假定的服务器地址是固定不变的。因此,产生了两大类DNS: | ||
"静态DNS"<br>当ISP为你提供固定不变的静态IP地址时,你的DNS服务器作为你的站点认证信息源。你可以把静态DNS看作是DNS的"传统"或"常规"模式。 | |||
"动态DNS"<br>当你通过DHCP从您的ISP处获得动态互联网IP地址时,你就不得不使用第三方DNS提供商来为你的站点提供DNS信息服务。<br>本章将详细讲解动态DNS的配置过程。<br> | |||
= 准备动态DNS = | = 准备动态DNS = | ||
第33行: | 第33行: | ||
3.确认你可以ping到你的默认网关. | 3.确认你可以ping到你的默认网关. | ||
4. | 4.使用ipconfig命令去设置你的web服务器的新的ip地址.(命令用法可以参考第3章). | ||
5.在你的Linux web服务器上,尝试TELNET到新设置的ip地址,端口用80.参考第4章 ch4--"simple Network Trobleshooting". | 5.在你的Linux web服务器上,尝试TELNET到新设置的ip地址,端口用80.参考第4章 ch4--"simple Network Trobleshooting". | ||
如果你完成了这几步,那么你的Apache差不多就配置好了。<br> | |||
=== 从互联网测试 === | === 从互联网测试 === | ||
第43行: | 第43行: | ||
这时你应该可以看到页面在你自己的网站上.请朋友在其他地方尝试去telnet(用80端口)你网站的ip地址. | 这时你应该可以看到页面在你自己的网站上.请朋友在其他地方尝试去telnet(用80端口)你网站的ip地址. | ||
如果80端口工作正常,再让朋友用浏览器连接你的网站看是否能看到页面.如果你的Linux服务器是在防火墙后面,那你要适当调整下你的网络结构, | 如果80端口工作正常,再让朋友用浏览器连接你的网站看是否能看到页面.如果你的Linux服务器是在防火墙后面,那你要适当调整下你的网络结构,并且配置80端口指向你的服务器.<br> 如果TELNET到80端口失败,很可能是的ISP不允许HTTP处理.设置你的web站点使用不同的TCP端口,尽量在1024以上.Apache 的httpd.conf文件可以管理这个.改变它为你要的数值,然后重启httpd. | ||
<pre>#httpd.conf listen directive, 改变 "80"为其他值 | <pre>#httpd.conf listen directive, 改变 "80"为其他值 | ||
Listen 80 | Listen 80 | ||
第49行: | 第49行: | ||
再用telnet测试这个新设置的端口.如果工作,再尝试浏览器测试.如果测试的端口是1234,要使用下面的连接:<br> | 再用telnet测试这个新设置的端口.如果工作,再尝试浏览器测试.如果测试的端口是1234,要使用下面的连接:<br> | ||
<pre>http://server-ip-address:1234</pre> | <pre>http://server-ip-address:1234</pre> | ||
注意:如果你在运行iptable, | 注意:如果你在运行iptable, 记住调整规则去匹配新端口,或者在测试期间停止ipstable.如果你能用非标准端口连接到页面,然后你记下来给你的DDNS供应商做重定向. | ||
=== 测试端口转发 === | === 测试端口转发 === | ||
第61行: | 第61行: | ||
== <br>注册DDNS == | == <br>注册DDNS == | ||
一旦你已经决定去做DDNS,你需要选择动态DNS服务类型. | |||
* | *免费动态DNS :你的网站名称将是一个DDNS提供网域的子网域.例如,如果DDNS供应商的网域是isp.net,那么你的网站将成为my-site.my-isp.net.你可以执行所有必要的步骤在你的DDNS服务提供商网站。请记住,如果公司要建立自己的企业形象,这类型的服务可能不合适.另一个不利之处是,你必须依赖DDNS供应商能提供服务否则你可能会失去你的网域.当你有了自己的域名,你会担心消失,因为你完全在DNS注册和续期的控制中. | ||
*付费的定制DNS :你可以注册你选择的域名. | |||
如果你选择要创建你自己的域名,并使用支付DDNS服务,然后你需要按照下列步骤进行: | |||
1. 在VeriSign和registerfree等公司登记你的网域(如my-site.com).<br>2. 到DDNS供应商创建一个帐户和注册你的网站(有时也称为主机),它是你的网域一部分(如www.my-site.com和mail.my-site.com).你的DDNS注册过程中会提供用户名和密码,你需要使用这些去设定DDNS客户端。<br>3. 更新你的网域信息给你的主DNS登记方(VeriSign和registerfree),告诉他们可以直接查询*.my-site.com到DDNS供应商的DNS名称服务器.<br>4. 安装DDNS客户端到你的网络服务器,运行,如果侦测到的ip地址的变化,它会更新DDNS供应商的DNS服务器和目前DHCP的IP地址. | |||
注意:和使用静态IP和周期的DNS服务相比,你应该对你的家庭网站有思想准备:会比较慢. | |||
== 安装DDNS客户端到你的服务器 == | == 安装DDNS客户端到你的服务器 == | ||
所有的DDNS服务供应商需要在你的web服务器上有个DDNS的客户端,定期升级ip地址信息给你供应商DDNS的记录.用的最多的软件是DDclient,它是RPM格式.<br> | |||
= 动态DNS 和NAT 路由器/防火墙 = | = 动态DNS 和NAT 路由器/防火墙 = | ||
在第2章讨论中 "Introduction to Networking,"为了节约有限的IP地址的数量,供互联网使用目的,大多数家用路由器/防火墙使用网络地址转换(NAT)去映射一个单节点,公开的, DHCP获得的IP地址到你网络中的私有IP地址. | |||
NAT运作会欺骗一些DDNS客户端软件.在这些情况下,这些软件只报告Linux box的NIC接口的真实IP地址.如果Linux box 是被保护在NAT路由器/防火墙后面,然后NIC会报告给DDNS的供应商一个私有的IP地址,这个是不可以直接通过互联网的.该报告的值是无效的. | |||
一些DDNS供应商使用更智能的客户,如ddclient ,可配置让DDNS提供商从数据流中纪录公用IP地址.一旦这样做,您必须还要配置您的路由器/防火墙做端口转发,使所有以该路由器/防火墙IP地址为目的地的HTTP流量,通过NAT和转发给您家庭网络中的一个服务器。如果您的防火墙是基于Linux的,在第14章有范例,"Linux Firewalls Using iptables," 会有所帮助。许多基于Web的小型办公室/家庭办公室(SOHO)防火墙有很容易的界面配置端口转发,请参阅您的硬件制造商的手册有关如何执行此操作.<br> | |||
= DDNS客户端软件- SOHO 路由器/防火墙 = | = DDNS客户端软件- SOHO 路由器/防火墙 = | ||
大部分较新的 SOHO路由器都已经内建一个或多个动态DNS供应商列表.DDNS的页面配置菜单通常有服务供应商名,用户名和密码.有了这个.你的服务器就不用另外安装软件了.<br><br> | |||
= DDNS客户端软件- Linux DDclient = | = DDNS客户端软件- Linux DDclient = | ||
还有一个常用的客户端是DDclient,它可以克服NAT的局限性,可有效的确定最新的ip地址信息。类似RedHat和Fedora 这些Linux软件,DDclient也是RPM的格式.(如果你需要新版本的RPMs.参考第六章ch6--"install Linux Software")你也可以从DDNS供应商那里下载,或者在rpmfind.net上面查找.RPM的文件名通常是ddclient加版本号,比如: ddclient-3.6.3-1.noarch.rpm.<br><br> | |||
== /etc/ddclient.conf 文件 == | == /etc/ddclient.conf 文件 == | ||
ddclient.conf文件通常安装完全解释,并为最常用的DDNS供应商提供了配置的例子. | |||
最重要的基本参数设定如下: | |||
* | *Username:你的DDNS帐户的登录名称<br> *Password:DDNS帐户的密码<br> *Use:检定IP地址给DDNS服务器的方式 | ||
一些重要的DDNS供应商的参数 | |||
*Server | *Server 服务器:DDNS供应商的主要DNS服务器名称<br> *Protocol 协议:DDNS客户端与ddns服务器沟通的方式<br> *Your domain你的网域:你的Web服务器属于的域 | ||
你可以使用ddclient命令,以确定在ddclient.conf文件中要使用的最佳参数.在这个例子中,只有use=web选项提供了有效的Internet IP地址,并应被视为第一选择: | |||
<pre>[root@bigboy tmp]# ddclient -daemon=0 -query | <pre>[root@bigboy tmp]# ddclient -daemon=0 -query | ||
use=if, if=lo address is 127.0.0.1 | use=if, if=lo address is 127.0.0.1 | ||
第114行: | 第112行: | ||
[root@bigboy tmp]# | [root@bigboy tmp]# | ||
</pre> | </pre> | ||
举一个配置列子。这个例子指定了一个用户名为my-account-login-name和密码是my-account-password,使用dyndns DDNS服务提供商的设置,要跟踪的网站命名为mysite-example.dnsalias.com 。 | |||
一般参数段 | |||
login=my-account-login-name<br>password=my-account-password | login=my-account-login-name<br> password=my-account-password | ||
DDNS供应商参数段 | |||
server=members.dyndns.org, \<br>protocol=dyndns2 \<br>mysite-example.dnsalias.com | server=members.dyndns.org, \<br>protocol=dyndns2 \<br>mysite-example.dnsalias.com | ||
您可以添加下列其中一种在一般参数段的上方,以设置确定IP地址的方法: | |||
* | *查询一个众所周知的互联网服务器: Web方法的是发送查询到二个服务器dyndns.org和dnspark,以确定公共互联网IP地址.这种方法是最简单,因为它要求没有进一步的消息.但是会受到NAT的限制. | ||
use=web | use=web<br> | ||
* | *使用精确的服务器IP地址:您也可以使用这个选项,ddclient Web服务器的网卡接口的ip地址.如果服务器直接连接到互联网,而不是通过的NAT的话,这个选项很有用 | ||
use=if, if=eth0 | use=if, if=eth0 | ||
* | *登录到你的SOHO防火墙取得信息: ddclient.conf文件有一个各种防火墙供应商的清单.如果您的型号没有列出,您可以创建自己的参数在ddclient README 文件.这是的很好的方案,解决NAT环境下的问题. | ||
修改完成配置文件后,必须重新启动ddclient. | |||
== 怎样设置 DDclient 启动 == | == 怎样设置 DDclient 启动 == | ||
第153行: | 第151行: | ||
<pre>[root@bigboy tmp]# pgrep ddclient | <pre>[root@bigboy tmp]# pgrep ddclient | ||
</pre> | </pre> | ||
== | == 查找 DDclient 帮助 == | ||
DDclient 的read-me文件和 ddclient.conf 文件是定制配置和问题解决的一种很好的资源.你可以使用 DDclient RPMs 或者 locate 命令行查找read-me文件. | |||
使用 rpm 命令得到 DDclient 文件列表: | |||
<pre>[root@bigboy tmp]# rpm -ql ddclient | <pre>[root@bigboy tmp]# rpm -ql ddclient | ||
... | ... | ||
第163行: | 第161行: | ||
... | ... | ||
[root@bigboy tmp]# | [root@bigboy tmp]# | ||
</pre> | </pre> | ||
也可以替代使用 locate 命令去查找 DDclient 文件: | |||
<pre>[root@bigboy tmp]# locate ddclient | grep READ | <pre>[root@bigboy tmp]# locate ddclient | grep READ | ||
/usr/doc/ddclient-3.6.3/README | /usr/doc/ddclient-3.6.3/README | ||
/usr/doc/ddclient-3.6.3/README.cisco | /usr/doc/ddclient-3.6.3/README.cisco | ||
[root@bigboy tmp]# | [root@bigboy tmp]# | ||
</pre> | </pre> | ||
如果命令不起作用,尝试升级你的locate数据库,使用locate -u 命令: | |||
<pre>[root@bigboy tmp]# locate -u </pre> | <pre>[root@bigboy tmp]# locate -u </pre> | ||
<br> | <br> | ||
= 测试你的动态DNS = | = 测试你的动态DNS = | ||
你可以通过以下方式测试你的动态DNS: | |||
* | *查询你DNS供应商的状态页面,确认匹配你站点的ip地址和你的路由器/防火墙的公网ip地址一样.<br> * 在Linux命令提示符下使用 "host www.my-site.com" 命令去确认能不能得到反应.如果失败,你可以看到下面的错误信息: | ||
<pre>[root@bigboy tmp]# host www.my-site.com | <pre>[root@bigboy tmp]# host www.my-site.com | ||
Server: 127.0.0.1Address: 127.0.0.1#53 | Server: 127.0.0.1Address: 127.0.0.1#53 | ||
**server can't find www.my-site.com: NXDOMAIN | **server can't find www.my-site.com: NXDOMAIN | ||
</pre> | </pre> | ||
这个错误信息是因为你的域名没有在互联网上传递.你可强制NS直接到域名服务器以确认所有的事情是对的.下面的列子就是查询miniDNS域名服务器 ns1.minidns.net: | |||
<pre>[root@bigboy tmp]# host www.my-site.com ns1.minidns.net | <pre>[root@bigboy tmp]# host www.my-site.com ns1.minidns.net | ||
www.my-site.com has address 97.158.253.26 | www.my-site.com has address 97.158.253.26 | ||
[root@bigboy tmp]# | [root@bigboy tmp]# | ||
</pre> | </pre> | ||
= 结尾<br> = | = 结尾<br> = | ||
记住动态DNS工作方式,但它通常是不可靠的,像住宅级宽带数据线路一样,没有监管,维护或管理,而商务线路会更好。但是这是一个很好的起点,可以帮助您熟悉web托管服务,如果您的网站变得繁忙和有更重要的财务数据,你应该考虑数据中心(IDC),可以远离咖啡和洗衣机,人为断电. | |||
[[Category:服务器]] | |||
[[Category:Quick_HOWTO]] |
2010年7月23日 (五) 20:26的最新版本
文章出处: |
{{#if: | {{{2}}} | http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch19_:_Dynamic_DNS }} |
点击翻译: |
English {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/af | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|Afrikaans| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/af|Afrikaans]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/ar | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|العربية| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/ar|العربية]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/az | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|azərbaycanca| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/az|azərbaycanca]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/bcc | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|جهلسری بلوچی| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/bcc|جهلسری بلوچی]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/bg | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|български| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/bg|български]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/br | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|brezhoneg| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/br|brezhoneg]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/ca | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|català| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/ca|català]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/cs | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|čeština| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/cs|čeština]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/de | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|Deutsch| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/de|Deutsch]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/el | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|Ελληνικά| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/el|Ελληνικά]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/es | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|español| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/es|español]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/fa | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|فارسی| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/fa|فارسی]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/fi | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|suomi| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/fi|suomi]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/fr | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|français| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/fr|français]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/gu | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|ગુજરાતી| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/gu|ગુજરાતી]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/he | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|עברית| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/he|עברית]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/hu | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|magyar| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/hu|magyar]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/id | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|Bahasa Indonesia| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/id|Bahasa Indonesia]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/it | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|italiano| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/it|italiano]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/ja | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|日本語| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/ja|日本語]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/ko | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|한국어| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/ko|한국어]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/ksh | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|Ripoarisch| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/ksh|Ripoarisch]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/mr | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|मराठी| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/mr|मराठी]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/ms | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|Bahasa Melayu| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/ms|Bahasa Melayu]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/nl | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|Nederlands| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/nl|Nederlands]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/no | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|norsk| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/no|norsk]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/oc | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|occitan| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/oc|occitan]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/pl | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|polski| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/pl|polski]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/pt | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|português| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/pt|português]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/ro | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|română| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/ro|română]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/ru | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|русский| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/ru|русский]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/si | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|සිංහල| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/si|සිංහල]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/sq | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|shqip| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/sq|shqip]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/sr | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|српски / srpski| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/sr|српски / srpski]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/sv | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|svenska| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/sv|svenska]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/th | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|ไทย| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/th|ไทย]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/tr | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|Türkçe| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/tr|Türkçe]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/vi | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|Tiếng Việt| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/vi|Tiếng Việt]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/yue | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|粵語| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/yue|粵語]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/zh | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|中文| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/zh|中文]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/zh-hans | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|中文(简体)| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/zh-hans|中文(简体)]]}}|}} {{#ifexist: {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS | Quick_HOWTO_:_Ch19_:_Dynamic_DNS | {{#if: | :}}Quick HOWTO : Ch19 : Dynamic DNS/zh}}/zh-hant | • {{#if: Quick_HOWTO_:_Ch19_:_Dynamic_DNS|中文(繁體)| [[::Quick HOWTO : Ch19 : Dynamic DNS/zh/zh-hant|中文(繁體)]]}}|}} |
{{#ifeq:Quick_HOWTO_:_Ch19_:_Dynamic_DNS|:Quick HOWTO : Ch19 : Dynamic DNS/zh|请不要直接编辑翻译本页,本页将定期与来源同步。}} |
{{#ifexist: :Quick HOWTO : Ch19 : Dynamic DNS/zh/zh | | {{#ifexist: Quick HOWTO : Ch19 : Dynamic DNS/zh/zh | | {{#ifeq: {{#titleparts:Quick HOWTO : Ch19 : Dynamic DNS/zh|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:Quick HOWTO : Ch19 : Dynamic DNS/zh|1|-1|}} | zh | | }}
简介
在大多数家庭网络环境,通过DSL或者Cable Modem连接网络的主机IP地址都是通过DHCP获得并随时间经常改变,这会给DNS解析带来问题.第18章"comfigurition DNS"一节中假定的服务器地址是固定不变的。因此,产生了两大类DNS:
"静态DNS"
当ISP为你提供固定不变的静态IP地址时,你的DNS服务器作为你的站点认证信息源。你可以把静态DNS看作是DNS的"传统"或"常规"模式。
"动态DNS"
当你通过DHCP从您的ISP处获得动态互联网IP地址时,你就不得不使用第三方DNS提供商来为你的站点提供DNS信息服务。
本章将详细讲解动态DNS的配置过程。
准备动态DNS
和DSL不同的是,大多数的cable modem供应商(类似有线宽频)不允许你在家开办主机站点,他们阻止入站的HTTP(TCP 端口80)和SMTP 邮件(TCP端口25)而允许其他的TCP通讯.许多动态DNS(DDNS)供应商意识到这点并提供了自动重定向让访问你主机的web客户通过一个不同的TCP端口.尽管这样也工作的很好,但是还是不方便.看起来很诱人的虚拟主机服务却要增加每月$10的费用,并且很多搜索引擎都不索引重定向的页面.
为你的web站点测试ISP(互联网供应商)的连通性
第一件事就是你要知道你的ISP是用DSL还是cable modem,最简单的方法就是打电话问,但是有时候答案是yes但是他们却说no.这时你就要自己做些测试.
设置
在测试开始之前你需要做一些基本调试.
1.在你的Linux web 服务器上配置并且启动Apache,参考第20章 ch20--"The Apache Web Server".
2.直接连接你的linux服务器到cable或者DSL的调制解调器,配置以太网卡的DHCP参数,参考第3章 ch3--"Linux Networking".
3.确认你可以ping到你的默认网关.
4.使用ipconfig命令去设置你的web服务器的新的ip地址.(命令用法可以参考第3章).
5.在你的Linux web服务器上,尝试TELNET到新设置的ip地址,端口用80.参考第4章 ch4--"simple Network Trobleshooting".
如果你完成了这几步,那么你的Apache差不多就配置好了。
从互联网测试
这时你应该可以看到页面在你自己的网站上.请朋友在其他地方尝试去telnet(用80端口)你网站的ip地址.
如果80端口工作正常,再让朋友用浏览器连接你的网站看是否能看到页面.如果你的Linux服务器是在防火墙后面,那你要适当调整下你的网络结构,并且配置80端口指向你的服务器.
如果TELNET到80端口失败,很可能是的ISP不允许HTTP处理.设置你的web站点使用不同的TCP端口,尽量在1024以上.Apache 的httpd.conf文件可以管理这个.改变它为你要的数值,然后重启httpd.
#httpd.conf listen directive, 改变 "80"为其他值 Listen 80
再用telnet测试这个新设置的端口.如果工作,再尝试浏览器测试.如果测试的端口是1234,要使用下面的连接:
http://server-ip-address:1234
注意:如果你在运行iptable, 记住调整规则去匹配新端口,或者在测试期间停止ipstable.如果你能用非标准端口连接到页面,然后你记下来给你的DDNS供应商做重定向.
测试端口转发
如果你的Linux 服务器是在防火墙的后面,应该适当调整你的网络结构,让Apache运行在端口80,然后从互联网测试端口转发,从非标准
端口到80端口.curl-疑难排解工具的一个特点是他允许你下载页面的HTML的代码到你屏幕上.你应该靠你web服务器的日志能确定你的路由器或者防火墙的外部地址以及curl的命令发出请求到DynDNS.org的ip信息服务器.在这个情况里你只需要关于的ip的资料,用grep命令就可以得到这个部分.在这个范例中,ip地址是24.4.97.110.
[root@bigboy tmp]# curl -s http://checkip.dyndns.org/ | grep -i address Current IP Address: 24.4.97.110[root@bigboy tmp]#
注册DDNS
一旦你已经决定去做DDNS,你需要选择动态DNS服务类型.
- 免费动态DNS :你的网站名称将是一个DDNS提供网域的子网域.例如,如果DDNS供应商的网域是isp.net,那么你的网站将成为my-site.my-isp.net.你可以执行所有必要的步骤在你的DDNS服务提供商网站。请记住,如果公司要建立自己的企业形象,这类型的服务可能不合适.另一个不利之处是,你必须依赖DDNS供应商能提供服务否则你可能会失去你的网域.当你有了自己的域名,你会担心消失,因为你完全在DNS注册和续期的控制中.
- 付费的定制DNS :你可以注册你选择的域名.
如果你选择要创建你自己的域名,并使用支付DDNS服务,然后你需要按照下列步骤进行:
1. 在VeriSign和registerfree等公司登记你的网域(如my-site.com).
2. 到DDNS供应商创建一个帐户和注册你的网站(有时也称为主机),它是你的网域一部分(如www.my-site.com和mail.my-site.com).你的DDNS注册过程中会提供用户名和密码,你需要使用这些去设定DDNS客户端。
3. 更新你的网域信息给你的主DNS登记方(VeriSign和registerfree),告诉他们可以直接查询*.my-site.com到DDNS供应商的DNS名称服务器.
4. 安装DDNS客户端到你的网络服务器,运行,如果侦测到的ip地址的变化,它会更新DDNS供应商的DNS服务器和目前DHCP的IP地址.
注意:和使用静态IP和周期的DNS服务相比,你应该对你的家庭网站有思想准备:会比较慢.
安装DDNS客户端到你的服务器
所有的DDNS服务供应商需要在你的web服务器上有个DDNS的客户端,定期升级ip地址信息给你供应商DDNS的记录.用的最多的软件是DDclient,它是RPM格式.
动态DNS 和NAT 路由器/防火墙
在第2章讨论中 "Introduction to Networking,"为了节约有限的IP地址的数量,供互联网使用目的,大多数家用路由器/防火墙使用网络地址转换(NAT)去映射一个单节点,公开的, DHCP获得的IP地址到你网络中的私有IP地址.
NAT运作会欺骗一些DDNS客户端软件.在这些情况下,这些软件只报告Linux box的NIC接口的真实IP地址.如果Linux box 是被保护在NAT路由器/防火墙后面,然后NIC会报告给DDNS的供应商一个私有的IP地址,这个是不可以直接通过互联网的.该报告的值是无效的.
一些DDNS供应商使用更智能的客户,如ddclient ,可配置让DDNS提供商从数据流中纪录公用IP地址.一旦这样做,您必须还要配置您的路由器/防火墙做端口转发,使所有以该路由器/防火墙IP地址为目的地的HTTP流量,通过NAT和转发给您家庭网络中的一个服务器。如果您的防火墙是基于Linux的,在第14章有范例,"Linux Firewalls Using iptables," 会有所帮助。许多基于Web的小型办公室/家庭办公室(SOHO)防火墙有很容易的界面配置端口转发,请参阅您的硬件制造商的手册有关如何执行此操作.
DDNS客户端软件- SOHO 路由器/防火墙
大部分较新的 SOHO路由器都已经内建一个或多个动态DNS供应商列表.DDNS的页面配置菜单通常有服务供应商名,用户名和密码.有了这个.你的服务器就不用另外安装软件了.
DDNS客户端软件- Linux DDclient
还有一个常用的客户端是DDclient,它可以克服NAT的局限性,可有效的确定最新的ip地址信息。类似RedHat和Fedora 这些Linux软件,DDclient也是RPM的格式.(如果你需要新版本的RPMs.参考第六章ch6--"install Linux Software")你也可以从DDNS供应商那里下载,或者在rpmfind.net上面查找.RPM的文件名通常是ddclient加版本号,比如: ddclient-3.6.3-1.noarch.rpm.
/etc/ddclient.conf 文件
ddclient.conf文件通常安装完全解释,并为最常用的DDNS供应商提供了配置的例子.
最重要的基本参数设定如下:
- Username:你的DDNS帐户的登录名称
*Password:DDNS帐户的密码
*Use:检定IP地址给DDNS服务器的方式
一些重要的DDNS供应商的参数
- Server 服务器:DDNS供应商的主要DNS服务器名称
*Protocol 协议:DDNS客户端与ddns服务器沟通的方式
*Your domain你的网域:你的Web服务器属于的域
你可以使用ddclient命令,以确定在ddclient.conf文件中要使用的最佳参数.在这个例子中,只有use=web选项提供了有效的Internet IP地址,并应被视为第一选择:
[root@bigboy tmp]# ddclient -daemon=0 -query use=if, if=lo address is 127.0.0.1 use=if, if=wlan0 address is 192.168.1.100 use=web, web=dyndns address is 97.158.253.26 [root@bigboy tmp]#
举一个配置列子。这个例子指定了一个用户名为my-account-login-name和密码是my-account-password,使用dyndns DDNS服务提供商的设置,要跟踪的网站命名为mysite-example.dnsalias.com 。
一般参数段
login=my-account-login-name
password=my-account-password
DDNS供应商参数段
server=members.dyndns.org, \
protocol=dyndns2 \
mysite-example.dnsalias.com
您可以添加下列其中一种在一般参数段的上方,以设置确定IP地址的方法:
- 查询一个众所周知的互联网服务器: Web方法的是发送查询到二个服务器dyndns.org和dnspark,以确定公共互联网IP地址.这种方法是最简单,因为它要求没有进一步的消息.但是会受到NAT的限制.
use=web
- 使用精确的服务器IP地址:您也可以使用这个选项,ddclient Web服务器的网卡接口的ip地址.如果服务器直接连接到互联网,而不是通过的NAT的话,这个选项很有用
use=if, if=eth0
- 登录到你的SOHO防火墙取得信息: ddclient.conf文件有一个各种防火墙供应商的清单.如果您的型号没有列出,您可以创建自己的参数在ddclient README 文件.这是的很好的方案,解决NAT环境下的问题.
修改完成配置文件后,必须重新启动ddclient.
怎样设置 DDclient 启动
你可以在boot的时候用chkconfig命令配置 DDclient启动:
[root@bigboy tmp]# chkconfig ddclient on
你能够在boot后用下面的参数启动,停止,重启DDclient:
[root@bigboy tmp]# service ddclient start [root@bigboy tmp]# service ddclient stop [root@bigboy tmp]# service ddclient restart
记住,每次在你更改了ddclient.conf文件之后要重启ddclient进程,这样才会取得效果.
你可以在任何时候测试,使用pgrep的命令,取得简洁的进程ID
[root@bigboy tmp]# pgrep ddclient
查找 DDclient 帮助
DDclient 的read-me文件和 ddclient.conf 文件是定制配置和问题解决的一种很好的资源.你可以使用 DDclient RPMs 或者 locate 命令行查找read-me文件.
使用 rpm 命令得到 DDclient 文件列表:
[root@bigboy tmp]# rpm -ql ddclient ... /usr/doc/ddclient-3.6.3/README ... [root@bigboy tmp]#
也可以替代使用 locate 命令去查找 DDclient 文件:
[root@bigboy tmp]# locate ddclient | grep READ /usr/doc/ddclient-3.6.3/README /usr/doc/ddclient-3.6.3/README.cisco [root@bigboy tmp]#
如果命令不起作用,尝试升级你的locate数据库,使用locate -u 命令:
[root@bigboy tmp]# locate -u
测试你的动态DNS
你可以通过以下方式测试你的动态DNS:
- 查询你DNS供应商的状态页面,确认匹配你站点的ip地址和你的路由器/防火墙的公网ip地址一样.
* 在Linux命令提示符下使用 "host www.my-site.com" 命令去确认能不能得到反应.如果失败,你可以看到下面的错误信息:
[root@bigboy tmp]# host www.my-site.com Server: 127.0.0.1Address: 127.0.0.1#53 **server can't find www.my-site.com: NXDOMAIN
这个错误信息是因为你的域名没有在互联网上传递.你可强制NS直接到域名服务器以确认所有的事情是对的.下面的列子就是查询miniDNS域名服务器 ns1.minidns.net:
[root@bigboy tmp]# host www.my-site.com ns1.minidns.net www.my-site.com has address 97.158.253.26 [root@bigboy tmp]#
结尾
记住动态DNS工作方式,但它通常是不可靠的,像住宅级宽带数据线路一样,没有监管,维护或管理,而商务线路会更好。但是这是一个很好的起点,可以帮助您熟悉web托管服务,如果您的网站变得繁忙和有更重要的财务数据,你应该考虑数据中心(IDC),可以远离咖啡和洗衣机,人为断电.