ubuntu搭建内网dns服务器
公司中经常会搭建一些内部的网站,这些网站只能在公司的局域网中使用(连接同一个路由器的电脑),当访问这些网站时需要在浏览器中手动输入服务器IP地址进行访问,无法通过域名访问(域名:baidu.com就是一个域名),这时可以通过搭建公司内部的DNS服务器解决
现在想通过 http://mygitlab.com 就可以访问到位于192.168.0.100主机上自己搭建的gitlab服务器
本文中要搭建的DNS服务器和gitlab服务器在同一台主机上,ip都是192.168.0.100,当然也可以不在同一台主机上。
下载bind9
执行如下命令:
apt-get install bind9
然后编辑bind9配置文件
找到/etc/bind/named.conf.default-zones
文件
并在末尾添加
type master;
file "/etc/bind/db.ip2mygitlab.com";
};
zone "100.0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.mygitlab2ip";
};
其中100.0.168.192
是mygitlab服务器的ip的反写,你的服务器IP地址也要反写。
然后在/etc/bind
中创建db.ip2mygitlab.com
文件 和db.mygitlab2ip
文件,注意这两个文件名要和name.conf.default-zones
中配置的file相同。
然后在db.ip2mygitlab.com
文件中填写如下内容,注意 :需要把下面的mygitlab.com
换成你的域名,不要漏掉了域名后面的小数点,192.168.0.100
是mygitlab服务器的ip,需要替换成你自己的。
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns.mygitlab.com. root.mygitlab.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.mygitlab.com.
@ IN A 192.168.0.100
ns IN A 192.168.0.100
cn IN A 192.168.0.100
然后在db.mygitlab2ip
文件中填写如下内容,同样要替换mygitlab.com为你的域名。100是mygitlab服务器的ip的最后一段,需要替换成你自己的。
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA ns.mygitlab.com. root.mygitlab.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS mygitlab.com.
1.0.0 IN PTR cn.mygitlab.com.
100 IN PTR mygitlab.com.
100 IN PTR www.mygitlab.com.
100 IN PTR dns.mygitlab.com.
100 IN PTR cn.mygitlab.com.
然后修改/etc/bind/named.conf.option
文件为如下内容
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
forwarders {
202.101.172.35;
202.101.172.47;
};
//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
这个很关键,网上很多人说修改成 8.8.8.8 或 8.8.4.4 或 0.0.0.0,当修改成这三个后会发现访问外网特别慢,比如在公司内网访问 baidu.com,就非常慢,访问任何一个外网都很慢,原因是本地没有配置外网域名对应的ip,所以 bind9会去8.8.8.8 或 8.8.4.4 或 0.0.0.0这几个dns服务器查询ip,本文中修改成了202.101.172.35;
202.101.172.47; 是因为自己搭建的dns服务器位于杭州,用的电信的网,所以设置成了 202.101.172.35;
202.101.172.47;,具体设置成多少由你所在地区的网络提供上决定(你可以先百度一下ip就可以知道用的是电信还是联通还是移动的网,然后在百度一下你所在城市对应网络提供商的dns服务器的ip即可)
然后执行service bind9 restart
重启bind9 dns服务器,
可以通过nslookup 你的域名
查看是否配置成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)