Linux如何进行内网IP的域名映射? (linux域名映射内网ip)

内网IP的域名映射,是指将内网IP地址与域名进行映射,以便在内部网络中使用域名访问内网IP地址。这种方式可以在一定程度上简化内网管理,方便用户进行访问。而要实现内网IP的域名映射,就需要使用到DNS服务器。本文将介绍Linux系统下如何进行内网IP的域名映射。

一、安装DNS服务器

首先需要在服务器上安装DNS服务器,可以使用BIND(Berkeley Internet Name Domn)软件来进行安装,这是Linux系统下更流行的DNS服务器软件之一。在安装前,需要确保系统已安装好bind-utils、bind-libs和bind-devel这三个组件。可以使用以下命令进行安装:

yum install bind-utils bind-libs bind-devel

安装完成后,可以使用以下命令查看DNS服务器是否启动成功:

service named status

若DNS服务器没有启动,则可以使用以下命令将其启动:

service named start

同时,也可以使用chkconfig命令设置DNS服务器开机启动:

chkconfig named on

二、配置DNS服务器

配置DNS服务器主要包括以下三个方面:添加区域文件、添加解析记录、设置客户机DNS。

1. 添加区域文件

在DNS服务器上,需要为每个内网IP添加一个区域文件,可以根据需要添加多个区域文件。接下来以添加一个名为example.com的区域文件为例。

先创建一个名为/var/named/example.com的文件夹:

mkdir /var/named/example.com

然后,在该文件夹下创建一个空的example.com.zone文件:

touch /var/named/example.com/example.com.zone

打开该文件,添加以下内容:

$TTL 86400

@ IN SOA ns1.example.com. root.example.com. (

2023050501 ; serial, todays date + todays serial #

86400 ; refresh, seconds

7200 ; retry, seconds

3600000 ; expire, seconds

86400) ; minimum, seconds

;

; Name servers

; A记录,指定DNS服务器IP

IN NS ns1.example.com.

;

; NS records

; A记录,指定内部DNS服务器IP

ns1 IN A 192.168.1.1

;

; A records

; 指定内部主机名和IP

host1 IN A 192.168.1.2

host2 IN A 192.168.1.3

host3 IN A 192.168.1.4

其中,$TTL代表DNS服务器存储该域名信息的缓存有效时间,一般设置为86400秒(即1天)。@表示该区域文件的别名,IN指代Internet。

2. 添加解析记录

上述配置中,已经添加了内网主机的IP和主机名,但这些主机名还不能被域名解析到。接下来,需要将主机名添加到DNS服务器的解析列表中。

在/etc/named.conf文件中,添加以下内容:

zone “example.com” IN {

type master;

file “/var/named/example.com/example.com.zone”;

};

保存该文件后,重启DNS服务器:

service named restart

此时,DNS服务器已完成配置。

3. 设置客户机DNS

在DNS服务器配置完成后,客户机需要将DNS服务器的IP地址添加到其DNS列表中,以便在内网中使用域名访问内网IP。可以在客户机的/etc/resolv.conf文件中添加以下内容:

nameserver 192.168.1.1

其中,nameserver为DNS服务器的IP地址。

三、验证域名解析

在上述步骤完成后,可以使用以下命令来测试内网主机名的解析情况:

nslookup host1.example.com 192.168.1.1

其中,host1.example.com为需要解析的主机名,192.168.1.1为DNS服务器的IP地址。若解析成功,则会输出host1.example.com对应的IP地址。

同时,也可以在客户机中使用ping命令测试内网IP是否能够被域名访问。

通过上述步骤,可以在Linux系统下完成内网IP的域名映射。需要注意的是,每次添加内网主机名和IP时,都需要进行DNS服务器的配置,这种方式适用于内网主机数量较少的情况。如果内网主机数量较多,则需要进行更为复杂的DNS服务器配置。

相关问题拓展阅读:

linux服务器怎样绑定域名?

一、DNS服务器的设置

