搭建个人DNS服务器是学习DNS知识和控制本地网络的好方法。树莓派凭借其经济性和易用性,使这个项目出奇地简单。本指南将引导您完成整个过程,使您能够管理家庭网络的DNS记录。
目录
在树莓派上设置静态IP地址
在配置DNS服务器之前,务必为您的树莓派分配一个静态IP地址。这可以防止IP地址更改中断DNS功能。我们将使用树莓派配置工具:
- 访问配置工具:在您的树莓派上(或通过SSH)打开终端并键入:
- 网络选项:导航到“5 Interfacing Options”,然后选择“P5 Network Configuration”。
- 设置静态IP:选择“Manual”配置。输入您所需的静态IP地址、子网掩码、网关和DNS服务器地址(暂时使用您的路由器的DNS服务器)。确保IP地址在您的网络范围内并且不会与其他设备冲突。记下这些设置。
- 保存并重启:保存更改并使用以下命令重启您的树莓派:
- 验证:重启后,使用以下命令验证您的静态IP:
sudo raspi-config
sudo reboot
ip addr show
设置DNS服务器 (Bind9)
我们将使用Bind9,这是一个可靠且广泛使用的DNS服务器。
- 更新软件包:更新您的树莓派的软件包列表:
- 安装Bind9:安装Bind9及其实用程序:
- 配置Bind9:主配置文件位于`/etc/bind/named.conf.local`。添加您的域的条目。例如,要为`example.local`提供服务记录,请添加:
- 创建数据库文件:创建`/etc/bind/db.example.local`,内容如下(将占位符替换为您的信息):
- 重启Bind9:重启Bind9以实施更改:
- 防火墙(可选):如果使用防火墙(例如`ufw`),请允许DNS流量(端口53):
sudo apt update
sudo apt install bind9 bind9utils
zone "example.local" {
type master;
file "/etc/bind/db.example.local";
};
$TTL 604800
@ IN SOA raspberrypi.example.local. admin.example.local. (
2023102702 ; Serial (每次更改时递增此数字)
86400 ; Refresh
7200 ; Retry
3600000 ; Expire
604800 ; Negative Cache TTL
)
@ IN NS raspberrypi.example.local.
raspberrypi IN A 192.168.1.100
www IN A 192.168.1.100
sudo systemctl restart bind9
sudo ufw allow 53/udp
sudo ufw allow 53/tcp
测试您的DNS服务器
- 客户端配置:在您网络中的设备上,将其DNS服务器设置更改为您的树莓派的静态IP地址。
- 测试解析:ping或浏览到`db.example.local`中定义的主机名(例如`raspberrypi.example.local`或`www.example.local`)。成功解析确认您的DNS服务器正在运行。如果不是,请仔细检查您的配置文件。
请记住将占位符值替换为您实际的IP地址和域名。这是一个基本设置;对于高级配置,请查阅Bind9文档。在进行更改之前,始终备份配置文件。