如何在安卓系统上把动态ip映射成域名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在安卓系统上把动态ip映射成域名相关的知识,希望对你有一定的参考价值。
如何在安卓系统上把动态ip映射成域名啊啊啊啊!!!有没有什么软件或者方法啊
拜托楼主,只有域名映射动态IP。。。。。静态映射叫DNS,动态就叫DDNS,网上有DNS商,将你的域名转入给他,再在DNS商那里设置动态域名解析,但是动态域名解析需要客户端,安卓版的大多没有,也没必要,因为一般做动态域名解析的都是服务器在本机上,解析到IP后正好服务器就是这个IP,就可以实现通信了,但是,如果解析到手机IP的话,安卓做服务器的少之又少少吧! 参考技术A 拜托楼主,只有域名映射动态IP。。。。。静态映射叫DNS,动态就叫DDNS,网上有DNS商,将你的域名转入给他,再在DNS商那里设置动态域名解析,但是动态域名解析需要客户端,安卓版的大多没有,也没必要,因为一般做动态域名解析的都是服务器在本机上,解析到IP后正好服务器就是这个IP,就可以实现通信了,但是,如果解析到手机IP的话,安卓做服务器的少之又少少。DNS主从
主机名到IP地址的映射有两种方式:
1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;
2)动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。
通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。
正向解析:根据主机名称(域名)查找对应的IP地址(实际应用中最多的)
反向解析:根据IP地址查找对应的主机域名(不常用,一般用于搭建邮件服务器时。)
根据服务器与所提供域名解析记录的关系,将DNS服务器分为不同的角色:
1)缓存域名服务器,也称为 唯高速缓存服务器
通过向其他域名服务器查询获得域名->IP地址记录
将域名查询结果缓存到本地,提高重复查询时的速度
2)主域名服务器
特定DNS区域的官方服务器,具有唯一性
负责维护该区域内所有域名->IP地址的映射记录
3)从域名服务器(通俗一点就是用于备份DNS服务器的)
也称为 辅助域名服务器
其维护的 域名->IP地址记录 来源于主域名服务器
搭建DNS服务应用的软件为:BIND(Berkeley Internet Name Daemon)
bind详解:
包名:bind
进程:named
协议:dns
使用端口:53(tcp,udp)
安装bind服务
yum -y install bind bind-chroot bind-utils bind-libs
如果安装了bind-chroot(其中chroot是 change root 的缩写),BIND会被封装到一个伪根目录内,配置文件的位置变为:
/var/named/chroot/etc/named.conf - BIND服务主配置文件
/var/named/chroot/var/named/ - zone文件
修改主配置文件(配置之前最好备份一下:cp /etc/named.conf /etc/named.conf.bak)
vim /etc/named.conf
//options语句用来设置可以被整个BIND使用的全局选项。这个语句在每个配置文件中只有一处。如果出现多个options语句,则第一个options的配置有效,并且会产生一个警告信息。
如果没有options语句,则每个选项使用缺省值。
options {
listen-on port 53 { any; }; //监听在主机的53端口上。any代表监听所有的主机
directory "/var/named"; //服务器的工作目录。默认配置文件中所有使用的相对路径,下面给出的相对路径都是相对此目录。指定的目录应该是一个绝对路径。
dump-file "/var/named/data/cache_dump.db"; //缓存转储位置。如果没有指定,缺省名字是named_dump.db。
statistics-file "/var/named/data/named_stats.txt"; //记录统计信息的文件
memstatistics-file "/var/named/data/named_mem_stats.txt"; //记录内存使用的统计信息
allow-query { any; }; //允许哪些主机查询,any代表所有人
recursion yes; //是否允许递归查询
forwarders { 219.141.136.10;114.114.114.114; };
//定义日志
logging {
channel default_debug {
file "data/named.run"; 记录了一些named的信息,如监听/解析记录等。它的位置在/var/named/chroot/var/named/data下。
severity dynamic;
};
channel audit_log { file "/var/log/bind.log"; severity notice; print-time yes; };
};
//根区域
zone "." IN {
type hint; //hint:表示是互联网中根域名服务器,master:表示定义的是主域名服务器,slave:表示定义的是辅助域名服务器
file "named.ca"; //指定了解析文件的位置,解析文件中记录着域名与IP的对应关系。它的位置在/var/named/chroot/var/named/data下。
};
//把另外两个文件也包含进来,作为主配置文件的一部分
include "/etc/named.rfc1912.zones"; //定义区域配置文件
include "/etc/named.root.key"; //根区域的key文件,与事务签名相关
配置文件的格式是每行后面都必须加分号结束,并且有花括号的地方,花括号两边必须要有空格。
编辑区域(增加zone信息)配置文件
vim /etc/named.rfc1912.zones
在里面新建一个区域,格式如下:
zone "区域名称" IN {
type master|slave|forward; //注意每个语句要以分号结尾
file "ZONE_NAME.zone";
}; //注意要以分号结尾
zone "long.com" IN { //正向解析的zone定义
type master;
file "long.zone";
notify yes; //开启主从同步
also-notify{ 192.168.20.23;}; //dns服务器地址
allow-transfer { 192.168.20.23; }; // 指定可以同步数据的从主机IP
};
zone "168.192.in-addr.arpa" { //反向解析的zone定义,.in-addr.arpa”以告诉named这是一个反解zone定义。前面的IP必须倒着写,可以写三位,比如20.168.192(看需求是否需要)
type master;
file "168.192.zone";
};
# 具体相关解析的配置文件保存在 /var/named/long.zone 文件中
创建区域数据(zone)文件(/var/named/***.zone)
SOA:(Start Of Authority)起始授权记录表示一个授权区的开始; 一个区域解析库有且只能有一个SOA记录,而且必须放在第一条;
NS:标识一个域的域名服务器。NS资源记录的数据字段包括这个域名服务器的DNS名。我们还需要指定这个域名服务器的地址与主机名相匹配的A记录,可以有多个NS记录;其中一个为主的;
A: Address, 地址记录,FQDN --> IPv4;
AAAA:地址记录, FQDN --> IPv6;
CNAME:Canonical Name,给定一个主机的别名,主机的别名记录是在这个主机的A记录中指定的
PTR:Pointer,IP --> FQDN
MX:Mail eXchanger,邮件交换器;
优先级:0-99,数字越小优先级越高;
修改权限
chmod 644 /var/named/long.zone 使named用户拥有读取的权限,(如需指定用户组视情况而定)
配置正向解析
vim /var/named/long.zone
这个文件里所有的域名结尾的点号一定不能省略。
$TTL 1D dns记录在本地DNS服务器上保留的时间
@ IN SOA dns1.long.com. root.mengge.com. (区域解析库文件第一个记录必须是SOA记录,必须有NS记录并且正解区域要有NS记录的A记录,反解则不需要有NS记录对应的A记录。@就是zone中定义的域名。
20160921 ;serial //序号,如果master上的zone文件序号比slave上的大,那么数据就会同步。
12H ;refresh //刷新Slave的时间
1H ;retry //Slave更新失败后多久再进行一次更新
1W ;expire //记录逾期时间:当 slave 一直未能成功与 master 取得联系,那到这里就放弃 retry,同时这里的资料也将标识为过期
3H ) ;mininum //缓存时间,这是最小默认 TTL 值,如果您在前面没有用“$TTL”来定义,就会以此值为准。
@ NS dns1 //表示一个域的域名服务器。NS资源记录的数据字段包括这个域名服务器的DNS名。我们还需要指定这个域名服务器的地址与主机名相匹配的A记录
@ NS dns2 //从服务器
dns1 A 192.168.20.22
dns2 A 192.168.20.23
gitlab A 192.168.20.75
配置反向解析
$TTL 86400
@ IN SOA @ root.mengge.com. (
20160921 ;serial
12h ;refresh
7200 ;retry
604800 ;expire
86400 ;mininum
)
IN NS @
75.20 IN PTR gitlab.mengge.com
systemctl restart named
rndc reload 重新加载所有域名配置文件。
rndc reload mengge.com(rndc reload + 域名 不重启的情况下,加载指定配置文件生效)
从服务器
vim /etc/named.rfc1912.zones
zone "haha.com" IN {
type slave;
masters { 192.168.10.6 }; 主dns服务器
masterfile-format text; //解决同步后配置文件乱码问题
file "slaves/haha.com.zone";
};
BIND DNS转发
一、转发机制
当你设置了转发器后,所有非本域的和在缓存中无法找到的域名查询都将转发到设置的DNS转发器上,由这台DNS来完成解析工作并做缓存,因此这台转发器的缓存中记录了丰富的域名信息。因而对非本域的查询,很可能转发器就可以在缓存中找到答案,避免了再次向外部发送查询,减少了流量。
二、配置参数
1.forward
此选项只有当forwarders列表中有内容的时候才有意义。当值是First,默认情况下,使服务器先查询设置的forwarders,如果它没有得到回答,服务器就会自己寻找答案。如果设定的是only,服务器就只会把请求转发到其它服务器上去。
2.forwarders
设定转发使用的ip地址。默认的列表是空的(不转发)。转发也可以设置在每个域上,这样全局选项中的转发设置就不会起作用了。用户可以将不同的域转发到服务器上,或者对不同的域可以实现forward only或first的不同方式,也可以根本就不转发。
注:转发服务器的查询模式必须允许递归查询(即,recursion yes;),默认递归查询是开启的。
三、转发器的配置格式
options {
forward first;
forwarders{
8.8.8.8;
1.8.8.8;
};
};
注意:转发器本身不用做任何设置,而是对需要转发器的其他DNS server做以上配置。还有,如果该 DNS Server 无法联系到转发器,那么BIND会自己尝试解析。
如果要禁止BIND在无法联系到转发器时不做任何操作,那么你还可以使用 forward only 命令,这样BIND只能使用区的权威数据和缓存来响应查询了( 在连接不到转发器的情况下 )。
options {
forward only;
forwarders{
8.8.8.8;
1.8.8.8;
};
};
在 BIND 8.2 以后引入了一个新的特性:转发区( forward zone ),它允许你把 DNS 配置成只有查找特定域名的时候才使用转发器。( BIND 9 从9.1.0 才开始有转发区功能)例如,你可以使你的服务器将所有对test.com结尾的域名查询都转发给test.com的两台名字服务器:
zone "test.com" {
type forward;
forwarders{
8.8.8.8;
1.8.8.8;
};
};
还有一种转发区设置和刚才的设置刚好相反,它允许你设置什么样的查询将不被转发,当然这只适用于在options语句中指定了转发器的 DNS 。配置如下:
options {
forwarders{
8.8.8.8;
1.8.8.8;
};
};
zone "test.com" {
type master;
file "zone.test.com";
forwarders {};
};
在test.com这个区中,你授权了几个子域,例如:zx.test.com、lab.test.com等,那么在test.com的权威服务器上设置转发后,因为对 zx.test.com、lab.test.com这几个子域不是权威,那么如果有对 www.zx.test.com这样的子域的域名查询,服务器也将转发。这完全是没有必要的,因为服务器上就有zx.test.org 子域的 NS 记录,何须再转发。
以上是关于如何在安卓系统上把动态ip映射成域名的主要内容,如果未能解决你的问题,请参考以下文章