softroute/gateway/10_dhcp_dns.sh
2025-12-04 08:07:17 +08:00

33 lines
886 B
Bash
Executable File

#!/bin/bash
source ./00_env.sh
set -euo pipefail
if [[ $EUID -ne 0 ]]; then echo "请用 root/sudo 运行"; exit 1; fi
apt update
apt install -y dnsmasq ipset curl || true
cat >/etc/dnsmasq.d/lan.conf <<EOL
interface=$LAN_IF
bind-interfaces
dhcp-range=${LAN_IP_START},${LAN_IP_END},12h
dhcp-option=3,$LAN_GW
dhcp-option=6,$LAN_GW
server=$FOREIGN_DNS1
server=$FOREIGN_DNS2
EOL
curl -fsSL "$DNSMASQ_CHINA_URL" -o /tmp/accelerated.domains || true
echo "# Auto-generated China domains" > "$DNSMASQ_CHINA_FILE"
while IFS= read -r domain; do
[[ -z "$domain" || "$domain" =~ ^# ]] && continue
d=$(echo "$domain" | awk '{print $1}')
echo "server=/$d/$CHINA_DNS1" >> "$DNSMASQ_CHINA_FILE"
echo "server=/$d/$CHINA_DNS2" >> "$DNSMASQ_CHINA_FILE"
done < /tmp/accelerated.domains
systemctl restart dnsmasq || true
systemctl enable dnsmasq || true
echo "DHCP + 国内 DNS 配置完成"