5

У меня есть программа, которая может общаться через IPv4 (TCP и UDP) и через IPv6 (TCP и UDP). Я хочу заблокировать программу от возможности использовать IPv4.

Я пробовал брандмауэр Windows:

За исключением того, что он блокирует субпротоколы IP (например, TCP, UDP, инкапсулированный IPv6, GRE), а не блокирует сам IPv4 .

Другими словами, мне нужно заблокировать IPv4:

  • IPv4/TCP
  • IPv4/UDP
  • IPv4/ICMPv4
  • IPv4/GRE
  • IPv4/L2TP

при разрешении IPv6:

  • IPv6/TCP
  • IPv6/UDP
  • IPv6/ICMPv6
  • IPv6/GRE
  • IPv6/L2TP

Могу ли я заблокировать программу от использования IPv4?

Примечание. Если это невозможно, не бойтесь добавить это в качестве ответа. Нет ничего постыдного в правильном ответе на вопрос.

2 ответа2

2

Обратите внимание, что следующее не работает каждый раз.

В брандмауэре Windows добавьте правило блокировки для вашей программы для удаленного диапазона от 0.0.0.0 до 255.255.255.255 по любому протоколу.

Если программа предназначена для этого, она использует ipv6.

Если вы хотите обратное, для принудительного использования ipv4 вы блокируете диапазон ipv6 :: to ffff: ffff: ffff: ffff: ffff: ffff: ffff: ffff

Например, это работает для обновления Visual Studio Community 2017, так как программа обновления использует ipv6 по умолчанию, а скорость загрузки иногда серьезно снижается.

1

Это невозможно сделать с помощью брандмауэра Windows, если только клиент не поддерживает его. Большинство приложений будут использовать RFC 3484, чтобы определить лучший протокол для использования, если они оба доступны. Хорошее объяснение:

Как клиентские приложения знают, как использовать IPv4 или IPv6?

Ваши варианты будут либо:

  • Принудительно использовать протокол, если приложение поддерживает это (например, uTorrent поддерживает режим только IPV6)
  • Использование стороннего брандмауэра, который поддерживает настройки протокола для каждого приложения.
  • Использование стороннего брандмауэра, который поддерживает настройки протокола в зависимости от порта.

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

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