WHatsapp - какие домены надо пустить через прокси?

На компе вроде помогли эти

whatsapp.com, whatsapp.net, cdn.whatsapp.net, snr.whatsapp.net, g.whatsapp.net, wa.me, web.whatsapp.com, scontent.whatsapp.net, static.whatsapp.net, media-*.cdn.whatsapp.net, v.whatsapp.net, v.whatsapp.com

но на мобильном все равно не работает \ и сообщения не оптравляются\принимаются

Может проще включить прокси в настройках? Но хз какой там протокол
Непонятно что вы делаете (как и куда добавляете домены)

Посмотрел в кэше днс:

e10.whatsapp.net
e13.whatsapp.net
e16.whatsapp.net
e2.whatsapp.net
g-fallback.whatsapp.net

Там вроде ещё IP используются, без доменов.

И у WA есть особенность, у него упрощённый хендшейк, sni не использует.

Я на самой дешёвой РФ vps поднял их проксю

Несколько дней уже тестирую, пока работает.

в v2rayn добавляю

а насчет прокси в настройках..так ее еще найти надо) коненчо можно и селфхост сделать..

Через тунель в рф и звонки работают.

В роутинге можно прописать “geosite:whatsapp”, вроде должно работать, в списке доменов v2fly есть категория whatsapp domain-list-community/data/whatsapp at master · v2fly/domain-list-community · GitHub.

WhatsApp, как уже говорилось, использует IP. Проанализируйте к каким IP стучится ваш телефон. Скорее всего это будут заблокированные AWS. На зеленом мобильном операторе МСК в один момент блокнули крупные cdn, WhatsApp отлетел автоматически

Частичный список IP, которые могут вам помочь:

54.220.49.43

3.22.252.31

13.42.222.150

3.33.252.61

15.197.210.208

Помимо них существует большой сидр фб адресов, которые тоже стоит добавить

Скрипты для BASH, тестируют доступность CDN WhatsApp по таймауту, один ipv4 + ipv6, другой только ipv4. Вообще в России используются только первые четыре сервера.

g.whatsapp.net
v.whatsapp.net
media-ams2-1.cdn.whatsapp.net
media-ams4-1.cdn.whatsapp.net

whatsapp_cdn_test_ipv4_only.sh (8,2 КБ)

whatsapp_cdn_test.sh (8,2 КБ)

У меня ipv6 нету а оно пишет ОК

Качайте скрипт который тестирует только ipv4, специально сделал.

Что специально? Чтобы были неправильные результаты? -4, -6 добавить в команду курла в чем проблема?

У меня он, если пропустить через xray, вообще спамит запросами как бешеный, на разные IP, и несуществующие домены (их нет в DNS, и по whois даже не зарегистрированы). Может, он так сам пытается блокировку обходить, прокси какие перебирает.

Кстати, такой вопрос возникает, откуда xray берёт эти домены? Определяет по SNI, получается? Это к тому, что макс, или ещё кто, так может посылать запрос к своему заграничному серверу с изменённым SNI, типа whatsapp.net или telegram.org, и если маршрутизация настроена по доменам, то запрос уйдёт через “vpn”, и спалит айпишник?

Нда, WhatsApp конечно подложил большую свинью своей распределенной инфраструктурой, скрытием cidr, отсутствием поддержки socks и кривым прокси, который по сообщениям многих может привести к бану VPS цензором после его запуска.

Самое забавное, что это не помешало РКН его забанить) Но при этом создает определенные трудности при попытке обойти ограничения. Бонусом идет то, что при открытии клиента по строке состояния не поймешь подключился он к сети или нет. Там тупо написано WhatsApp, при любом раскладе. В отличии от той же телеги, где если написано Telegram, значит точно подключено. WhatsApp мне особо не нужен, но нужен маме и паре коллег того же возраста, так что пришлось заморочиться.

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

