Как в Windows выбрать подключение, используемое для Интернета

Оглавление

1. Выбор подключения к Интернету

2. Изменение маршрута по умолчанию в Windows

3. Как установить метрику для сетевых подключений в Windows

4. Особенности применения команды route CHANGE в Windows

5. Создание постоянных маршрутов, сохраняющихся после перезагрузки

6. Справка по команде ROUTE


Если у вас Linux, то смотрите статью «Практика настройки сетевых маршрутов: выбор подключения, используемое для Интернета; одновременное использование нескольких подключений для разных целей». В ней же вы найдёте дополнительные трюки для манипуляции сетевыми маршрутами, которые будут работать, в том числе, и на Windows.

Выбор подключения к Интернету

Компьютер может быть подключён сразу к нескольким сетям: например, к проводной сети и к беспроводной; или к двум Wi-Fi сетям; или использовать телефон в качестве модема через Bluetooth и при этом быть подключённым к проводной и Wi-Fi сети; или быть подключённым к четырём Wi-Fi сетям – да что угодно!

Если вы выходите в Интернет, как операционная система выбирает, какое именно из нескольких подключений использовать? Система действует очень мудро – она не пренебрегает ни одним из подключений. И в случае потери связи с одним из них – использует другое.

Но ведь ей в любом случае нужно выбрать, какое подключение использовать в данный момент! И система опять поступает мудро – она использует лучшее подключение. Чтобы узнать, какое подключение является лучшим, для каждого из них вычисляется так называемая Метрика – условное значение, которое учитывает сразу несколько параметров – скорость сети, потери пакетов и другое.

Рассмотрим реальный пример. Мой компьютер подключён к двум Wi-Fi сетям. Чтобы узнать характеристики маршрутов, откроем командную строку Windows, для этого нажмите Win+x, и выберите Windows PowerShell (Администратор). В открывшемся окне командной строки наберите команду

route print

Особое внимание обратите на строки:

Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.49 55
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.43 70

Сетевой адрес 0.0.0.0 и маска сети 0.0.0.0 это обозначение маршрута по умолчанию (default route). Это тот маршрут, куда отправляется трафик, для которого явно не прописан другой маршрут.

Например, там же мы можем увидеть строку

192.168.56.0 255.255.255.0 On-link 192.168.56.1 281

В ней есть сетевой адрес 192.168.56.0 с маской подсети 255.255.255.0 – то есть это любые IP адреса в диапазоне 192.168.56.0-192.168.56.255. Так вот, для этих адресов явно прописан маршрут – они будут отправлены в 192.168.56.1.

Но если будет запрошен любой другой IP, который отсутствует в таблице (т.е. для которого не указан конкретный маршрут), то он будет отправлен по маршруту по умолчанию – это то, что указано для сети 0.0.0.0 с маской 0.0.0.0. Самым типичным трафиком, отправляемым по default route является Интернет-трафик (а также трафик в другие локальные сети, к которым ваш компьютер непосредственно не подключён – но для домашних сетей это редкая ситуация).

Для выбора Интернет-подключения по умолчанию нужно изменить маршрут по умолчанию.

Изменение маршрута по умолчанию в Windows

Вернёмся к ранее полученным данным о маршруте по умолчанию:

Из него следует, что у одного из моих интерфейсов IP адрес 192.168.0.49 и у него метрика равна 55, у другого сетевого интерфейса IP 192.168.1.43 и метрика равна 70. Выигрывает тот маршрут, у которого значение метрики меньше (чем меньше метрика, тем лучше подключение).

Таким образом, если я будут выходить в Интернет, то будет использоваться сетевой интерфейс 192.168.0.49.

Убедимся в этом сразу несколькими способами. Запомним наши IP адреса, как их видят внешний сервисы. Для этого перехожу на https://suip.biz/ru/?act=myip:

Я получил, что мой IP 109.126.249.183, а мой локальный IP 192.168.0.49. В командной строке Windows делаю трассировку:

.\TRACERT.EXE suip.biz

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

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

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

Чтобы было понятно, покажу на конкретном примере. У меня два сетевых интерфейса с IP адресами:

  • 192.168.0.49 (имеет шлюз 192.168.0.1) – используется по умолчанию
  • 192.168.1.43 (имеет шлюз 192.168.1.1) – хочу чтобы он использовался по умолчанию

Для этого удаляю все маршруты по умолчанию:

route DELETE 0.0.0.0

Теперь добавляю тот, который я хочу сделать маршрутом по умолчанию, командой вида:

route ADD 0.0.0.0 MASK 0.0.0.0 ШЛЮЗ

В ней ШЛЮЗ нужно заменить на IP адрес шлюза (роутера) того интерфейса, через который вы хотите выходить в Интернет. Для меня это:

route ADD 0.0.0.0 MASK 0.0.0.0 192.168.1.1

На данном этапе уже вернулось Интернет-подключение и если вам достаточного одного подключения, то можно не продолжать.

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

Для его добавления используется команда следующего вида:

route ADD 0.0.0.0 MASK 0.0.0.0 ШЛЮЗ METRIC 100

Обратите внимание, что вместо ШЛЮЗ нужно вписать IP адрес шлюза «резервного» интерфейса. Также значение является не абсолютным, а относительным!!! Помните об этом, что указанная величина ДОБАВЛЯЕТСЯ к тому значению метрики, которое рассчитывает операционная система. Значение 100 можно поменять на другое (например, 50). Но выбирайте его так, чтобы значение в сумме с рассчитанной метрикой было больше, чем метрика подключения, которое мы хотим использовать по умолчанию.

