#!/bin/bash
# Скрипт настройки DNS на macOS и Linux
# Запускать: sudo ./set-dns-mac-linux.sh

DNS="195.63.145.209"
DNS2="8.8.8.8"

if [ "$(id -u)" -ne 0 ]; then
    echo "Нужен sudo. Запусти: sudo $0"
    exit 1
fi

OS=$(uname -s)
echo "Система: $OS"
echo "Устанавливаю DNS: $DNS"

if [ "$OS" = "Darwin" ]; then
    # macOS
    SERVICES=$(networksetup -listallnetworkservices 2>/dev/null | grep -v "^\*" | tail -n +2)
    while IFS= read -r SVC; do
        [ -z "$SVC" ] && continue
        INFO=$(networksetup -getinfo "$SVC" 2>/dev/null)
        if echo "$INFO" | grep -q "IP address:"; then
            echo "  Сервис: $SVC"
            networksetup -setdnsservers "$SVC" "$DNS" "$DNS2"
            echo "  DNS установлен."
        fi
    done <<< "$SERVICES"

elif [ -f /etc/systemd/resolved.conf ]; then
    # Linux с systemd-resolved
    CONF=/etc/systemd/resolved.conf.d/custom-dns.conf
    mkdir -p /etc/systemd/resolved.conf.d
    cat > "$CONF" <<EOF
[Resolve]
DNS=$DNS $DNS2
FallbackDNS=1.1.1.1
EOF
    systemctl restart systemd-resolved
    echo "  DNS установлен через systemd-resolved."

elif [ -f /etc/resolv.conf ]; then
    # Классический Linux
    cp /etc/resolv.conf /etc/resolv.conf.bak
    {
        echo "nameserver $DNS"
        echo "nameserver $DNS2"
        echo "nameserver 1.1.1.1"
    } > /etc/resolv.conf
    echo "  DNS установлен через /etc/resolv.conf"
    echo "  Резервная копия: /etc/resolv.conf.bak"
fi

echo ""
echo "Готово! DNS: $DNS (резерв: $DNS2)"
