
У меня есть домашний headless-сервер, который загружается с (и имеет корневую файловую систему) съемного USB-накопителя. Я устанавливаю его со своего ноутбука (следуя этомухороший контрольный список) и отредактируйте файлы конфигурации по мере необходимости. В идеале я хотел бы иметь возможность полностью настроить систему, пока USB-накопитель подключен к моему ноутбуку, чтобы после подключения к серверу она сразу загружалась на многопользовательском уровне с включенной сетью и запущенным демоном SSH.Желаемая мной конфигурация сети очень проста: она имеет одну интегрированную сетевую карту MOBO, которую я хочу настроить статически.
Основная проблема, которую я обнаружил, заключается в том, что я (достоверно) не знаю, какое имя интерфейса будет назначено моей сетевой карте. До сих пор слепое использование eth0
in /etc/network/interfaces
делало свое дело, однако в последний раз, когда я переустанавливал, он переключился наПредсказуемые имена сетевых интерфейсови мне пришлось тащить монитор и клавиатуру, чтобы войти в систему локально и устранить неполадки.
Так как же мне избежать подобной боли в будущем?
решение1
Я думаю, что самое простое и практичное решение — вернуться к классическому поведению.
- В конфигурации загрузчика USB-накопителя (например, в конфигурации grub2) добавьте параметр
net.ifnames=0
в командную строку ядра. - Продолжайте использовать
eth0
в/etc/network/interfaces
.
Учитывая описанную вами ситуацию и акцент, который вы сделали на простоте, это кажется уместным. Просто имейте в виду, ifupdown
что может устареть и перестанет /etc/network/interfaces
работать в будущем, если вы слишком поторопитесь с обновлением/модернизацией.
решение2
Если вы модернист, вы можете перейти на использование systemd-networkd
вместо обычного метода статической конфигурации. Смотрите man systemd.network
; основная идея заключается в удалении /etc/network/interfaces
и создании вместо /etc/systemd/network/static.network
этого типа
[Network]
Address=1.2.3.4/26
Gateway=1.2.3.3
Не забудьте systemctl enable systemd-networkd
также.
решение3
Предсказуемая схема именования сетевых интерфейсов создана для решения именно этой проблемы получения разных имен для интерфейса в разное время. Это означает, что с этим изменением ваша проблема должна исчезнуть (до следующего изменения именования интерфейсов в systemd