Этот ответ аналогичен приведенному выше, но использует конфигурацию примера вопросов для ответа на вопрос. Кроме того, это объясняет, почему необходимы обе команды.
Редактировать /etc/network/interfaces
:
iface eth0 inet static address 192.168.3.3 netmask 255.255.255.0 gateway 192.168.3.1 dns-search example.com dns-nameserver 192.168.3.45 dns-nameserver 192.168.8.10
Эти изменения не произойдут, если вы не перезагрузите или не перезагрузите файл конфигурации:
Для того, чтобы обновить файл интерфейсов в реальном времени, необходимо выполнить следующую команду:
echo "nameserver 192.168.3.45nameserver 192.168.8.10search example.com" | sudo resolvconf -a eth0.inet
Это позволяет обновлять интерфейс без перезагрузки или перезагрузки.
Однако вышеуказанные изменения команды будут потеряны после перезагрузки, если изменения в /etc/network/interfaces
не сделаны.
Кстати, последний ответ от BDenis в этом списке на самом деле работает вместо последней команды, анализируя /etc/network/interfaces
файл и передача этих строк в команду sudo resolvconf -a eth0
На самом деле это половина ответа и действительно хороший пример встроенного синтаксического анализа sed. Если вы хотите посмотреть, как он это делает, просто запустите первую часть команды и посмотрите, как она анализирует /etc/network/interfaces
файл и выпишите всю необходимую информацию, необходимую для запуска sudo resolvconf -a eth0
команда:
sed 's/#.*$//' /etc/network/interfaces | grep dns- | sed 's/dns-//g'
Обратите внимание, что это приведет к тому же результату out put, что и команда:
echo "nameserver 192.168.3.45nameserver 192.168.8.10search example.com"
При условии, что /etc/network/interfaces
файл настроен с этой информацией:
iface eth0 inet static address 192.168.3.3 netmask 255.255.255.0 gateway 192.168.3.1 dns-search example.com dns-nameserver 192.168.3.45 dns-nameserver 192.168.8.10