我们知道互联网网是基于TCP/IP协议的,要进行通信必须获得对方的IP地址,这是通过DNS服务器来实现的。因此要想实现虚拟域名首先应当令DNS服务器接受该虚拟域名,即把它映射到指定的IP地址上。因为我们靠Web服务器来区分域名,所以这个IP地址自然应当是Web服务器所管理的。

RedHat6.0操作系统中捆绑有BIND DNS服务器。它的域名配置文件是”/etc/named.conf”,一般情况下,域配置文件放在”/var/named”目录下面。

例1、named.conf文件的配置:

zone “domain.com” {

type master;

file “domain.com”;

};

zone “0.10.10.in-addr.arpa” {

type master;

file “10.10.0〃;

};

该例子说明”domain.com”的域配置文件是”/var/named/domain.com”,反向域的配置文件是”/var/named/10.10.0〃。domain.com文件负责把DNS域名映射为IP地址。

例2、domain.com文件配置:

@ IN SOA dns.domain.com. hostmaster.dns.domain.com. (

; serial

; refresh

900 ; retry

; expire

; default_ttl

)

@ IN MX 10 dns.domain.com.

@ IN NS dns.domain.com.

@ IN A 10.10.0.1

www IN A 10.10.0.1

假定要迹凳增加的域名是aaa.domain.com,想要指到

www.domain.com

,DNS服务中应增加一个别名记录,可写成:

aaa IN CNAME

www.domain.com

.

如果需要配置大量的虚拟域名,domain.com文件要很大,而且也相当麻烦。我们可以使用符号 “*” ,即在 domain.com 文件中加入:

* IN CNAME

www.domain.com

.

这样它就把所有没给出设置的以domain.com结尾的记录全部转到

www.domain.com

去了,不管是aaa.domain.com还是bbb.domain.com。这不会影响已有的记录。配置好DNS服务器后应该重新启动守护进程named:

# /etc/rc.d/init.d/named restart

二、Apache服务器的配置

Apache服务器是目前互联网上使用最多的Web服务器,它可以维护非常繁忙的站点。RedHat 6.0捆绑了Apache Web Server 1.3。它的配置文件位于”/etc/httpd/conf”目录下,有httpd.conf、srm.conf、access.conf,下面讨论一下与虚拟域名有关的配置:

1、静态配置

修改配置文件 httpd.conf 的步骤:

(1) 首先设置UseCanonicalName为off。它指示用服务器Host:header的内容代替ServerName 的值来提供给环境变量SERVER_NAME。

(2) 然后加入:

NameVirtualHost …其中…为所要配置的虚拟服务器的IP地址。在此可配置衫祥多个虚拟或州搏IP地址,当然要与DNS服务器中的配置一致。(注意:这里要用IP地址,不能用域名。)

(3) 接下来为每个虚拟域名加入一段记录:

…..

…要和NameVirtualHost配置的IP地址一致。在两个标志之间可加入的配置参数有:

ServerName后面跟你要增加的虚拟域名,如aaa.domain.com ;

Documentroot如果你映射到本机的路径就加在后面,如”/home/aaa” ;

redirect如果你映射到远端的URL可加在后面,有两个参数,之一个是虚拟域名的相对路径,第二个是远端站点的URL;

ServerAlias后可加入本域名的别名,可使用通配符,如*.aaa.domain.com 。

下面举两个例子:

例3、映射到本机的物理路径:

DocumentRoot “/home/test”

ServerName test.domain.com

例4、映射到远端的URL:

ServerName test1.doamin.com

redirect /

还有一些参数,象log文件的位置、超时的设置、缓冲区的设置等等,在此不一一介绍,可以参考Apache服务器的在线帮助文件。配置好httpd.conf文件后需要重新启动Apache的后台守护进程httpd,

# /etc/rc.d/init.d/httpd restart

每增加一个虚拟域名就要增加一段位于 … 之间的配置代码,而且只有在重新启动 httpd 后新配置才能生效。

2、动态配置

可以发现,如果要配置大量的虚拟域名将大大增加配置文件的长度,这样还会使Apache启动变慢,占用更多的内存,而且也不容易实现在线申请。可以通过选择动态方式来配置。这样不必事先写好配置,而是通过编写一定的动态规则来自动生成或随时从独立的配置文件中读取信息。

