Сделайте так, чтобы NetworkManager предпочитал Ethernet вместо Wi-Fi, если оба присутствуют

Аналогичный вопрос был задан для окон. Автоматически предпочитаю Ethernet, а не WLAN, но я использую Linux и использую NetworkManager.

Прямо сейчас, если кабель Ethernet подключен и доступен, когда также доступны соединения Wi-Fi.NETworkManager выбирает соединение Wi-Fi. Как я могу сказать ему всегда выбирать проводное соединение, если оно доступно?

Я на Fedora 17 использую NetworkManager-0.9.4.0-9.git20120521

3 ответа

Решение

Всего пара вещей:

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

  • автоматический Ethernet
  • auto ethX (замените X на любой номер, который назначит ваше ядро ​​(запустите ifconfig, чтобы проверить))

Кроме того, вы можете посмотреть на ваши IP-маршруты, найденные с помощью команды:

sudo route -n

Посмотрев на вывод, посмотрите, есть ли wlan0 на всех маршрутах.

В связи с этим было задано несколько других вопросов, и единственный способ заставить Linux отдавать предпочтение интерфейсу (по умолчанию это eth0, но в вашем случае что-то пошло не так) - манипулировать метриками.

Вы можете настроить метрику для интерфейса, используя ifmetric, который манипулирует метрикой в ​​указанном вами интерфейсе. Я не проверял это на Fedora как таковой, но я вижу, что это в репозиториях. Итак, выпустите:

yum install ifmetric

Затем, когда он установлен, вы захотите перейти к:

/etc/network/interfaces

Используйте vi, nano, emacs, любой редактор, который вы используете, а затем добавьте под любым интерфейсом, который вы хотите настроить (в данном случае eth0):

up ifmetric eth0 X

X относится к числу, определяющему приоритет, 0 по умолчанию является наивысшим приоритетом, но чтобы избежать попадания в статические маршруты / маршруты по умолчанию, используйте что-то выше 2. Тогда вы захотите добавить более высокое число в wlan0. Так:

up ifmetric eth0 10

и под wlan0:

up ifmetric wlan0 20

Ваш файл должен выглядеть так:

 iface eth0 inet dhcp
    up ifmetric eth0 10

iface wlan0 inet dhcp
    up ifmetric wlan0 20

Дайте нам знать, если это поможет!

РЕДАКТИРОВАТЬ: Просто наткнуться на несколько ссылок:

Как мне настроить машину linux на игнорирование wifi при подключении через локальную сеть?

Как мне установить приоритет сетевых подключений в Ubuntu?

РЕДАКТИРОВАТЬ 2:

В GUI Network Manager также есть поле метрики!

Примечание: @Proxy пользователя ответ служил мне в качестве основы для моего ответа.


Вы можете сделать это, используя nmcli (Интерфейс командной строки NetworkManager), устанавливать не нужно ifmetric.

Все, что вам нужно сделать, это установить ipv4.route-metric параметр каждой требуемой сети до некоторого положительного целого числа (по умолчанию -1); чем меньше число, тем выше приоритет. После этого вам нужно повторно подключиться ко всем измененным / нужным сетям (простой up достаточно, не нужно их переворачивать down первый).

# List of connections
# You need to get the connection name (first column)
nmcli con

# Set the `ipv4.route-metric` of each required network
# Change the `$con_name_x` and integer as required
nmcli con mod $con_name_1 ipv4.route-metric 20  # This connection is more prefered
nmcli con mod $con_name_2 ipv4.route-metric 40  # This connection is less prefered

# Reconnect the networks
nmcli con up $con_name_1
nmcli con up $con_name_2

Вы также можете установить ipv6.route-metric для каждой сети.

NetworkManager имеет графический интерфейс с именемnetworkmanager-connection-editorилиnm-connection-editor, где можно установить приоритеты для отдельных подключений.

0 — высший приоритет и так далее.

Другие вопросы по тегам