Ручная настройка DNS-сервера - raspbian

Я написал простой скрипт, позволяющий пользователю вручную настраивать свой IP-адрес и DNS-сервер.
DNS-серверы изменяются путем создания нового /etc/resolv.conf файл со строками, введенными пользователем, например, файл может выглядеть следующим образом:

nameserver 12.34.56.78
nameserver 12.34.56.79

однако после перезагрузки эти изменения, кажется, не работают, и использование DNS не удается.

Я все еще могу пинговать IP-адрес, но пытается пинговать сайты терпят неудачу.

Ниже приведен полный сценарий, дайте знать как вы думаете, проблема может быть.

#!/bin/bash

# wipes any corrent set up
> /etc/network/interfaces

echo "Automatic DHCP or Manual?,(D/M) followed by [ENTER]:"
read network

if [ $network == "D" ]; then
    echo "auto lo" >> /etc/network/interfaces

    echo "iface lo inet loopback" >> /etc/network/interfaces
    echo "iface eth0 inet dhcp" >> /etc/network/interfaces
    echo "iface default inet dhcp" >> /etc/network/interfaces
    echo "Network set up!"
    exit 0
fi

if [ $network == "M" ]; then
    echo "Enter IP address (e.g 192.168.0.7), followed by [ENTER]:"
    read address
    echo "Enter Netmask (e.g 255.255.255.0, followed by [ENTER]:"
    read mask
    echo "Enter router IP (e.g 192.168.0.1), followed by [ENTER]:"
    read router
    echo "Enter first DNS server (e.g 8.8.8.8), followed by [ENTER]:"
    read dns1
    echo "Enter second DNS server (e.g 8.8.8.8), followed by [ENTER]:"
    read dns2

    echo "auto lo" >> /etc/network/interfaces
    echo "iface lo inet loopback" >> /etc/network/interfaces

    echo "iface eth0 inet static" >> /etc/network/interfaces
    echo "  address $address" >> /etc/network/interfaces    
    echo "  netmask $mask" >> /etc/network/interfaces
    echo "  gateway $router" >> /etc/network/interfaces

    echo "iface default inet dhcp" >> /etc/network/interfaces

    > /etc/resolv.conf
    echo "nameserver $dns1" >> /etc/resolv.conf
    echo "nameserver $dns2" >> /etc/resolv.conf

    echo "Network set up!"
    exit 0

fi

echo "ERROR: you do not enter D or M";
exit 0

сценарий был основан на Информация для ручной настройки нашли здесь http://wiki.debian.org/NetworkConfiguration

при использовании автоматического DHCP /etc / resolv.conf содержит:

domain zyxel.com
search zyxel.com
nameserver 192.168.1.1
9
задан Zac Powell
05.04.2023 15:21 Количество просмотров материала 3070
Распечатать страницу

1 ответ

пакет resolvconf по умолчанию делает /etc/resolv.conf в ссылке. Если удалить символическую ссылку и создать новый resolv.conf он будет придерживаться после перезагрузки. Вы очень близки с > /etc/resolv.conf линии, но, видимо, это не заменить симлинк. Я бы предложил сначала удалить старую символическую ссылку с rm /etc/resolv.conf (или лучше, резервное копирование mv /etc/resolv.conf /etc/resolv.conf.bak) просто до этого линии.

0
отвечен ssmy 2023-04-06 23:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх