На моем компьютере у меня есть доступ к двум различным сетям.

Основной (через беспроводной сетевой адаптер) - это тот, который мне нужен в 90% случаев. Тем не менее, у меня также есть адаптер USB-Ethernet, который подключается к отдельной тестовой сети, которая мне нужна для работы подключения к удаленному рабочему столу.

Однако я обнаружил, что при подключении моего адаптера USB к Ethernet Windows по умолчанию использует это (как и ожидалось), но затем я не могу выполнить 90% своих задач, для которых требуется IP-адрес беспроводной сетевой карты.

Итак, мой вопрос. Как Windows может использовать сеть Ethernet, когда я подключаюсь к удаленному рабочему столу, а остальное использую Wi-Fi?

Спасибо!

1 ответ1

0

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

Откройте оболочку администратора PowerShell (Win+X, Windows PowerShell (Admin))

Во-первых, вам нужно найти индекс интерфейса, который вы хотите использовать для удаленного рабочего стола:

Get-NetIPAddress | Select IPAddress,InterfaceAlias,InterfaceIndex

Это должно вернуть что-то вроде следующего:

IPAddress                               InterfaceAlias                 InterfaceIndex
---------                               --------------                 --------------
ffff::ffff:ffff:ffff:ffff               Local Area Connection* 3                   15
::1                                     Loopback Pseudo-Interface 1                 1
ffff::ffff:ffff:ffff:ffff               Wi-Fi                                       9
10.0.5.203                              Local Area Connection* 3                   15
10.0.0.42                               Wi-Fi                                       9

Если Local Area Connection* 3 - это интерфейс, который вы хотите использовать, вам необходимо указать индекс интерфейса (в данном случае 15).

Далее нам нужно обновить таблицу маршрутизации, поэтому есть несколько важных моментов:

  • Во-первых, находится ли RDP-сервер, к которому вы подключаетесь, в локальной сети или нет. Если это так, и вам не нужно проходить через маршрутизатор, вы будете использовать 0.0.0.0 для NextHop. Если вам нужно пройти через маршрутизатор, вы вместо этого поместите IP-адрес маршрутизатора.

  • Далее, как вы указываете IP-адрес. Если это всего лишь один IP, это будет <ip address>/32 . Если это диапазон, вам нужно изменить маску сети (часть /32). Если вам нужно что-то более изощренное, вам нужно прочитать о том, как работают сетевые маски, чтобы убедиться, что вы можете рассчитать подходящую для вашего случая использования.

  • InterfaceIndex, который вы должны получить из предыдущей команды
  • И, наконец, PolicyStore решает, хотите ли вы, чтобы это было постоянным при перезагрузках или нет. Если вы установите ActiveStore , изменение исчезнет при следующей перезагрузке (вероятно, это хорошая идея при первом тестировании). Если вы хотите сделать его постоянным, просто удалите эту опцию (-PolicyStore и ActiveStore)

Собрав все это вместе, вы должны получить что-то вроде этого:

New-NetRoute -InterfaceIndex 15 -DestinationPrefix 10.0.0.129/32 -NextHop 0.0.0.0 -RouteMetric 0 -PolicyStore ActiveStore

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

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