Моя команда:

route ADD 0.0.0.0 MASK 0.0.0.0 192.168.0.1 METRIC 100

Проверяем:

route print

Как видим, в маршрутах по умолчанию по-прежнему доступно два сетевых интерфейса. Но теперь интерфейс 192.168.0.49 имеет очень большое значение метрики, поэтому по умолчанию будет применяться сетевой интерфейс 192.168.1.43.

Проверим IP в браузере https://suip.biz/ru/?act=myip:

Как видим, поменялся и внешний IP (был 109.126.249.183, а стал 213.167.219.207) и локальный (был 192.168.0.49, а стал 192.168.1.43).

В командной строке Windows делаю трассировку:

.\TRACERT.EXE suip.biz

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

Особенности применения команды route CHANGE в Windows

Необходимо отметить пару моментов в поведении команды route, которые является контринтуитивными (мы ждём одного результата, а получаем другой, неожиданный результат).

Маршруты, в том числе маршрут по умолчанию, можно не удалять/добавлять, а изменять с помощью команды route CHANGE. Но помните об особенности этой команды, если у вас установлено два или более маршрута по умолчанию: она удалит ВСЕ маршруты и впишет один новый, который указан с этой командой! На первый взгляд это неочевидно, но если подумать, то становится понятно, почему она действует именно таким образом.

Хотя об этом уже было сказано выше, значение метрики является ОТНОСИТЕЛЬНЫМ! То значение, которое вы устанавливаете для метрики, добавляется к рассчитываемому системой значению. При этом оно постоянно плавает: то есть система регулярно пересчитывает значения метрики, но к каждому полученному числу добавляет то, которое вы указали с командой route ADD.

Создание постоянных маршрутов, сохраняющихся после перезагрузки

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

С помощью ключа -p можно создавать постоянный маршруты, которые будут сохранены после перезагрузке.

Пример команды добавления постоянного маршрута:

route -p add 192.168.50.0 mask 255.255.255.0 192.168.1.170 if <interface_ID>

Часть if <interface_ID> является опциональной для всех команд.

Номера интерфейсов можно посмотреть командой route print (в самом верху вывода):

Номера интерфейсов идут в первом столбике – перед MAC-адресами.

Кроме опции -p, команда route имеет ещё несколько опций, рассмотрим их.

Справка по команде ROUTE

Обработка таблиц сетевых маршрутов.
ROUTE [-f] [-p] [-4|-6] <команда> [<назначение>]
[MASK <маска_сети>] [<шлюз>] [METRIC <метрика>]
[IF <интерфейс>]
-f Очистка таблиц маршрутов от всех записей шлюзов. При указании
одной из команд таблицы очищаются до выполнения команды.
-p При использовании с командой ADD маршрут
сохраняется после перезагрузок системы. По умолчанию маршруты
не сохраняются при перезагрузке. Пропускается для остальных
команд, всегда изменяющих соответствующие постоянные маршруты.
-4 Принудительное использование протокола IPv4.
-6 Принудительное использование протокола IPv6.
<команда> Одна из следующих команд:
PRINT Печать маршрута
ADD Добавление маршрута
DELETE Удаление маршрута
CHANGE Изменение существующего маршрута
<назначение> Задает узел.
MASK Далее следует значение параметра "маска_сети".
<маска_сети> Значение маски подсети для записи данного маршрута.
Если этот параметр не задан, по умолчанию используется
значение 255.255.255.255.
<шлюз> Шлюз.
<интерфейс> Номер интерфейса для указанного маршрута.
METRIC Определение метрики, т. е. затрат для узла назначения.
Проводится поиск всех символических имен узлов в файле сетевой базы данных
NETWORKS. Проводится поиск символических имен шлюзов в файле базы данных имен
узлов HOSTS.
Для команд PRINT и DELETE можно указать узел или шлюз с помощью подстановочного
знака либо опустить параметр "шлюз".
Если узел содержит подстановочный знак "*" или "?", он используется
в качестве шаблона и печатаются только соответствующие ему маршруты. Знак "*"
соответствует любой строке, а "?" - любому знаку.
Примеры: 157.*.1, 157.*, 127.*, *224*.
Соответствие шаблону поддерживает только команда PRINT.
Диагностические сообщения:
Недопустимое значение MASK вызывает ошибку, если (УЗЕЛ МАСКА) != УЗЕЛ.
Например> route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1
Добавление маршрута завершится ошибкой, так как указан
недопустимый параметр маски. (Узел & Маска) != Узел.
Примеры:
> route PRINT
> route PRINT -4
> route PRINT -6
> route PRINT 157* .... Печать только узлов, начинающихся со 157
> route ADD 157.0.0.0 MASK 255.0.0.0 157.55.80.1 METRIC 3 IF 2
узел^ ^маска ^шлюз метрика^ ^
интерфейс^
Если IF не задан, то производится попытка найти лучший интерфейс для
указанного шлюза.
> route ADD 3ffe::/32 3ffe::1
> route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2
Параметр CHANGE используется только для изменения шлюза или метрики.
> route DELETE 157.0.0.0
> route DELETE 3ffe::/32

Рекомендуется Вам:

Добавить комментарий

Ваш e-mail не будет опубликован.