一、动态域名的实现
- 格式:doc
- 大小:30.50 KB
- 文档页数:3
在互联网的世界中,域名系统(Domain Name System,简称DNS)起到了至关重要的作用。
通过将用户输入的域名解析为对应的IP地址,DNS使得互联网用户能够方便地访问和使用各种网络资源。
除此之外,DNS还可以用于反向代理配置,为网络应用提供更为灵活和高效的服务。
一、DNS基础知识要了解如何利用域名系统进行反向代理配置,首先需要了解DNS的一些基础知识。
DNS由一个或多个域名服务器组成,每个域名服务器负责存储和管理一部分域名及其对应的IP地址。
当用户输入一个域名时,域名系统会根据域名的层次结构进行逐级的解析,最终得到对应的IP地址。
二、反向代理的概念和目的反向代理(Reverse Proxy)是一种网络服务的架构模式,它将客户端的请求转发给多个后端服务器,并将后端服务器的响应返回给客户端。
反向代理可以隐藏真实的后端服务器,提供负载均衡、加密传输等功能,从而提高系统的安全性和性能。
三、利用DNS进行反向代理配置的方法1. 解析域名到反向代理服务器在反向代理配置中,首先需要将域名解析到反向代理服务器的IP地址。
用户通过输入域名,DNS将其解析为反向代理服务器的IP地址,进而将请求转发给反向代理服务器。
2. 配置反向代理服务器反向代理服务器负责接收客户端请求,并将请求转发给后端服务器。
在配置反向代理服务器时,可以根据域名来配置不同的转发规则,实现对不同域名下的请求的转发设置。
3. 负载均衡的配置在反向代理配置中,负载均衡是一项重要的功能。
通过在反向代理服务器上配置不同的后端服务器,可以实现对客户端请求的分发,从而减轻单个服务器的压力。
常见的负载均衡算法有轮询、加权轮询、最少连接数等。
4. SSL加密传输的配置反向代理服务器可以为客户端和后端服务器之间的通信提供SSL加密传输。
通过在反向代理服务器上配置SSL证书,可以实现对传输过程中的数据进行加密,提高系统的安全性。
5. 动态域名解析动态域名解析是一种可以动态改变域名解析结果的技术。
ddnsto 原理
DDNSTO是一种基于UDP穿透技术的内网穿透工具,可以帮助用
户在不同网络环境下实现内网穿透。
其原理主要包括以下几个方面:
1. UDP穿透,DDNSTO利用UDP协议进行通信,通过在UDP包中
封装数据,可以实现穿透NAT,将内网的UDP数据包发送到公网上,从而实现内网穿透。
2. 服务端和客户端,DDNSTO包括服务端和客户端两部分。
服
务端部署在公网服务器上,客户端部署在内网主机上。
当客户端需
要对外提供服务时,会向服务端注册,并通过服务端分配的域名和
端口进行通信,从而实现内网穿透。
3. 动态域名解析,DDNSTO使用动态域名解析技术,通过向DDNSTO服务器注册域名,并将域名与客户端的公网IP地址进行绑定,实现动态IP地址的映射,使得内网主机可以通过域名进行访问。
4. 心跳机制,DDNSTO客户端和服务端之间通过心跳机制保持
连接,确保在网络环境发生变化时能够及时调整内网穿透的配置,
保证通信的稳定性。
总的来说,DDNSTO利用UDP穿透技术和动态域名解析,通过服务端和客户端之间的通信和心跳机制,实现内网穿透并提供稳定的访问服务。
这样,用户就可以在不同网络环境下方便地实现内网穿透,访问内网资源。
通过阿⾥云实现动态域名解析DDNS前⾔该脚本的代码⼤部分是参考⾃阿⾥云的官⽅帮助⽂档。
1, 脚本语⾔使⽤的是python, 我个⼈只是了解python,没有太深⼊的知识功底2, 脚本代码我会尽量详细地添加注释说明,有问题欢迎留⾔交流,但回复可能不会那么及时。
前置条件1、域名是在阿⾥云购买的(我的域名本⾝就是阿⾥云买的,其他的域名我没有测试过)2、地址必须是公⽹地址,不然加了解析也没有⽤(这个不⽤多加解释了)安装阿⾥云SDK需要安装三个SDK库,⼀个是阿⾥云核⼼SDK库,⼀个是阿⾥云域名SDK库,⼀个是DNS库阿⾥云核⼼SDK库:pip install aliyun-python-sdk-core阿⾥云域名SDK库:pip install aliyun-python-sdk-domain阿⾥云DNSSDK库:pip install aliyun-python-sdk-alidns说明:1, ⽬前官⽅⽂档上说的是需要安装前两个SDK库,但我实测确定还需要第三个库!2, 如果你使⽤的是ubuntu系统,并且同时有python2/python3和pip2/pip3,安装时前⾯的命令请写清楚版本,特别是pip。
我的系统pip默认是2.x,使⽤pip install xxx 命令安装的库⽆效,使⽤ pip3 install xxx 才成功(如果知道如何随意切换python和pip版本,请留⾔告知,感谢)。
脚本的具体功能1, 获取外⽹ip地址2,获取域名解析记录3,新增域名解析记录3,更新域名解析记录4,删除域名解析记录(并不建议将该功能添加在实际脚本中)5,批量操作,如果记录不存在则添加记录,存在则更新记录脚本代码#!/usr/bin/env python#coding=utf-8# 加载核⼼SDKfrom aliyunsdkcore.client import AcsClientfrom aliyunsdkcore.acs_exception.exceptions import ClientExceptionfrom aliyunsdkcore.acs_exception.exceptions import ServerException# 加载获取、新增、更新、删除接⼝from aliyunsdkalidns.request.v20150109 import DescribeSubDomainRecordsRequest, AddDomainRecordRequest, UpdateDomainRecordRequest, DeleteDomainRecordRequest# 加载内置模块import json,urllib# AccessKey 和 Secret 建议使⽤ RAM ⼦账户的 KEY 和 SECRET 增加安全性ID = 'xxxxxxx'SECRET = 'xxxxxx'# 地区节点可选地区取决于你的阿⾥云帐号等级,普通⽤户只有四个,分别是杭州、上海、深圳、河北,具体参考官⽹APIregionId = 'cn-hangzhou'# 配置认证信息client = AcsClient(ID, SECRET, regionId)# 设置主域名DomainName = ''# ⼦域名列表列表参数可根据实际需求增加或减少值SubDomainList = ['a', 'b', 'c']# 获取外⽹IP 三个地址返回的ip地址格式各不相同,3322 的是最纯净的格式,备选1为 json格式备选2 为curl⽅式获取两个备选地址都需要对获取值作进⼀步处理才能使⽤def getIp():# 备选地址: 1, /cityjson?ie=utf-8 2,curl -L tool.lu/ipwith urllib.request.urlopen('/dyndns/getip') as response:html = response.read()ip = str(html, encoding='utf-8').replace("\n", "")return ip# 查询记录def getDomainInfo(SubDomain):request = DescribeSubDomainRecordsRequest.DescribeSubDomainRecordsRequest()request.set_accept_format('json')# 设置要查询的记录类型为 A记录官⽹⽀持A / CNAME / MX / AAAA / TXT / NS / SRV / CAA / URL隐性(显性)转发如果有需要可将该值配置为参数传⼊request.set_Type("A")# 指定查记的域名格式为 ''request.set_SubDomain(SubDomain)response = client.do_action_with_exception(request)response = str(response, encoding='utf-8')# 将获取到的记录转换成json对象并返回return json.loads(response)# 新增记录 (默认都设置为A记录,通过配置set_Type可设置为其他记录)def addDomainRecord(client,value,rr,domainname):request = AddDomainRecordRequest.AddDomainRecordRequest()request.set_accept_format('json')# request.set_Priority('1') # MX 记录时的必选参数request.set_TTL('600') # 可选值的范围取决于你的阿⾥云账户等级,免费版为 600 - 86400 单位为秒request.set_Value(value) # 新增的 ip 地址request.set_Type('A') # 记录类型request.set_RR(rr) # ⼦域名名称request.set_DomainName(domainname) #主域名# 获取记录信息,返回信息中包含 TotalCount 字段,表⽰获取到的记录条数 0 表⽰没有记录,其他数字为多少表⽰有多少条相同记录,正常有记录的值应该为1,如果值⼤于1则应该检查是不是重复添加了相同的记录 response = client.do_action_with_exception(request)response = str(response, encoding='utf-8')relsult = json.loads(response)return relsult# 更新记录def updateDomainRecord(client,value,rr,record_id):request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()request.set_accept_format('json')# request.set_Priority('1')request.set_TTL('600')request.set_Value(value) # 新的ip地址request.set_Type('A')request.set_RR(rr)request.set_RecordId(record_id) # 更新记录需要指定 record_id ,该字段为记录的唯⼀标识,可以在获取⽅法的返回信息中得到该字段的值response = client.do_action_with_exception(request)response = str(response, encoding='utf-8')return response# 删除记录def delDomainRecord(client,subdomain):info = getDomainInfo(subdomain)if info['TotalCount'] == 0:print('没有相关的记录信息,删除失败!')elif info["TotalCount"] == 1:print('准备删除记录')request = DeleteDomainRecordRequest.DeleteDomainRecordRequest()request.set_accept_format('json')record_id = info["DomainRecords"]["Record"][0]["RecordId"]request.set_RecordId(record_id) # 删除记录需要指定 record_id ,该字段为记录的唯⼀标识,可以在获取⽅法的返回信息中得到该字段的值result = client.do_action_with_exception(request)print('删除成功,返回信息:')print(result)else:# 正常不应该有多条相同的记录,如果存在这种情况,应该⼿动去⽹站检查核实是否有操作失误print("存在多个相同⼦域名解析记录值,请核查后再操作!")# 有记录则更新,没有记录则新增def setDomainRecord(client,value,rr,domainname):info = getDomainInfo(rr + '.' + domainname)if info['TotalCount'] == 0:print('准备添加新记录')add_result = addDomainRecord(client,value,rr,domainname)print(add_result)elif info["TotalCount"] == 1:print('准备更新已有记录')record_id = info["DomainRecords"]["Record"][0]["RecordId"]cur_ip = getIp()old_ip = info["DomainRecords"]["Record"][0]["Value"]if cur_ip == old_ip:print ("新ip与原ip相同,⽆法更新!")else:update_result = updateDomainRecord(client,value,rr,record_id)print('更新成功,返回信息:')print(update_result)else:# 正常不应该有多条相同的记录,如果存在这种情况,应该⼿动去⽹站检查核实是否有操作失误print("存在多个相同⼦域名解析记录值,请核查删除后再操作!")IP = getIp()# 循环⼦域名列表进⾏批量操作for x in SubDomainList:setDomainRecord(client,IP,x,DomainName)# 删除记录测试# delDomainRecord(client,'')# 新增或更新记录测试# setDomainRecord(client,'192.168.3.222','a',DomainName)# 获取记录测试# print (getDomainInfo(DomainName, 'y'))# 批量获取记录测试# for x in SubDomainList:# print (getDomainInfo(DomainName, x))# 获取外⽹ip地址测试# print ('(' + getIp() + ')')可以将以上脚本保存为⽂件之后,通过定时任务,来实现定期⾃动更新ip地址,具体如何添加定时任务,系统不同,可能⽅法也不尽相同,这⾥就不多说明了。
如何使用动态域名解析(DDNS)实现电脑独立IP动态域名解析(Dynamic DNS)是一种将动态 IP 地址与域名绑定的技术,它可以帮助用户实现通过域名访问电脑的需求。
在拥有动态 IP 地址的环境下,例如家庭宽带网络,每次重新连接到网络时,IP 地址都会变化,这就会导致无法通过固定 IP 地址来访问电脑。
动态域名解析技术通过使域名与 IP 地址动态绑定,用户可以通过使用一个易于记忆的域名来访问电脑,而不需要关心 IP 地址的变化。
本文将介绍如何使用动态域名解析(DDNS)实现电脑独立 IP,帮助用户轻松地通过域名访问自己的电脑。
1. 选择合适的动态域名解析服务提供商在开始之前,首先需要选择一个合适的动态域名解析服务提供商。
市场上有很多可供选择的服务提供商,例如Dyn、No-IP、Cloudflare 等。
选择一个可靠且适合自己需求的服务提供商非常重要,因为这将影响到后续的设置和稳定性。
2. 注册并登录账户选择好动态域名解析服务提供商后,需要注册一个账户并登录到该账户。
一般来说,注册过程比较简单,只需要提供一些基本的个人信息即可完成。
3. 添加域名登录账户后,需要添加要使用的域名。
这个过程可能需要提供一些域名相关的信息,例如域名主机记录、TTL(Time to Live)等。
根据服务提供商的要求,按照指引填写相关信息并添加域名。
4. 配置动态 DNS 客户端动态域名解析需要一个客户端软件来检测电脑的 IP 地址变化,并将新的 IP 地址与域名进行绑定。
根据选择的服务提供商不同,客户端软件的安装和配置可能会有所不同。
在注册登录完成后,一般可以在服务提供商的网站上找到相应的下载和配置指南。
根据指南安装和配置动态 DNS 客户端,并将其与账户绑定。
5. 设置路由器在实现电脑独立 IP 的过程中,还需要在路由器上进行一些设置,以确保动态 DNS 客户端可以正常工作。
通过登录路由器的管理界面,找到相应设置,一般在「高级设置」或「网络设置」中。
利用阿里云的API实现动态域名解析首先在实现动态域名解析之前要具备两个条件:第一、你必须有公网 IP,就是你的路由器拨号获取到的 IP 必须是公网 IP (可以参考 ip138 获取到的 IP)。
长城宽带没有公公网 IP 所以就不用往下看了,用内网穿透的工具吧,那天在家搭服务器时发现联通给的也是内网IP,果断投诉他们,让他们换成公网的 IP。
第二、你必须有阿里云的域名,API 是阿里云提供的,阿里云提供域名解析,所以没有域名就没法解析了。
进入正题,先说一下原理:一个 windows 服务,定时获取公网 IP ,然后调用 API 接口设置解析。
首先从阿里云上把 SDK 下载下来,源码需要自己编译,这里我们只用到了 core 和 alidns 两个项目,一个是核心组件,一个是 dns 接口组件。
其实我只用到了 3 个接口:•DescribeDomainRecords 获取域名的解析列表•AddDomainRecord 添加一条新的解析记录•UpdateDomainRecord 修改一条解析记录获取域名的解析列表CGlobalConfig.AccessKey 是获取配置文件里配置的阿里云的AccessKey,这个需要去阿里云申请(不花钱)。
CGlobalConfig.AccessKeySecret 是获取配置文件里配置的阿里云的 AccessKeySecret,这个跟 AccessKey 是一对。
domain 变量是域名1.IClientProfile clientProfile = DefaultProfile.GetProfile("cn-hangzhou", CGlobalConfig.AccessKey, CGlobalConfig.AccessKeySecret);2.DefaultAcsClient client = new DefaultAcsClient(clientProfile);3.DescribeDomainRecordsRequest request = new DescribeDomainRecordsRequest();4.request.DomainName = domain;5.DescribeDomainRecordsResponse response = client.GetAcsResponse(request);6.List<DescribeDomainRecordsResponse.Record> list = response.DomainRecords;获取到的 list 就是这个域名的解析记录。
动态域名解析原理动态域名解析(Dynamic DNS)是指将动态分配的IP地址与域名进行关联的技术。
在传统的域名解析过程中,一般会将固定的IP地址与域名进行映射,使得用户能够通过域名访问到特定的服务器。
然而,由于网络环境的变化或者部署需求的变动,服务器的IP地址可能会发生改变,导致原有的域名无法正常访问。
为了解决这个问题,动态域名解析应运而生。
动态域名解析的原理可以简要分为以下几个步骤:1. 客户端更新IP地址:首先,客户端会定期检测自身的IP地址是否发生变化。
如果IP地址发生了改变,客户端会将新的IP地址上传至动态域名解析服务商的服务器。
2. 动态域名解析服务商更新记录:一旦接收到客户端上传的新IP地址,动态域名解析服务商会立即更新相应的解析记录。
这样,当用户通过域名访问时,服务商会将最新的IP地址返回给客户端。
3. DNS服务器缓存更新:当客户端发起域名解析请求时,DNS服务器会先查找自身的缓存记录。
如果缓存中存在解析记录且与动态域名解析服务商提供的记录相符,DNS服务器会直接返回该记录,从而提高解析效率。
如果缓存的记录不存在或者已过期,DNS服务器会跟随客户端的查询请求去动态域名解析服务商那里获取最新的解析记录。
通过以上步骤,动态域名解析实现了根据客户端的IP地址变化动态更新域名解析记录,确保用户可以通过域名始终访问到正确的服务器。
动态域名解析的应用场景包括但不限于以下几个方面:1. 远程访问:在进行远程访问时,由于网络环境的不稳定性,IP地址可能会发生改变。
通过使用动态域名解析,用户无需关心IP地址的变化,只需使用域名即可远程访问到目标服务器。
2. 服务器负载均衡:为了提高服务器的性能和稳定性,通常会使用负载均衡技术将用户的请求分发到多台服务器上。
动态域名解析可以实现在服务器发生扩容、变更或故障转移的情况下,无需修改域名记录即可确保用户的访问不受影响。
3. 移动设备访问:随着移动设备的普及,移动端用户对于实时性和稳定性的要求越来越高。
动态域名解析(DDNS)的原理是将用户的动态IP地址映射到一个固定的域名解析服务上。
每当用户连接网络时,客户端程序会通过信息传递将主机的动态IP地址发送给位于服务商主机上的服务器程序。
服务器程序负责提供DNS服务,并实现动态域名解析。
简而言之,这个过程是通过动态域名映射来实现动态更新域名服务器上的IP地址。
为了实现动态域名解析,需要一个专用的域名解析服务器(DNS Server)来运行域名解析服务器程序,提供从域名到IP地址的映射关系,并接收客户提出的域名解析请求。
DNS客户端(DNS Client)负责接收用户程序的DNS请求,并对其进行回应。
地址解析器在收到DNS请求后,会首先查询本地域名缓存。
如果本地域名缓存中存在该域名对应的映射表项,地址解析器就直接将域名对应的IP地址返回给用户程序。
动态域名解析系统由两部分组成:服务器端程序和客户端程序。
服务器端程序通常位于系统服务提供商的主机上,负责提供DNS服务以及实现实时动态域名解析。
客户端程序安装在具有动态IP地址的用户电脑上,负责在用户每次上网时将本机的IP地址通知给服务器端程序。
在收到客户端通知后,服务器端程序可以立即更新原域名的解析映射,将新的IP地址重新与原有的固定域名相对应,实现动态IP到域名的同步映射。
通过使用动态域名解析系统,即使网站没有静态IP地址,互联网上的访问者也能通过输入固定域名来访问该网站。
这为用户提供了极大的便利,免去了手动指定IP地址的麻烦。
nginx中rewrite方法摘要:1.Nginx简介2.Nginx中的rewrite方法概述3.使用rewrite方法的实战案例4.rewrite方法的配置详解5.rewrite方法的优缺点6.总结正文:【1.Nginx简介】ginx是一款高性能的反向代理服务器,广泛应用于网站后端服务器、负载均衡和动静分离等场景。
它具有高性能、稳定性强、占用资源少等特点,深受开发者喜爱。
【2.Nginx中的rewrite方法概述】ginx的rewrite方法是其内置的URL重写功能,通过正则表达式对请求的URL进行匹配和替换,实现URL路由、动态域名解析等目的。
rewrite方法的主要作用是对请求的URL进行转换,使之符合我们期望的格式。
【3.使用rewrite方法的实战案例】案例1:将不同格式的URL统一为规范格式```location /old-url/ {rewrite ^/old-url/(.*)$ /new-url/$1;}```案例2:实现动态域名解析(使用PCRE)```location /~^www.(.*)$ {server_name www.$1;}```【4.rewrite方法的配置详解】1.语法:`rewrite ^pattern new_pattern;`2.常用正则表达式:- `^`:表示匹配字符串的开头- `$`:表示匹配字符串的结尾- `*`:表示任意字符,匹配0个或多个字符- `?`:表示匹配一个字符- `[]`:表示匹配指定范围内的字符- `|`:表示或,匹配两个正则表达式之一- `^`、`$`、`*`、`?`、`[]`等符号可以互相组合【5.rewrite方法的优缺点】优点:1.性能高,占用资源少,适用于高性能场景2.规则简单,易于配置和维护3.支持正则表达式,功能强大缺点:1.学习成本较高,需要掌握正则表达式2.配置稍显复杂,不易上手【6.总结】ginx的rewrite方法为网站开发者提供了强大的URL重写功能,通过简单的配置,可以实现URL路由、动态域名解析等功能。
域名跳转防封方法在互联网时代,域名跳转是一种常见的网站防封方法。
域名跳转是指将一个域名的访问请求重定向到另一个域名上,从而达到绕过封锁的目的。
下面介绍几种常见的域名跳转防封方法。
一、CDN加速CDN(Content Delivery Network)即内容分发网络,是一种通过在全球各地部署服务器,将网站内容缓存到离用户最近的服务器上,从而提高网站访问速度的技术。
CDN加速可以通过将网站的域名解析到CDN服务商提供的IP地址上,实现域名跳转。
由于CDN服务商的服务器分布在全球各地,因此可以有效地绕过地域封锁。
二、反向代理反向代理是指将客户端的请求转发到服务器端,并将服务器端的响应返回给客户端。
反向代理可以通过将网站的域名解析到反向代理服务器的IP地址上,实现域名跳转。
由于反向代理服务器通常位于境外,因此可以有效地绕过地域封锁。
三、域名转发域名转发是指将一个域名的访问请求重定向到另一个域名上。
域名转发可以通过在DNS服务器上设置域名解析规则,实现域名跳转。
由于域名转发不需要额外的服务器资源,因此成本较低。
四、动态域名解析动态域名解析是指将一个域名的访问请求重定向到另一个IP地址上,并且可以根据需要动态地修改IP地址。
动态域名解析可以通过在DNS 服务器上设置动态解析规则,实现域名跳转。
由于动态域名解析可以根据需要动态地修改IP地址,因此可以有效地绕过封锁。
总之,域名跳转是一种常见的网站防封方法,可以通过CDN加速、反向代理、域名转发、动态域名解析等方式实现。
不过需要注意的是,域名跳转只是一种绕过封锁的手段,不能代替合法合规的网站运营。
我们应该遵守法律法规,合法合规地运营网站。
DDNS是什么意思?ddns有什么作用和功能?在路由器设置中,细心的朋友的会发现有一项“DDNS”功能,很多朋友对DNS不会陌生,但对于DDNS是什么意思,有什么作用却没什么了解。
那么,DDNS是什么?有什么用呢?对于此类问题,接下来小编详细介绍下DDNS的含义以及工作作用,想要了解的朋友,不妨仔细看看。
DDNS是什么ddns是什么意思?DDNS英文全称Dynamic Domain Name Server,中文含义是指动态域名服务。
很多普通路由器或者智能路由器设置中,都可以找到DDNS(动态DNS)功能。
通俗的说,DDNS是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。
DDNS原理示意图如果觉得这样还不好理解的话,可以简单这样理解。
目前路由器拨号上网获得的多半是动态IP,DDNS可以将路由器变化的外网IP和固定的域名绑定,从而用户可以在外网通过该固定域名进行访问路由器。
DDNS有什么用?1、目前ISP网络运营商大多提供动态IP(如拨号上网),我们若想在互联网上以自己的网域公布,DDNS提供了解决方案,它可以自动更新用户每次变化的浮动IP,然后将其与网域相对应,这样其他上网用户就可以通过域名访问您的路由器。
2、DDNS还可以让我们在自己的或家里架设WEB\MAIL\FTP等服务器,而不用花钱去付虚拟主机租金,也就是说,借助路由器DDNS绑定域名,可以将我们电脑作为服务器功能来使用,通过域名,可以让全球其他联网用户,访问我们指定的文件或者网页程序。
3、主机是自己的,空间可根据自己的硬盘需求来扩充,维护也比较方便。
有了域名与空间,借助DDNS绑定域名就可以架设网站,FTP 服务器、EMAIL服务器都不成问题。
4、如果您有对VPN的需求,有了DDNS就可以用普通上网方式方便地建立Tunnel。
一、动态域名的实现
1.动态域名基础
搭建Linux服务器是一个系统工程,涉及到硬件购置、软件安装、域名申请、网络服务提供等。
这里的前提就是域名的申请,因为对于虚拟拨号上网的用户而言,使用的都是动态IP地址,别人根本无法和你联系。
解决的办法就是采用动态域名解析工具,通过运行一个专门的客户端程序,一旦拨号用户上线,就会把当前的动态IP地址发送到专门的动态域名解析服务器,然后该动态域名解析服务器就可以及时更新自己的数据库,把某个“固定”域名指向该临时IP地址。
这样,不管现在的IP地址是多少,总是可以通过一个固定的域名来访问我们的Linux服务器。
需要注意的是,计算机所拥有的IP地址应该是公网IP地址,也就是Internet所采用的IP地址,而非内网(局域网)IP地址。
2.动态域名解析
(1)注册动态域名
我们可以到科迈网/register.php注册一个用户账户。
然后在“域名管理”页面中单击“申请科迈公网免费二级域名”链接,注册一个合适的名称(例如myname),即会得到一个的二级域名,然后单击“提交”按钮,如果该域名没有被别人注册,则可以立即生效。
注意:本文假设用户已经完全安装Red Hat Linux 9.0,并使用KDE桌面系统。
(2)安装动态域名解析工具
注册成功以后,我们可以到
/client/linux_i.tar.gz中下载动态域名解析工具(如,版本号“公网Ver 2.00 Build 104”)。
下载得到的是一个压缩文件,在系统里建立一个目录,如/usr/local/comexe,把下载的文件解压到这个目录即可。
[root@ahpeng root]# cd /tmp
[root@ahpeng tmp]# tar -xvzf linux_i.tar.gz
[root@ahpeng tmp]# cp pipclient /usr/local/comexe/pipclient
(3)配置客户端
解压后得到一个执行文件pipclient。
在终端命令窗口切换到该目录并运行以下命令:
[root@ahpeng comexe]# ./ pipclient
第一次运行pipclient,会要求输入配置信息:
[root@ahpeng comexe]# ./ pipclient
Usage: pipclient -h -c -w /home/pipclient
-h: help message.
-c: do configuration.
-w <dir>: set work directory.
Do configuration now.
Input User name:
这里按照屏幕提示输入以下配置信息:
Input User name://在科迈网注册的用户名
Input Password: //科迈网用户密码
Input Domain: //域名
Input Offline URL or Offline IP(Enter for none)://域名离线URL。
如果没有请直接按回车键。
这里要注意离线功能对科迈的二级域名(如
、)无效
Has another domain?(Y/N)://如果要解析多个域名,请按“Y”,逐个输入域名及其离线URL
配置完毕后应该出现以下提示信息:
030827 155904:MESG:
COMEXE DDNS (Public IP) Ver 2.00a Build 102
Copyright 2003 Shenzhen COMEXE Communication Technology Co. Ltd.
All Rights Reserved.
030827 155904:MESG:服务启动.
030827 155904:INFO:Connected to:210.22.12.54:9994
030827 155904:INFO:Connected to:210.22.12.54:9993
030827 155904:MESG:登录成功! 出口IP是: xxx.xxx.xxx.xxx
030827 155904:INFO:xxx.xxx.xxx.xxx N 20
现在可以按Ctrl+C组合键退出。
如果以后要修改配置,可以在终端命令窗口运行以下命令:
[root@ahpeng comexe]#./pipclient -c
3.内网映射
所谓内网(局域网),就是只有一台主机(可能是代理服务器或路由器)连接到Internet,具有公网地址,假设为A1。
别的计算机通过它与Internet连接,假设为A2,只有内网地址,外网计算机显然无法直接访问A2。
要让外网用户可以访问Linux服务器,通常有三种解决思路:
(1)如果A1是Windows主机
如果A1是Windows主机,可以考虑安装端口映射工具,如PortTunnel,把外网计算机对A1特定端口的访问,转驳到对A2特定端口的访问。
(2)如果你采用路由器
如果你采用路由器,或具有路由功能的ADSL Modem,可以直接在路由器上进行设置。
这里以AboveCable无线路由器为例进行介绍:
首先在浏览器地址栏中输入“192.168.100.100”,回车进入路由器设置界面,输入密码即可进入管理界面。
展开页面左侧的“重定向规则→虚拟主机”链接,然后在右侧页面中依次填上服务端口、服务器IP地址,这样外网对路由器的特定端口访问,都会被转驳到指定服务器的端口。
(3)下载客户端程序
登录到/helptruehost.php下载一个特殊的客户端程序,不过这需要支付一定的费用、并且带宽受到限制(通过专门的服务器中转),它可以实现内网用户对外提供服务。
4.内置防火墙的配置
在搭建Linux网站时,还有一个很容易疏忽的问题,即是没有正确配置系统内置的防火墙,这可能会导致“客户”无法访问我们的Linux服务器,所以必须对防火墙进行配置。
单击“主菜单→系统设置→安全级别”菜单项,即可打开“安全级别配置”对话框,如图1所示。
选中“定制”选项,然后选择所需启用的服务,例如WWW、FTP、邮件(SMTP)等,最后单击“确定”按钮即可。