Apache有一个强大的扩展功能,即模块(Modules)的特性。模块可对服务器的功能进行扩充,它在运行和使用时才装入服务器,这样比一直放入服务器中要节省内存空间,同时也比调用外部CGI程序速度快。

现在使用一个功能强大的模块来实现动态配置虚拟域名,这就是mod_rewrite。它负责侦听从客户机送出的URL地址,并基于一组规则表达式对该URL来进行重写。这类似于URL别名概念,但它更进了一步,输出的URL可以映射到其他主机的任何URL地址上。 修改配置文件httpd.conf的步骤:

(1) 先设置UseCanonicalName为off 。

(2) 使用RewriteEngine on打开rewrite引擎。用RewriteMap设定配置文件的位置和属性,用RewriteCond和RewriteRule制定相应的规则。

例5、httpd.conf 文件中相关配置的一个例子:

RewriteEngine on

RewriteMap lowercase int:tolower

# 定义独立的配置文件的位置

RewriteMap vhost dbm:/www/conf/vhostdbm

# 利用独立的配置文件重映射虚拟域名

RewriteCond ${vhost:%1} ^(/.*)$

RewriteRule ^/(.*)$ %1/docs/$1

RewriteCond %{REQUEST_URI} ^/cgi-bin/

RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$

RewriteCond ${vhost:%1} ^(/.*)$

RewriteRule ^/(.*)$ %1/cgi-bin/$1

这里的 vhostdbm 文件格式见”CGI 程序的编制” 。

三、CGI程序的编制

要实现虚拟域名的在线申请,就必须编写相应CGI程序动态修改独立的配置文件(即上面的vhostdbm文件)和进行用户的管理(包括用户申请,登录,密码修改等等)。在此只介绍对独立的配置文件的操作,其他属于如何用Perl语言来编写CGI程序,请参考有关资料。

vhostdbm文件使用dbm格式来记录数据,与用普通文本文件相比可加快寻找速度,而且易于修改。许多UNIX系统都具有叫做dbm(database management)的标准库。该库将键-值对的存贮到一对磁盘文件中,提供简单的数据库管理工具,可以方便的更改、新增或删除数据内容。

Perl访问dbm的方式:通过一个类似于打开文件的进程将关联数组与dbm数据库联系起来。在数组中创建新元素时立即就更改了dbm数据库。删除一个元素的同时也删除了dbm数据库中的数值。可使用:

1、欲将dbm数据库与dbm数组相关联起来:

dbmopen(%arrayname,”dbmfilename”,$mode);

如果dbmfilename不存在的话就新建该库。%arrayname参数是Perl的关联数组(如果这个数组已经有值,那么这些值就被删除)。该关联数组连接到叫做dbmfilename的dbm数据库中。$mode 参数是当需要创建库时控制库文件权限的数字,该数字被指定为8制,经常被用到的是0644,给除了机主之外的新用户以只读的权限,机主可有全部权限。

2、关闭dbm库:

dbmclose(%arrayname);

%arrayname 是已经与dbm库关联了的数组名。

例6、VHOST打开vhostdbm,或新建一个dbm库:

dbmopen(%VHOST,”vhostdbm”,0644);

例7、新建记录或更改已有记录(设从html文件form中传过来的参数名为vhost、rhost):

$VHOST{$FORM{’vhost’}}=$FORM{’rhost’};

例8、删除已有记录(设从html文件form中传过来的参数名为vhost):

delete $VHOST{$FORM{’vhost’}};

例9、关闭vhostdbm:

dbmclose(%VHOST);

注:以上已经假设传过来的参数经过了验证,不存在重复的记录,否则会导致已有记录的混乱。

httpd.conf 该文件底部

#你的服务器ip

DocumentRoot “/home/test” #你的网站路径

如何从外网访问局域网内部的一台linux系统

1、首先,打开linux连接工具,例如:Xshell工具。

2、点击文件-新建,输入主机名、端口号,例如:166.177.188.199:22。

3、点击“用户身份验证知困春”菜单,输入该linux主机的用户名和密码。

4、最后,点击确定按钮,此时会发搭耐现,成功连接尺梁到linux的主机的命令行页面。

首先这台linux是否有全局静态IP?

如果有全局静态IP,你可以直接通过这个IP访问,没什么好设置的,当然linux下的防火墙要打开。至少开个22端口。

如果这台linux是通过拨号上网的,那就要用花生壳或者希网等动态域名服务,用希网做例子,先在希网(网址自己百度一下”希网动态域名拍宴”)上注册个帐号,申请一个未用的动态域名,然后下载一个动态域名客户端,在linux上运行这个客服端,设置相应的帐号和域名,上网后就会自动更新域名IP,你在外地就可以用这个动态域名直接访问。

如果这台linux是通过网庆仿关上网的,那需要在这个网关做个设置,开个端口映射,袭差银将某个端口映射到linux机器的22端口。

如果这台linux是通过代理上网的,那比较麻烦,我也没碰到过,可以参考网关上网在网关上设置试试。

如果网关也是拨号,那么两个步骤都需要做,网关上设置端口映射,linux机器上运行动态域名客户端。

用holer配置一个key就可以做到的

使用Holer从公网SSH访问内网Linux系统

安装Java 1.7或者更高版本

使用前请先安装Java 1.7或者更高版本;

检查Java安装是否符合运行要求,输入命令:java -version

java -version

java version “1.8.0_101”

Java(TM) SE Runtime Environment (build 1.8.0_101-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

如果有Java版本号显示并且版本号是咐族册1.7.x及以上版本,则说明Java安装符合运行要求,否则卸载重新安装Java。

下载软件包并解压:

下载Holer软件包holer-client.zip,使用ftp/sftp上传至内网/局域网的Linux系统上;

解衡宏压软件包: unzip holer-client.zip

修改配置文件

vim holer-client/conf/holer.conf

公网和内网的地址映射关系如下表所示:

Holer Access Key: HOLER_CLIENTF9D8ADD

Internet Address: holer.org:65534

Local Address: 127.0.0.1:22

内网Linux系统的sshd默认服务端口是22,选择记录里的Holer Access Key配置到文件:

holer-client/conf/holer.conf

HOLER_ACCESS_KEY=HOLER_CLIENTF9D8ADD

启动Holer服务

cd holer-client/bin

Linux系统执行启动Holer服务命令: sh startup.sh

如果需要停止Holer服务执行命令: sh shutdown.sh

使用ssh客穗稿户端工具MobaxTerm,输入如下命令就可以访问内网的Linux系统了

ssh -p 65534

成功登录示例:

ssh -p 65534

‘s password:

#

# ifconfig

eth0: flags=4163 mtu 9001

inet 172.31.19.0 netmask 255.255.240.0 broadcast 172.31.31.255

inet6 fe80::56:7ff:fe0f:782 prefixlen 64 scopeid 0x20

ether 02:56:07:0f:07:82 txqueuelen(Ethernet)

RX packetytes(120.6 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packetytes(1.7 MiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

inet6 ::1 prefixlen 128 scopeid 0x10

loop txqueuelen(Local Loopback)

RX packets 178 bytes(25.8 KiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 178 bytes(25.8 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

#

你这问销歼没题特别笼统,估计你对电脑不是很懂,只是有自己的想法。

我也就亏纳只能笼统的回答下吧。先端口扫描改猜啦 linux下面很多扫描命令的,比如 namp

如果对方开了22端口,你可以用ssh链接,如果开了23端口你可以用telent链接。

建议ssh链接,如果你是WIN系统,可以用PUTTY链接对方的22端口,实现远程链接对方主机。不过首先要对方防火墙允许的情况下。

1 北京的linux 在系统-远程桌面-允许网络用户访问打勾

2 北京的linux是外网还蚂唤明是内网的?如果是外网直接用vnc软件闷告直接访问北京linux的ip地址就得了

3 北京的linux如果是内网有路由的,就在路由开启Vnc的端口映射到linux的电脑上

关于linux域名映射内网ip的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux如何进行内网IP的域名映射? (linux域名映射内网ip)