公司内网搭建代理DNS使用内网域名代替ip地址

简介: 企业场景 一般在企业内部(科帮网),开发、测试以及预生产都会有一套供开发以及测试人员使用的网络环境。运维人员会为每套环境的相关项目配置单独的Tomcat,然后开放一个端口,以 IP+Port 的形式访问。
+关注继续查看

007

企业场景

一般在企业内部(科帮网),开发、测试以及预生产都会有一套供开发以及测试人员使用的网络环境。运维人员会为每套环境的相关项目配置单独的Tomcat,然后开放一个端口,以 IP+Port 的形式访问。然而随着项目的增多,对于开发和测试人员记住如此多的内网地址,无疑是一件头疼的事情(当然你也可以使用浏览器书签管理器或者记录在某个地方)。但是你不永远不会确定,那天由于升级突然改了IP,我们可能又要重新撸一遍配置,所以内网域名还是非常有必要的。

内网域名具体有哪些优点:

  • 方便记忆
  • 变更IP,只需要修改DNS即可

服务器环境

192.168.1.170(开发)
192.168.1.180(测试)
192.168.1.190(预生产)
192.168.1.125(DNS+Nginx)

DNS安装

安装容器

为了方便,我们使用docker环境手动搭建一个DNS服务器。

选择andyshinn/dnsmasq的docker镜像,2.75版本,执行命令:

docker run -d -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN --name dns-server andyshinn/dnsmasq:2.75

执行完毕以后,通过命令查看是否创建并运行成功:

[root@test125 ~]# docker ps
CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS              PORTS                                    NAMES
38ae71377ef1        andyshinn/dnsmasq:2.75   "dnsmasq -k"        22 hours ago        Up About an hour    0.0.0.0:53->53/tcp, 0.0.0.0:53->53/udp   dns-server

配置DNS

进入容器:

docker exec -it dns-server /bin/sh

创建代理文件:

vi /etc/resolv.dnsmasq

添加内容:

nameserver 114.114.114.114
nameserver 8.8.8.8

新建本地解析规则配置:

vi /etc/dnsmasqhosts

添加解析规则:

192.168.1.125  dev.52itstyle.com test.52itstyle.com sit.52itstyle.com

修改dnsmasq配置文件,指定使用上述两个我们自定义的配置文件:

vi /etc/dnsmasq.conf

追加下述两个配置

resolv-file=/etc/resolv.dnsmasq
addn-hosts=/etc/dnsmasqhosts

退出容器:

exit

重启容器:

docker restart dns-server

Nginx安装

安装OpenResty之前需要下载一些必备的依赖:

yum install readline-devel pcre-devel openssl-devel -y
yum install wget perl gcc -y

下载最新版本:

wget https://openresty.org/download/openresty-1.13.6.1.tar.gz

解压:

tar -xvf openresty-1.13.6.1.tar.gz

安装配置:

./configure

您可以使用下面的命令来编译安装:

make && make install

如果您的电脑支持多核 make 工作的特性, 您可以这样编译安装:

make && make install   -j2

为了方便启动,建立软连接:

ln -s /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx

在/usr/local/openresty/nginx/conf文件夹下创建vhosts目录,然后依次创建一下文件(演示文件,正式环境中会有多个项目转发)。

dev.52itstyle.com.conf:

server{
    listen 80;
    server_name dev.52itstyle.com;
    proxy_set_header            Host $host;
    location /{
         proxy_pass http://192.168.1.170:8080;
    }
}

test.52itstyle.com.conf:

server{
    listen 80;
    server_name test.52itstyle.com;
    proxy_set_header            Host $host;
    location /{
         proxy_pass http://192.168.1.180:8080;
    }
}

sit.52itstyle.com.conf:

server{
    listen 80;
    server_name sit.52itstyle.com;
    proxy_set_header            Host $host;
    location /{
         proxy_pass http://192.168.1.190:8080;
    }
}

配置文件:

vi /usr/local/openresty/nginx/conf/nginx.conf
worker_processes  2;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    #导入各个环境
    include vhosts/*.conf;
}

启动服务:执行 nginx命令即可。

本机验证

那么如何验证这些域名可以解析到我们的内网项目,只需要修改本机dns服务器地址即可:

98971855

配置完成后,我们就可以通过dev.52itstyle.com等相关域名访问我们的内网项目了。

当然,最好是可以直接修改路由器的DNS,这样就不用每个电脑都配置DNS了。

作者: 小柒2012

欢迎关注: https://blog.52itstyle.com

目录
相关文章
|
25天前
|
存储 域名解析 API
Python快速实现一个域名、IP信息聚合网站
域名和IP地址信息是非常基础的情报信息,目前网上有很多网站都提供了域名信息的查询、IP地址及归属地的查询。本文通过Python Flask实现域名及IP情报信息的聚合网站。 因为域名和IP地址信息会有变化,为了减少接口压力,做了本地数据库的存储,新鲜度保存一周,每次查询先从本地数据库获取信息,如果本地库信息有并且没有超过一个星期就从本地库取,没有就从其他网站获取,并更新到本地库。
44 0
|
1月前
|
域名解析 网络协议
域名和ip绑定不生效的一个可能原因
域名和ip绑定不生效的一个可能原因
为什么域名和ip地址访问的界面是不一样的
为什么域名和ip地址访问的界面是不一样的
|
3月前
|
Linux C++ Windows
c++ 通过域名获取ip(跨平台)
c++ 通过域名获取ip(跨平台)
189 0
|
5月前
|
Python
Python:通过socket.gethostbyname获取域名的ip地址
Python:通过socket.gethostbyname获取域名的ip地址
62 0
|
5月前
|
域名解析 网络协议 分布式数据库
IP、域名和DNS的关系与区别是什么?
IP、域名和DNS的关系相辅相成
140 0
IP、域名和DNS的关系与区别是什么?
|
7月前
|
网络协议 NoSQL 关系型数据库
【宝塔部署PHP项目】含域名访问部署、IP访问部署、数据库、端口号、Nginx等知识
【宝塔部署PHP项目】含域名访问部署、IP访问部署、数据库、端口号、Nginx等知识
940 0
【宝塔部署PHP项目】含域名访问部署、IP访问部署、数据库、端口号、Nginx等知识
|
7月前
|
网络协议
扫描域名和扫描IP的区别
扫描域名和扫描IP的区别
122 0
扫描域名和扫描IP的区别
|
8月前
|
网络协议 应用服务中间件 Linux
实战:第二十四章:ip:port改成域名的方式,并将http自动转https
实战:第二十四章:ip:port改成域名的方式,并将http自动转https
184 0
实战:第二十四章:ip:port改成域名的方式,并将http自动转https
Socket兼容IP和域名的原因
Socket兼容IP和域名的原因
相关产品
云解析DNS
推荐文章
更多