Обновить
4

Пользователь

Отправить сообщение

termux вам в помощь с tun0, остальное в настройках incy или teapod найдете.

да может, выполнив несложный запрос к иносранному сайту определения ip с использованием javascript встроенного в веб страницу.

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Где я?</title>
    <style>
        body {
            font-family: monospace;
            background-color: #1a1a1a;
            color: #00ff00; /* Хакерский зеленый, куда ж без него */
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
            text-align: center;
        }
        .container {
            border: 2px solid #00ff00;
            padding: 2rem;
            border-radius: 8px;
            box-shadow: 0 0 15px rgba(0, 255, 0, 0.2);
        }
        h1 {
            font-size: 1.2rem;
            margin-bottom: 1rem;
            color: #ccc;
        }
        #ip-address {
            font-size: 2rem;
            font-weight: bold;
        }
        .loading {
            color: #ffff00;
        }
        .error {
            color: #ff0000;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>You IP:</h1>
        <div id="ip-address" class="loading">Загрузка...</div>
    </div>

    <script>
        // Используем api.ipify.org — он простой, быстрый и отдает чистый JSON или текст.
        // ?format=json нужно, чтобы легче парсить.
        fetch('https://api.ipify.org?format=json')
            .then(response => {
                if (!response.ok) {
                    throw new Error('Сеть ответила ошибкой');
                }
                return response.json();
            })
            .then(data => {
                const ipElement = document.getElementById('ip-address');
                ipElement.textContent = data.ip;
                ipElement.classList.remove('loading');
                
                // Бонус: выводим в консоль для проверки
                console.log('Current IP:', data.ip);
            })
            .catch(error => {
                const ipElement = document.getElementById('ip-address');
                ipElement.textContent = 'Ошибка получения IP';
                ipElement.classList.add('error');
                console.error('Ошибка:', error);
            });
    </script>
</body>
</html>

сохрани в файл с названием 123.html и кинь в окно браузера со включенным и без квном, ядро на некоторых андроидах дырявое кстати и раздельное маршрутизирование приложений не работает.

честно говоря я хз зачем вы вообще это делаете. Сейчас у меня в shelter даже мах стоит не говоря уже о всяких озонах-валберисах.
Ну да тявкают, что я данные через tun0 отправляю, но им эта норка не доступна, как и порты на локалхосте.

Естественно все это без всяких рутов и прочих непотребств. Можно по моим комментариям пройтись и посмотреть названия этих нехороших программ, буквально 3 комментария назад.

Дело благое, но не проще купить второй телефон за 4-5 т.р?

и обьединить их в раскладушку :) Будет красиво-модно-молодежно.

Кстати есть смысл толкнуть эту идею за недорого нашим китайским братанам.

на некоторых ядрах андроида в этом месте большая дыра в безопасности и раздельное маршрутизирование для приложений не запрещает другим приложениям использовать tun0 даже если вы внесете их в список исключения.
Точно могу сказать что на ядре 4.19 все работает нормально.

сейчас для андроида есть пара программ которые заткнули дырку в прокси и на которых работает раздельное маршрутизирование для приложений - teapod и incy, вторая доступна на google play

в случае с incy достаточно открыть google play

P.S. в любом случае так-же следует установить программу termux из того-же google play и проверить работоспособность введя две команды:
ifconfig
покажет все интерфейсы среди которых будет интерфейс tun0 или tun1 или ppp0 имя этого интерфеса подставить во второй команду:
curl https://ipinfo.io/json --interface tun0

должно выглядеть так:

если вывод последней команды выглядит как на скриншоте, значит неблагонадежное приложение работает нормально.
На некоторых ядрах андроида говорят все плохо и данные через tun0 получают все подряд а не только те кому разрешили.

В данный момент есть уже два варианта неблагонадежных приложений - incy и teapod, которые заткнули дырку localhost:xxxx логином-паролем, а дырку в tun0 разделением маршрутов по приложениям.
Так что у благонадежных приложений сейчас "видит око интерфейс tun0, да палец не лезет края дырочки пощупать".

Но ведь когда-то настанет момент "в обратную сторону", когда вливания денег в инфраструктуры для блокировок станут настолько ощутимыми (прям как для штурма банка), то зачем будет продолжать недешевую политику мягкого принуждения?

это верно если тратят деньги из собственного кармана.

