Налаштування DNS-сервера вручну - raspbian


2

Я написав простий скрипт, щоб дозволити користувачеві вручну налаштувати свою 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

У вас встановлений мережевий mangler, errh, менеджер?
тинк

Користувачі @tink матимуть дуже обмежений доступ до системи, тому менеджер мережі буде не найкращим
Zac Powell,

Я ціную це, через що я запитав :) Це просто заважає спробам вручну налаштувати речі.
Тінь

Гаразд, ви вважаєте, що сценарій "повинен" спрацювати, але можливо, що заважає налаштуванню вручну? Використовуваний raspbian є досить стандартним, тому, ймовірно, буде включати мережевий менеджер, який я просто не використовую
Зак Пауелл

Зверніть увагу , що raspberrypi.stackexchange.com і unix.stackexchange.com може допомогти вам знайти більш конкретну відповідь
Tobias Kienzler

Відповіді:


0

Пакет resvconf за замовчуванням перетворюється /etc/resolv.confна симпосилання . Якщо ви видалите символьне посилання та створите нову резолюцію.conf, вона залишиться після перезавантаження. Ви дуже близько до > /etc/resolv.confлінії, але, мабуть, це не переписує символьне посилання. Я б запропонував спочатку видалити старе символьне посилання за допомогою rm /etc/resolv.conf(або, краще, створити резервну копію mv /etc/resolv.conf /etc/resolv.conf.bak) безпосередньо перед цим рядком.


Не пощастило, як і раніше, працює IP-адреса, тому я підключений, але DNS-сервер не використовується
Zac Powell,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.