добавить маршрут только печатает справку вместо добавления маршрута

478
Sam

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

> маршрут печати ================================================== ========================= Список интерфейсов 13 ... 00 e0 53 17 32 68 ...... Контроллер семейства Realtek PCI GBE 3 ... 0a 00 27 00 00 03 ...... VirtualBox Host-Only Ethernet Adapter 2 ... 00 26 37 bd 39 42 ...... Широкополосный адаптер PdaNet 17 ... 74 d4 35 bd 37 c4 ...... Intel (R) Ethernet-соединение I217-V 38 ... 54 e6 fc 95 17 85 ...... Беспроводной сетевой адаптер Atheros AR7015 1 ........................... Программный интерфейс Loopback 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 NIC в качестве 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> 

ОК для IFномера 38:

C:\Windows\system32>route ADD 87.240.165.80 MASK 255.255.255.255 192.168.83.1 IF 38 OK!  C:\Windows\system32> 
0
Вы пытались установить всю информацию (также маску сети, шлюз, ...) в вашей команде? Что происходит потом? Возможно, что анализатор не может определить структуру вашей команды и пытается интерпретировать «IF» как маску сети. Daniel Hofer 6 лет назад 3
@DanielHofer Я обновил вопрос соответственно. Но я не уверен, что поставить в метрическом месте .. Я исследую это Sam 6 лет назад 0
Вы также пытались указать IP-адрес в качестве места назначения, чтобы убедиться, что это не DNS, вызывающий ошибку? Daniel Hofer 6 лет назад 1
@DanielHofer обновлен снова Sam 6 лет назад 0
Но на этот раз вы использовали IP-адрес вместо номера интерфейса? Я знаю только возможность установить число (как вы это делали большую часть времени) или позволить Windows принять решение, оставив эту информацию. Daniel Hofer 6 лет назад 1
@DanielHofer обновил ответ. Да, теперь это сработало, спасибо! Вы должны опубликовать ответ. Кроме того, хотя маршрут добавлен, мой браузер по-прежнему не работает с vk.com должным образом и не может подключиться к сайту. Sam 6 лет назад 0

1 ответ на вопрос

1
Daniel Hofer

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

  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