Еще год назад я бы сказал - "супер, как круто!", а сейчас вот могу сказать - "спасибо за предупреждение". :(

P.S. Доверие строится годами, а разрушается за секунды.(с)

статью по вашей просьбе я нарисовал, но боюсь дальше песочницы она не пойдет. Но все что есть в статье можно прочитать тут - https://habr.com/ru/articles/1023224/comments/#comment_29841598

НЕТ, на адроиде даже чтобы воспользоваться прокси сервером нужно ставить firefox nightly у обычных версий браузеров нет даже возможности устанавливать прокси сервер.

Защита от сканирования портов локалхоста с использованием JavaScript шпионских веб страниц.

ставим баузер firefox
устанавливаем расширение firefox multi-account container
в адресной строке браузера вводим - about:config
в появившемся окне в строке вводим -
network.proxy.type устанавливаем значение 2 (означает использовать файл настроек у нас это будет BLOCK.PAC чуть ниже)
network.proxy.allow_hijacking_localhost устанавливаем значение true (разрешить работу с локалхост)
теперь создаем файл BLOCK.PAC следующего содержания:

function FindProxyForURL(url, host) {
if (shExpMatch(host, "127.0.0.1") ||
shExpMatch(host, "localhost") ||
shExpMatch(host, "[::1]") ||
shExpMatch(host, "0.0.0.0")) {
return "PROXY 127.0.0.1:9"; // отправляем в шоколадный глаз

}
// Всё остальное — напрямую
return "DIRECT";
}

теперь вводим там-же
network.proxy.autoconfig_url и устанавливаем значение - путь к файлу BLOCK.PAC
в таком виде: file:///F:/firefox_conf/block.pac

далее выбираем контейнер в котором будут открываться сайты которым необходим proxy и устанавливаем в его настройках наш прокси сервер - 127.0.0.1:1080 (порт меняем на тот который вы используете)
в остальных контейнерах прокси не устанавливаем.
Ну и далее при выборе ссылки указываем в каком контейнере ее открывать.
Следующее открытие этой ссылки попросит вас подтвердить, что эту ссылку нужно открывать в выбранном вами контейнере всегда. Далее этот сайт всегда будет открываться в выбранном контейнере.

Итог все что открывается в контейнере с установленным прокси идет через прокси, все что открывается без контейнеров или в других контейнерах идет прямо в сетевой интерфейс.
JS запущенный на любой веб страничке (кроме открытой в контейнере с установленным прокси) не видит прокси сервера.

Всем бобра!

Ну и как будет тарифицироваться такая конструкция - зарубежный клиент пишет файлы на "файл сервер" в РФ, вы подключаетесь к этому серверу в РФ со своего ip РФ через мобильную сеть оператора сотовой связи РФ?
Кому так сказать счет выставят анонимному зарубежному клиенту (по адресу ip) который файлы на сервер в РФ передает, виртуальному "Цукенберг-мустафе-ивановичу" - владельцу файл сервера в РФ который куплен и оплачен картой казахского/белорусского банка?

да, так и есть, но антропоморфным дятлам пофиг на то, что ты качаешь техническую или научную информацию, для них вся информация из за рубежа - экстремистская - Кругом враги!!!

Торможение технического прогресса всегда делает власть уязвимой перед внешними вызовами или внутренним упадком. (c) уже не помню кто это писал

tailscale и netbirdr запрещаем или штрафуем?

ну самое просто проверить эффективность защиты - попросить грока или квена или чатгпт набросать html файл с js кодом который будет проверять открытые порты на локалхосте.

я просто помещаю в контейнер с прокси только необходимые ресурсы, в частности это те-же грок-чатгпт. Остальное открывается в обычных окнах, а спайваре строго в контейнере "покупки" :)

в рабочем профиле установите termux
далее в termux наберите -
ipconfig
эта команда вернет список поднятых интерфейсов, если включен впн в основном профиле, то среди них будет присутствовать tun0 (или tun1)
далее в termux набираем в зависимости от tun0 или tun1 -
curl https://ipinfo.io/json --interface tun0

или
curl https://ipinfo.io/json --interface tun1

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

да никак не отрабатывает, может разве что список популярных зарубежных сайтов определения ip внести в список "ходить мимо тоннеля", но никто не мешает разработчикам спайваров сделать свой собственный сайт определения ip на vps в финляндии-голандии-германии например.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Инженер встраиваемых систем, Инженер электронных устройств
Стажёр
От 5 000 000 $