Як "перезапустити" конкретний мережевий інтерфейс на RHEL?


18

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

"Тільки одна команда", тому що це єдиний інтерфейс, де sshпрацює і мій . Тож якщо я збираюсь скористатися: ifdownі тоді ifupя ніколи не зможу потрапити на ifupкоманду, оскільки моя sshбула припинена один раз після ifdown eth1команди.

Отже, повинна бути одна команда, яка дозволяє мені повністю збити, а потім вивести інтерфейс, який обслуговує моє поточне sshз'єднання. Тож мені не потрібно турбуватися про з’єднання, повністю втрачене до мого сервера.

Будь-яка ідея, будь ласка?

Відповіді:


27

Ви можете використовувати:

ifdown eth1 && ifup eth1

Як єдину команду. && просто виконує одну команду, потім іншу, якщо перша команда успішна . Якщо вам потрібно використовувати sudo, обов'язково використовуйте його перед кожною командою:

sudo ifdown eth1 && sudo ifup eth1

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

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

Я часто використовую цю техніку для "перезавантаження" інтерфейсу, але, як правило, доступний резервний метод доступу на випадок, коли я це роблю.


це плюс управління OOB FTW
dmourati

3
Я можу запропонувати ifdown eth1 && ifup eth1, таким чином ifup не запускається, якщо ifdown не вдався, тоді як з ;ifup буде працювати незалежно від того, як ifdown повернувся.
замнути

@zamnuts Відповідь відредаговано так, щоб включити це :)
David Gardner

1

Ви можете «перезапустити» один інтерфейс, видавши наступні команди:

# ifdown eth1
# ifup eth1

Після цього ви можете переконатися, що ваша нова конфігурація активна

# ip a

Вибачте, але мені потрібно .. "Тільки одна команда", тому що це єдиний інтерфейс, на якому працює і моя ssh. Тож якщо я збираюся використовувати: ifdown, а потім ifup, я ніколи не зможу потрапити на команду ifup, оскільки моє ssh було припинено один раз після команди ifdown eth1. Отже, повинна бути одна команда, яку я можу збити, а потім піднести інтерфейс, який обслуговує моє поточне з'єднання ssh. Тому мені не потрібно турбуватися про втрату з'єднання з моїм сервером.
夏 期 劇場

Ви можете зробити їх сценарієм оболонки і запустити це, ваш ssh-сеанс не повинен припинятися, навіть якщо буде коротке мережеве затемнення. Інший варіант - запустити цей скрипт всередині екранного сеансу, де він буде виконаний до кінця, навіть якщо ваш ssh-сеанс не вдасться.
jerQ

1
чи допоможе це? ifdown eth1 ; ifup eth1?
夏 期 劇場

0

Ви намагаєтесь змінити IP-адресу (або будь-який параметр інтерфейсу для цього питання) інтерфейсу на віддаленій машині? Якщо відповідь "так", ви можете спробувати одне з наступних:

Класний метод - це використання утиліти екрана для створення сеансу, просто набравши "екран". Після перезапуску послуги мережі і підключення до 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 хвилин, щоб попередня конфігурація була повторно застосована і мережа послуга була перезапущена.


-3

всі відповіді, що говорять про ifup & ifdown, не відповідають питанню. ifup & ifdown просто приносять інтерфейс лише вгору та вниз, це не впливає на послугу мережі. для сервісу мережі Linux не означає лише налаштування ip для інтерфейсів.

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


1
Я не впевнений, що ти робиш за те, ОП не запитує про перезапуск послуги мережі , а лише перезапуск індивідуального інтерфейсу . Більше того, ОП прийняв відповідь, в якій явно використовуються команди, які ви рекомендуєте. -1 від мене.
MadHatter підтримує Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.