Я хочу направить сайт на конкретную сетевую карту. Номер интерфейса сетевой платы: 38: Atheros AR7015

>route print
===========================================================================
Interface List
 13...00 e0 53 17 32 68 ......Realtek PCI GBE Family Controller
  3...0a 00 27 00 00 03 ......VirtualBox Host-Only Ethernet Adapter
  2...00 26 37 bd 39 42 ......PdaNet Broadband Adapter
 17...74 d4 35 bd 37 c4 ......Intel(R) Ethernet Connection I217-V
 38...54 e6 fc 95 17 85 ......Atheros AR7015 Wireless Network Adapter
  1...........................Software Loopback Interface 1
 12...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
 16...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
  8...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #3
===========================================================================

Используя этот и этот вопросы, я выполняю команду, но она просто печатает страницу справки:

C:\Windows\system32>route ADD website.com IF 38

Manipulates network routing tables.

ROUTE [-f] [-p] [-4|-6] command [destination]
                  [MASK netmask]  [gateway] [METRIC metric]  [IF interface]

  -f           Clears the routing tables of all gateway entries.  If this is
               used in conjunction with one of the commands, the tables are
               cleared prior to running the command.

  -p           When used with the ADD command, makes a route persistent across
               boots of the system. By default, routes are not preserved
               when the system is restarted. Ignored for all other commands,
               which always affect the appropriate persistent routes.

  -4           Force using IPv4.

  -6           Force using IPv6.

  command      One of these:
                 PRINT     Prints  a route
                 ADD       Adds    a route
                 DELETE    Deletes a route
                 CHANGE    Modifies an existing route
  destination  Specifies the host.
  MASK         Specifies that the next parameter is the 'netmask' value.
  netmask      Specifies a subnet mask value for this route entry.
               If not specified, it defaults to 255.255.255.255.
  gateway      Specifies gateway.
  interface    the interface number for the specified route.
  METRIC       specifies the metric, ie. cost for the destination.

All symbolic names used for destination are looked up in the network database
file NETWORKS. The symbolic names for gateway are looked up in the host name
database file HOSTS.

If the command is PRINT or DELETE. Destination or gateway can be a wildcard,
(wildcard is specified as a star '*'), or the gateway argument may be omitted.

If Dest contains a * or ?, it is treated as a shell pattern, and only
matching destination routes are printed. The '*' matches any string,
and '?' matches any one char. Examples: 157.*.1, 157.*, 127.*, *224*.

Pattern match is only allowed in PRINT command.
Diagnostic Notes:
    Invalid MASK generates an error, that is when (DEST & MASK) != DEST.
    Example> route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1
             The route addition failed: The specified mask parameter is invalid. (Destination & Mask) != Destination.

Examples:

    > route PRINT
    > route PRINT -4
    > route PRINT -6
    > route PRINT 157*          .... Only prints those matching 157*

    > route ADD 157.0.0.0 MASK 255.0.0.0  157.55.80.1 METRIC 3 IF 2
             destination^      ^mask      ^gateway     metric^    ^
                                                         Interface^
      If IF is not given, it tries to find the best interface for a given
      gateway.
    > 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 is used to modify gateway and/or metric only.

    > route DELETE 157.0.0.0
    > route DELETE 3ffe::/32

C:\Windows\system32>

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

C:\Windows\system32>route ADD vk.com MASK 255.255.255.255 192.168.83.1 IF 38
The route addition failed: The parameter is incorrect.


C:\Windows\system32>

Та же ошибка возникает, если я установил IP-адрес сетевого адаптера в качестве параметра IF . Видел этот подход в других вопросах где-то.

Я также попытался указать сырой IP вместо имени веб-сайта:

C:\Windows\system32>route add 87.240.165.80 IF 38

Manipulates network routing tables.
...

тот же вывод для IP, что и для IF:

C:\Windows\system32>route add 87.240.165.80 IF 192.168.83.27

а также

C:\Windows\system32>route ADD 87.240.165.80 MASK 255.255.255.255 192.168.83.1 IF 192.168.83.27
The route addition failed: The system cannot find the file specified.


C:\Windows\system32>

ОК для IF38:

C:\Windows\system32>route ADD 87.240.165.80 MASK 255.255.255.255 192.168.83.1 IF 38
 OK!

C:\Windows\system32>

1 ответ1

1

В оригинальной команде есть две ошибки:

  1. Маршрутизация происходит на уровне 3, что означает на основе IP-адресов. Таким образом, не имеет смысла вводить имя хоста, так как оно должно быть переведено DNS. Это приводит к проблеме, заключающейся в том, что иногда можно выбрать несколько IP-адресов, но более серьезная проблема заключается в том, что IP-адрес может измениться, но оригинальный маршрут все еще сохраняется. При непосредственном вводе IP-адреса пользователь интуитивно знает, что он не будет обновляться автоматически. Такое поведение согласуется с комментариями к ответу https://serverfault.com/a/144584.

  2. Хотя Windows может сделать обоснованное предположение (если IF установлен), информация о следующем прыжке обязательна. Это также имеет смысл, поскольку статические маршруты также должны работать при отсутствии динамической информации. Поэтому Windows не будет использовать следующий переход, объявленный DHCP.

Так что для вашего случая команда с наименьшим количеством изменений, чтобы заставить ее работать, была бы

route ADD 87.240.165.80 192.168.83.1 IF 38

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