在搭建局域网时,我们常常面临 IP 冲突、设备识别困难、远程访问不畅等问题。为了让家里的网络“更聪明”,我尝试用一套简单的自动化方案,把 DHCP 和 DNS 管理都统一了,不仅节省了配置时间,还大大提升了使用体验。
1. 场景背景
我的家庭网络设备比较多,有 NAS、打印机、开发板,偶尔还会在外用 VPN 连接回家里调试。以前每次改设备,IP 地址变了就要重新找,好麻烦。
于是我给自己设了个统一规则,所有设备用 .letsvpn.local 做域名后缀(比如 nas.letsvpn.local、printer.letsvpn.local),再通过 DHCP 固定 IP,配合 dnsmasq 自动解析,就再也不用手动输 IP 了。
2. DHCP 静态绑定配置
我用的是 isc-dhcp-server,在 /etc/dhcp/dhcpd.conf 里添加了每台设备的 MAC 和固定 IP:
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.100 192.168.100.200;
option routers 192.168.100.1;
option domain-name-servers 192.168.100.1;
host nas {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.100.88;
option host-name "nas.letsvpn.local";
}
host dev-pc {
hardware ethernet 00:11:22:33:44:66;
fixed-address 192.168.100.66;
option host-name "dev.letsvpn.local";
}
}
配置完毕后,重启服务:
systemctl restart isc-dhcp-server
3. DNS 自动映射(基于 dnsmasq)
很多人配置完 DHCP 之后,还是只能靠 IP 找设备。其实只要补一个 DNS,就能用“名字”访问设备。
👉 举个例子,我给家里的开发板设了 dev.letsvpn.local,NAS 叫 nas.letsvpn.local,如下:
配置 /etc/dnsmasq.hosts:
192.168.100.88 nas.letsvpn.local
192.168.100.66 dev.letsvpn.local
192.168.100.77 printer.letsvpn.local
主配置文件 /etc/dnsmasq.conf:
interface=eth0
listen-address=127.0.0.1,192.168.100.1
addn-hosts=/etc/dnsmasq.hosts
domain=letsvpn.local
重启 DNS 服务:
systemctl restart dnsmasq
现在,任意设备连上这个局域网后,可以直接访问:
ssh pi@nas.letsvpn.local
ping printer.letsvpn.local
是不是比背 IP 舒服多了?
4. 自动化部署脚本
我还写了一个小脚本,可以一键更新 DNS 主机映射并重启服务:
#!/bin/bash
cat <<EOF > /etc/dnsmasq.hosts
192.168.100.88 nas.letsvpn.local
192.168.100.66 dev.letsvpn.local
192.168.100.77 printer.letsvpn.local
EOF
systemctl restart dnsmasq
echo "✅ DNS 重启完成"
5. 配合 VPN 远程访问
假如你像我一样,在外用 VPN(例如 WireGuard)连家里设备,只要 VPN 连接配置中加上局域网 DNS,就可以继续使用 .letsvpn.local 这些域名来访问设备。
WireGuard 示例配置(客户端):
[Interface]
PrivateKey = ...
[Peer]
PublicKey = ...
AllowedIPs = 192.168.100.0/24
Endpoint = yourhome.domain.com:51820
DNS = 192.168.100.1
这样配置完后,即便在咖啡馆连上 VPN,我也可以直接:
rsync -avz ~/project pi@dev.letsvpn.local:/home/pi/
6. Wi-Fi 命名建议(SSID)
为了保持一致性,我的路由器也用了类似命名:
- 主网络:
letsvpn-home - 访客网络:
letsvpn-guest
访客网络启用了 VLAN 隔离,不能访问 192.168.100.x 网段,避免外人访问我的 NAS。
总结
这一套方案已经陪我跑了快两年,稳定、易维护,非常适合需要长期使用本地开发设备或远程访问的人群。
✅ 核心优点:
- 统一的设备命名:
.letsvpn.local - DHCP 分配静态 IP,避免冲突
- 本地 DNS 解析,提高访问效率
- 与 VPN 联动,实现远程内网访问
- 脚本自动部署,便于管理更新
如果你也正在搭建自己的小型局域网,可以试试这种轻量级的自动化方法。
2463

被折叠的 条评论
为什么被折叠?



