Как работает FakeIP check
Здесь описано, как это работает на высоком уровне. В дальнейшем, возможно, дополню логику и конфигурации.
Все проверки выполняются через удаленный веб-сервер, который специально настроен для этого.
Быстрое ознакомление
Есть три проверки (будут реализованы в 0.7.0):
Проверка, работает ли FakeIP на роутере
curl https://fakeip.podkop.fyi/checkВозвращает:
{"fakeip": true, "IP": "$IP$"}Это означает, что роутер отправляет DNS-запросы через sing-box. Если false, то роутер отправляет запросы не через sing-box.
Проверка, работает ли FakeIP в браузере
Клиент (браузер) должен отправить запрос к https://fakeip.podkop.fyi/check.
Здесь всё идентично. true - браузер использует FakeIP, false - браузер не использует FakeIP. В большинстве случаев это означает, что в браузере включен DoH, либо компьютер не использует роутер как DNS-сервер.
Комплексная проверка
Здесь мы не смотрим на поле FakeIP. Нас интересуют только IP-адреса.
С роутера снова выполняем запрос:
curl https://fakeip.podkop.fyi/checkЗдесь должен быть IP-адрес провайдера.
Из браузера делаем запрос к https://ip.podkop.fyi/check. Здесь должен быть IP-адрес proxy/vpn-сервера.
Проверка состоит в том, что мы сравниваем IP-адреса. Если они отличаются, то вся цепочка работает.
Проблемы
Логика ломается, когда проверка происходит с IP-адреса, который вбит в IP full redirection.
Глубокое ознакомление
Здесь нужно будет подробнее расписать, как ходит трафик и какие выводы можно сделать из полученных данных.
За идею и реализацию проверки спасибо Чайке.