31

Если машина Ubuntu 11.04 подключена к WiFi и 3G одновременно, как мне установить приоритет, чтобы приложения (браузер и т.д.) Сначала использовали WiFi? Если это не доступно, он должен использовать 3G.

В принципе, я хотел бы установить порядок, в котором используются сетевые подключения.

Изменить: я ищу более простой подход, который был бы полезен для тех, кто просто удобен и не является экспертом в Ubuntu/Linux.

5 ответов5

18

Я удивлен, что никто не упомянул простейшую команду для этого: ifmetric . Его можно установить с помощью sudo apt-get install ifmetric . Эта команда может быть использована для изменения метрики любого интерфейса. Интерфейс с более низкой метрикой предпочтителен для Интернета.

Чтобы использовать это, сначала посмотрите метрики, используя команду route :

$ route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.42.0.1       0.0.0.0         UG    100    0        0 eth0
0.0.0.0         10.42.0.2       0.0.0.0         UG    600    0        0 wlan0

Здесь eth0 имеет более низкую метрику, поэтому она будет предпочтительнее wlan0 . Если вы хотите отдать предпочтение wlan0 , то уменьшите его показатель:

sudo ifmetric wlan0 50

Теперь таблица маршрутизации будет выглядеть так:

$ route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.42.0.2       0.0.0.0         UG    50     0        0 wlan0
0.0.0.0         10.42.0.1       0.0.0.0         UG    100    0        0 eth0

Теперь Linux будет использовать wlan0 для Интернета. Изменение будет отражено немедленно.

13

Установка метрик - это то, как вы меняете приоритеты. Более высокая метрика является более "дорогой" в использовании, поэтому ОС будет использовать интерфейсы с самой низкой метрикой, если ей нужно будет направлять трафик. В случае, если интерфейс с более низкой метрикой отключен, он будет использовать интерфейс с более высокой метрикой, поскольку он является единственным интерфейсом, который можно использовать для маршрутизации трафика в эту конкретную сеть / пункт назначения.

Метрики указаны в файле /etc/network/interfaces, ссылки на документацию.

Используйте любой текстовый редактор, чтобы редактировать файл, идентифицировать сети, просто измените параметр metric и сохраните. Перезагрузка - это самый простой способ сбросить все значения, не вдаваясь в подробности перезапуска сетевых служб.

7
  1. Приоритизация интерфейсов для общего трафика осуществляется путем манипулирования метриками маршрутизации. Каждый маршрут имеет связанные параметры, такие как количество переходов и пропускная способность. Смотрите параметр "метрика" на странице руководства для команды route .

    $ route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref     Use Iface
    0.0.0.0         192.168.1.254   255.255.255.255 U     0      0        0 eth0
    192.168.1.0     0.0.0.0         255.255.255.0   U     256    0        0 eth0
    
  2. Приоритизация доступа приложений к сетевым ресурсам часто решается путем "формирования трафика" - я бы использовал веб-поисковик, чтобы посмотреть, сможет ли это сделать Ubuntu или маршрутизатор.


Сноска.

В MS Windows, но не в Linux, команда netstat -nr выводит ту же информацию, что и route print . Включая метрики маршрутизации.

3

Я действительно не пробовал, но NCD (Network Configuration Daemon - 1) может быть использован для этой цели. Сайт утверждает, что облегчает настройку сети. Синтаксис кажется простым.

# Ожидание подключения к сети. Предпочитаю eth1, поставив его перед eth0.
list("NET-eth1", "NET-eth0") pnames;

(1) - http://code.google.com/p/badvpn/wiki/NCD

3

Это все из-за метрик маршрута. Вы хотите удалить маршрут по умолчанию с наименьшей метрикой, а затем восстановить старый маршрут с более высокой метрикой. Пожалуйста, следуйте командам ниже.

Допустим, ваша таблица маршрутизации выглядит так:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.16.87.254    0.0.0.0         UG    100    0        0 ens38
0.0.0.0         192.168.151.2   0.0.0.0         UG    101    0        0 ens33
10.16.86.64     0.0.0.0         255.255.255.248 U     100    0        0 ens38
10.16.87.254    0.0.0.0         255.255.255.255 UH    100    0        0 ens38
10.16.88.6      10.16.87.254    255.255.255.255 UGH   100    0        0 ens38
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ens38
192.168.151.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

Теперь удалите шлюз по умолчанию

# route delete default gateway

Теперь восстановите старый шлюз по умолчанию (обратите внимание, что показатель в этом случае выше 102, чем текущий маршрут по умолчанию 101)

# route add default gw 10.16.87.254 metric 102 dev ens38                                                              
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.151.2   0.0.0.0         UG    101    0        0 ens33
0.0.0.0         10.16.87.254    0.0.0.0         UG    102    0        0 ens38
10.16.86.64     0.0.0.0         255.255.255.248 U     100    0        0 ens38
10.16.87.254    0.0.0.0         255.255.255.255 UH    100    0        0 ens38
10.16.88.6      10.16.87.254    255.255.255.255 UGH   100    0        0 ens38
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ens38
192.168.151.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .