Сделайте так, чтобы 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 при подключении через локальную сеть?
РЕДАКТИРОВАТЬ 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 — высший приоритет и так далее.