Используйте команду ip в первый раз, и результат катастрофический: Временный сбой в разрешении имени.

Вопрос или проблема

Мой дистрибутив Linux – Debian 12.8.0, 64bit, английский.

Я установил пакеты ifupdown, iproute2 и macchanger

Я изучил ниже приведенные публикации, прежде чем попросить о помощи здесь:

Команда iproute2 для включения IPv4-адреса

ip link set не присваивает IP-адрес, но ifup – да

Руководство пользователя iproute2, ориентированное на задачи

Примечание: У меня нет проблем с подъемом и опусканием сетевого интерфейса с помощью пакета ifupdown, и я могу получить доступ в интернет.

Содержимое /etc/network/interfaces выглядит так

# Этот файл описывает сетевые интерфейсы, доступные на вашей системе
# и как их активировать. Для получения дополнительной информации см. interfaces(5).

source /etc/network/interfaces.d/*

# Сетевой интерфейс петли
#auto lo
#iface lo inet loopback

# Основной сетевой интерфейс
#allow-hotplug enxfe5953ed38a0
#iface enxfe5953ed38a0 inet static
#   address 192.168.1.50/24
#   gateway 192.168.1.1
    # параметры dns-* реализованы пакетом resolvconf, если он установлен
#   dns-nameservers 9.9.9.9 149.112.112.112

Содержимое /etc/network/script/home-lan выглядит так

# Основной сетевой интерфейс
allow-hotplug enxfe5953ed38a0
iface enxfe5953ed38a0 inet static
    address 192.168.1.50/24
    netmask 255.255.255.0
    gateway 192.168.1.1
    # параметры dns-* реализованы пакетом resolvconf, если он установлен
    dns-nameservers 1.1.1.1 8.8.8.8

Я создал скрипт bash с названием lan-new-up, сделал его исполняемым и поместил в /usr/local/bin

Его содержимое:

#!/bin/bash
sudo macchanger -r enxfe5953ed38a0
sudo cp /etc/network/script/home-lan /etc/network/interfaces.d 
#sudo ifup enxfe5953ed38a0
sudo ip link set dev enxfe5953ed38a0 up
sudo ip address add 192.168.1.50/24 dev enxfe5953ed38a0
sudo ip route add default via 192.168.1.1 dev enxfe5953ed38a0

После выполнения скрипта lan-new-up я получил ошибку, как показано ниже:

username@hostname:~$ lan-new-up
[sudo] пароль для username: 
Текущий MAC:   02:b3:c2:9f:0a:90 (неизвестный)
Постоянный MAC: 02:b3:c2:9f:0a:90 (неизвестный)
Новый MAC:       fe:59:53:ed:38:a0 (неизвестный)
username@hostname:~$ ping yahoo.com
ping: yahoo.com: Временная ошибка разрешения имени

Спасибо за вашу помощь.

Ваш скрипт просто повторяет параметры “address/netmask” и “gateway” из ifupdown, но забыл продублировать настройку “dns-nameservers”.

DNS не управляется через ip; он настраивается через /etc/resolv.conf (обычно).

  • Если в системе установлен инструмент resolvconf, как упоминается в вашей конфигурации ifupdown, то его необходимо использовать для добавления записей в resolv.conf, так как это помогает различным инструментам сотрудничать:

    echo "nameserver 1.1.1.1" | resolvconf -a enxfe5953ed38a0
    
    resolvconf -a enxfe5953ed38a0 <<END
    nameserver 1.1.1.1
    nameserver 8.8.8.8
    END
    
  • Если в системе установлен systemd-resolved и resolvectl (и служба systemd-resolved запущена), то вместо этого следует использовать его:

    resolvectl dns enxfe5953ed38a0 1.1.1.1 8.8.8.8
    

    Когда используется systemd-resolved, /etc/resolv.conf должен указывать на 127.0.0.53.

  • Если ни одно из них не установлено, то вам нужно вручную отредактировать /etc/resolv.conf:

    /etc/resolv.conf
    nameserver 1.1.1.1 nameserver 8.8.8.8

Ответ или решение

Проблема с временным сбоем разрешения имени после выполнения скрипта на Debian 12.8.0

Ваша проблема заключается в том, что после выполнения скрипта lan-new-up, вы получаете ошибку "Temporary failure in name resolution", что указывает на невозможность разрешения доменного имени. Разберем возможные причины и решения этой ситуации.

Анализ

При использовании команды ip для настройки сетевого интерфейса вы правильно настроили IP-адрес и маршрут по умолчанию, но в вашем скрипте отсутствует настройка DNS, что является основной причиной проблемы. Чтобы интернет-соединение работало корректно, системе необходимо знать, какие DNS-сервера использовать для разрешения доменных имен.

Настройка DNS

В вашем случае вы упомянули, что в файле /etc/network/interfaces указаны DNS-серверы, но при использовании ip для управления настройками сети они не применяются автоматически. Существует несколько способов задать DNS-серверы:

  1. Использование resolvconf:
    Если у вас установлен инструмент resolvconf, вы можете добавить DNS-серверы следующим образом:

    echo "nameserver 1.1.1.1" | resolvconf -a enxfe5953ed38a0
    resolvconf -a enxfe5953ed38a0 <<END
    nameserver 1.1.1.1
    nameserver 8.8.8.8
    END
  2. Использование systemd-resolved:
    Если ваша система использует systemd-resolved, используйте команду resolvectl:

    resolvectl dns enxfe5953ed38a0 1.1.1.1 8.8.8.8

    Убедитесь, что файл /etc/resolv.conf указывает на 127.0.0.53.

  3. Редактирование файла /etc/resolv.conf вручную:
    Если ни один из вышеперечисленных методов не доступен, вы можете вручную добавить DNS-сервера в файл /etc/resolv.conf:

    echo "nameserver 1.1.1.1" | sudo tee -a /etc/resolv.conf
    echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf

Изменение скрипта

С учетом описанных выше рекомендаций вам следует обновить ваш скрипт lan-new-up, добавив туда конфигурацию DNS. Например:

#!/bin/bash
sudo macchanger -r enxfe5953ed38a0
sudo cp /etc/network/script/home-lan /etc/network/interfaces.d 
sudo ip link set dev enxfe5953ed38a0 up
sudo ip address add 192.168.1.50/24 dev enxfe5953ed38a0
sudo ip route add default via 192.168.1.1 dev enxfe5953ed38a0

# Настройка DNS
echo "nameserver 1.1.1.1" | resolvconf -a enxfe5953ed38a0
echo "nameserver 8.8.8.8" | resolvconf -a enxfe5953ed38a0

Заключение

Ваша основная проблема заключается в отсутствии настройки DNS в вашем скрипте, что является критически важным для корректной работы интернет-соединения. Применив одно из предложенных решений, вы сможете устранить ошибку "Temporary failure in name resolution" и восстановить доступ к интернету. Не забудьте проверить соединение после внесения изменений, запустив команду ping.

Если у вас остались вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться.

Оцените материал
Добавить комментарий

Капча загружается...