Почему порт не кажется открытым с IPv6, когда он, кажется, работает локально? [закрыто]

Вопрос или проблема

Я тестирую два UDP-клиента (C#).

Один получает сообщение, другой отправляет. Это работает локально, но если друг пытается подключиться к IPv6 моего ПК, он получает код ошибки:

10047

У нас обоих включен IPv6. Я также перенаправил порт на 40002 для UDP для IPv6. В брандмауэре моего ПК я добавил правило для входящего и исходящего UDP-трафика для порта 40002. Проверка порта говорит, что он истек по времени. Я убедился, что это IPv6-адрес моего ПК, посмотрев его на WhatsMyIP. Wireshark также не показывает полученные пакеты, когда проверка порта отправляет их на порт 40002.

Я убедился, что оба UDP-клиента имеют включенный IPv6. Я не могу использовать IPv4, так как у меня есть контракт DS-lite.

Настройка брандмауэра:
входящие правила: “входящие правила”

исходящие правила: исходящие правила

Перенаправление портов FRITZ!Box:перенаправление портов

Ответ или решение

Когда у вас существует проблема с открытым портом для IPv6, даже если приложение работает локально, необходимо учитывать несколько факторов, которые могут вызывать такую ситуацию. Ваша проблема заключается в том, что друг не может подключиться к вашему компьютеру с использованием IPv6, и ошибка 10047 свидетельствует о том, что указанный адрес или порт недоступны для сетевых соединений.

Вот ряд шагов и рекомендаций, которые могут помочь вам решить вашу проблему:

1. Проверка адреса IPv6

Убедитесь, что ваш друг использует правильный адрес IPv6. Иногда адрес может содержать двойные двоеточия (например, 2001:db8::1), и важно удостовериться, что адрес правильно скопирован и вставлен.

2. Настройки маршрутизатора

Убедитесь, что у вас правильно настроено перенаправление портов на вашем маршрутизаторе FRITZ!Box. Проверьте, что вы используете правильный адрес IPv6 вашего компьютера в настройках перенаправления, и что порт 40002 для UDP действительно открыт.

3. Настройки брандмауэра

Вы упомянули, что добавили правила для разрешения трафика UDP на порту 40002. Убедитесь, что:

  • Правила применены к правильному профилю (например, Частная сеть или Общественная сеть в зависимости от вашего подключения).
  • Возможно, имеет смысл временно отключить брандмауэр, чтобы проверить, действительно ли он блокирует соединение.

4. Проверка сетевых правил

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

5. Использование средств диагностики

Как вы уже использовали Wireshark, попробуйте также воспользоваться командой ping для проверки доступности IPv6 адреса вашего компьютера. Используйте ping -6 <ваш_ipv6_адрес>, чтобы проверить, получаете ли вы ответы.

6. Программное обеспечение безопасности

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

7. Тестирование с использованием внешних сервисов

Используйте внешние инструменты, такие как telnet или nc (netcat), чтобы проверить, доступен ли порт. Например, можно выполнить следующую команду в терминале:

nc -u -z <ваш_ipv6_адрес> 40002

Это проверит доступность порта. Если команда возвращает значение, следовательно, порт открыт.

8. Провайдер

Если все равно ничего не помогает, свяжитесь со своим интернет-провайдером. Некоторые провайдеры могут не поддерживать определенные конфигурации IPv6 или блокировать определенные порты.

Заключение

Ваша проблема может быть связана с несколькими факторами — от настроек вашего устройства до ограничений на уровне провайдера. Следуя перечисленным рекомендациям, вы сможете провести полную диагностику и найти причину, почему порт 40002 не кажется открытым для соединений по IPv6.

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

Капча загружается...