Так, что дальше. Дальше добавляем проксирование этих доменов (разумеется этого недостаточно). Как показала практика добавлять в прокси IP facebook или Meta (конкретно для WhatsApp) бесполезно и не имеет смысла (необходимые IP разрешаться из доменов выше). А вот дальше интереснее, судя по всему WhatsApp арендует сервера у Amazon, и, в зависимости от региона, стучится на определенные диапазоны его IP. Желающие могут ознакомиться с этим скромным списком ip-ranges.json. Я же поступал по другому, анализировал трафик гаджета когда у контакта (с открытым статусом) не было видно время последнего визита, находил IP адреса, которые шли в обходи прокси, затем находил их на ipinfo.io и если это Amazon брал самую большую его подсеть (куда попадал этот адрес) и добавлял в прокси. Затем проверял обновился ли статус у контакта. Если обновился - хорошо. Спустя какое то время статус опять пропадал (а он пропадет через день или два), повторял вышеуказанную процедуру. IP и подсеть уже были другие.

В итоге я пришел к вот такому списку для выходного IP в Западной Европе который и добавил в прокси.

Summary

#amazon ip for whatsapp

3.0.0.0/8
18.0.0.0/8
34.248.0.0/13
35.176.0.0/13
50.8.0.0/13
52.0.0.0/10
52.64.0.0/12
63.32.0.0/14

Одной из /8 , чтобы не искать и дробить на более мелкие, я захватил подсеть какого то университета в штатах (они ее с Amazon каким то образом делят), ну и хрен с ним.

В итоге сообщения приходят / уходят, как и медиа. Звонки не проверял (и не буду) такой задачи передо мной не стояло.

В принципе можно так и не париться и добавить все адреса Amazon с того же ipinfo в прокси (все равно он у нас забанен). Но я простых путей не ищу, ну и алгоритм действий описал, может кому понадобится;).

кривым прокси, который по сообщениям многих может привести к бану VPS цензором после его запуска.

А локально (на телефоне) проксю нельзя развернуть, раз уж все равно какой-то доп. софт на телефон ставится?

Начнем с конца, как же определить что связь есть?

отправить сообщение самому себе, так же как в telegram.

Самое забавное, что это не помешало РКН его забанить)

там же было обновление, где вроде бы добавили встроенный обход через psiphon. См. обсуждение тут.
После которого whatsapp сам обходит блокировки (у меня сейчас версия 2.26.21.75). См. также тут.

По-моему ты делаешь какую-то лишнюю работу, полезную разве что для веб-версии.

Т.е. у меня есть средство обхода, работающее несколько лет для любых приложений выборочно проксирующее трафик на основе списка доменов и/или ip-адресов. И тут на сцену выходит WhatsApp и исключительно ради него я должен городить что-то еще?

Ну выключи интернет на телефоне (именно интернет, целиком, а не только средства обхода) и отправь сообщение самому себе. Сильно удивишься.

Вроде бы, какбы да, а Россия вообще родина слонов. Видел я как работает этот “обход” когда у тебя по полдня в шторке сообщение висит “возможно есть новые сообщения” и смахнуть его нельзя. Или когда ночной бэкап к шести утра не закачивается.

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

И тут на сцену выходит WhatsApp и исключительно ради него я должен городить что-то еще?

Если app умеет прокси хотя бы в каком-то виде, то логично этим воспользоваться в первую очередь для “заворачивания” трафика. Особенно в ситуации когда список ip/доменов неочевиден или непостоянен.

Ну выключи интернет на телефоне (именно интернет, целиком, а не только средства обхода) и отправь сообщение самому себе. Сильно удивишься.

Поэкспериментировал и выяснил, что нужен хотя бы один linked device. Тогда WA ведет себя аналогично TG. В противном случае сразу помечает сообщение как доставленное, и этот способ детекта связи действительно бесполезен.
Но там ведь куча других способов инициировать соединение с сервером. Например попробовать добавить новый контакт.

Вроде бы, какбы да, а Россия вообще родина слонов. Видел я как работает этот “обход” когда

Возможно. Я использую WA эпизодически, только для текста и поиска контактов. С этим проблем не пока не наблюдаю. WA справляется сам. :slightly_smiling_face: