Я хочу заблокировать службу сообщений, wechat, на моем сетевом маршрутизаторе. Кто-нибудь знает порты TCP/UDP, которые wechat использует для связи?

WeChat - это китайское приложение для обмена сообщениями, разработанное компанией Tencent. Я сделал поиск в Google, но я не смог найти веб-сайт, который фактически перечисляет порты для wechat.

1 ответ1

1

Обычно можно в общем случае выяснить, какие порты (относительно «хорошо себя ведут») приложения используют для связи, поэтому нам не обязательно заранее знать, какие порты WeChat специально использует. Скорее всего, мы сможем это выяснить сами и в процессе найдем способ решить проблему в целом.

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

Это лучше всего работает для TCP, но, конечно, не должно быть невозможно обобщить на UDP.

Первым шагом будет создание двух дампов из набора открытых соединений: один раз без подключения к WeChat и один раз с. Сравнивая их, мы сможем определить, какие порты используются интересующим нас приложением. Такой список соединений можно получить с помощью утилиты netstat . Точный синтаксис варьируется, но в Linux (Windows похожа, но, вероятно, не идентична), вы начнете с чего-то вроде netstat -an -A inet который дает вам список практически всего, что связано с IPv4, без поиска имени хоста. Возьми два и сравни их. В Linux вы можете сделать это одной командой с небольшим количеством волшебства оболочки:

$ diff -u0 <(netstat -an -A inet) <(sleep 10; netstat -an -A inet)

Для этого нужно выполнить две данные команды и показать разницу между их выходными данными (выходные данные взяты в качестве соответствующих входных данных для инструмента diff ; -u0 основном говорит, что не печатать никакого контекста, потому что контекст не предоставляет никакой полезной информации в наш случай). В нашем случае команды идентичны, за исключением того, что второй сначала вызывает sleep 10 чтобы дать десятисекундную задержку. Вы настроите время задержки так, чтобы у вас было время сообщить WeChat о подключении; обратите внимание, что более длительная задержка даст больше ложных срабатываний на выходе diff.

Выходные данные сообщат вам IP-адрес источника и получателя и номер порта для всего, что изменилось в течение периода sleep . Опять же, обратите внимание, что реализация netstat в Windows может несколько отличаться в деталях, но она позволяет вам делать то же самое. (Тем не менее, вам, вероятно, придется взять инструмент сравнения из другого места. WinMerge является достаточно компетентным, бесплатным и открытым исходным кодом, хотя, безусловно, есть и другие, как бесплатные, так и платные.)

Это должно указать вам, какие порты WeChat использует для связи с центральными серверами. Сделайте обратный поиск имени по IP-адресам, если вы не уверены, о чем они. Обратите внимание, что в некоторых приложениях есть резервные механизмы (например, они сначала пытаются установить связь по проприетарному транспортному протоколу, но в случае сбоя они возвращаются к HTTP или HTTPS), и в этом случае простая блокировка используемых портов по умолчанию не этого будет достаточно, но если это так, вам все равно придется рассмотреть другие формы блокировки.

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