Назад | Перейти на главную страницу

Как «перезапустить» определенный сетевой интерфейс на RHEL?

В RHEL вместо использования service network restart команда, как я могу перезапустить определенный сетевой интерфейс, скажем "eth1", с помощью только одной команды.

"Только одна команда", потому что это единственный интерфейс, в котором мои ssh также работает. Итак, если я собираюсь использовать: ifdown а потом ifup, я никогда не смогу ударить ifup командовать как мой ssh был прекращен один раз после ifdown eth1 команда.

Таким образом, должна быть одна команда, которая позволяет мне полностью отключить, а затем вызвать интерфейс, который обслуживает мой текущий ssh подключение. Так что мне не нужно беспокоиться о полной потере соединения с моим сервером.

Есть идеи, пожалуйста?

Ты можешь использовать:

ifdown eth1 && ifup eth1

Как единая команда. && просто запускает одну команду, затем другую если первая команда успешна. Если вам необходимо использовать sudo, убедитесь, что вы используете его перед каждой командой:

sudo ifdown eth1 && sudo ifup eth1

Пока ваш интерфейс настроен на наличие необходимого IP-адреса и маршрута в соответствии с текущей конфигурацией, ваше ssh-соединение не разорвется.

Если вы беспокоитесь об использовании его на производственном сервере, к которому у вас нет другого метода доступа, это понятно. Хотя команда делает именно то, что вы хотите, очень легко получить ошибку конфигурации, которая заметна только после выполнения этой команды. Если у вас нет альтернативного метода доступа (например, внеполосная консоль или SSHD, работающий на другом интерфейсе), безопаснее всего этого не делать..

Я часто использую эту технику для «перезапуска» интерфейса, но обычно у меня есть резервный метод доступа, доступный на всякий случай, когда я это сделаю.

Вы можете перезапустить один интерфейс, введя следующие команды:

# ifdown eth1
# ifup eth1

После этого вы можете убедиться, что ваша новая конфигурация активна.

# ip a

Вы пытаетесь изменить IP-адрес (или любой параметр интерфейса в этом отношении) интерфейса на удаленном компьютере? Если ответ положительный, вы можете попробовать одно из следующего:

Классный метод - использовать утилиту screen для создания сеанса, просто набрав «screen». После перезапуска сетевой службы и разрыва соединения SSH используйте экран -ls чтобы убедиться, что сеанс все еще активен (но отсоединен) и экран -r чтобы возобновить отключенный сеанс. Это сработает, если в вашем файле конфигурации интерфейса нет ошибки, т.е. сетевая служба успешно перезапущена.

Вы также можете использовать следующий прием:

$ cp -v current_conf_file current_conf_file.bak
$ echo "mv current_conf_file.bak current_conf_file && service network restart" | at now+10min

И приступайте к редактированию файла конфигурации интерфейса и перезапуску сетевой службы. В случае ошибки вам просто нужно подождать 10 минут, чтобы повторно применить предыдущую конфигурацию и перезапустить сетевую службу.

все ответы, говорящие о ifup и ifdown, не соответствуют вопросу. ifup и ifdown только активируют и отключают интерфейс, это не влияет на сетевую службу. для сетевой службы linux не означает только настройку IP интерфейсов.

пожалуйста, проверьте /etc/rc.d/network скрипт для получения более подробной информации.