Меню

Ttl настройка на андроиде



/4te.me

Столкнулся с проблемой раздачи интернета с Android-телефона на другие устройства, через мобильную точку доступа, у некоторых операторов. Оператор или вообще запрещает раздавать интернет, или берет за это деньги. Однако есть способы обойти этот запрет. Здесь расскажу, что у меня получилось.

Как оператор узнает, что интернет раздается

Оператор на своей стороне смотрит на значение TTL в заголовках IP-пакетов, приходящих от клиента. Схематично выглядит так:

Если на телефоне открывать в браузере какую-нибудь страничку, то провайдеру от телефона будут приходить пакеты с TTL 64. Такие пакеты он пропускает.

Но если включить мобильную точку доступа, подключиться к ней, например, с планшета, и на планшете открыть страницу, то, проходя через мобильную точку доступа на телефоне TTL будет уменьшаться на 1 и провайдеру будут уходить пакеты с TTL 63, которые он будет отбрасывать. Уменьшение TTL при прохождении через роутер — это стандартизированное поведение роутера, такое поведение предусмотрено стандартом RFC791.

В этой ситуации выхода два — либо на планшете выставлять TTL 65, чтобы, проходя через телефон, провайдеру приходили пакеты с TTL 64, либо на самом телефоне делать так, чтобы он не уменьшал TTL.

Если wi-fi клиент — дектоп-машина с Windows или MacOS, то выставить TTL 65 можно одной командой.

Windows

Создать в реестре ключ

типа REG_DWORD со значением 65 (в десятичной системе)

MacOS

Команда в консоле:

Но если клиент планшет на iOS или другое устройство, где нельзя просто так выставить TTL, то придется воспользоваться вторым способом — заставить телефон не уменьшать TTL для проходящих через него пакетов. Это может быть не совсем просто.

Учим телефон не уменьшать TTL

Этот способ потребует root-права (инструкция) на android-телефоне или jailbreak на iOS. Т.к. я делал это на Android, то опишу как делать для него. Про iOS здесь инструкции не будет.

Для разных устройств, процедура будет отличаться, я постараюсь рассказать в чем будут заключаться эти отличия. В данном примере я использую OnePlus 3 и Android 8.0 Oreo

Итак, у нас есть Android телефон с root-правами. Узнаем, умеет ли ядро системы работать с TTL. Для этого смотрим содержимое двух файлов на телефоне (например с помощью приложения ES Проводник, оно умеет смотреть системные файлы):

В обеих должно быть упоминание TTL. В моем случае в ip_tables_targets упоминания ttl не было. Это значит, что ядро не умеет изменять TTL. Чтобы его научить этому, нам понадобится из исходников собрать модуль ядра и загрузить его в телефон.

Как собрать модуль ядра

  • ОС — Linux или MacOS (можно собрать и на Windows — см.ниже)
  • исходники ядра для конкретного устройства
  • toolchain определенной версии и опредленной архитектуры

Я собирал модуль на Windows, но используя, Ubuntu-подсистему в Windows 10. Как ее включить я писал здесь. Если у вас не Win10, то придется ставить Ubuntu на VirtualBox-машину.

Для своего OnePlus 3 я брал исходники ядра здесь — https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996 (msm8996 — это модель процессора Qualcomm Snapdragon 820 MSM8996). Исходники для Android 8.0 Oreo в ветке QC8996_O_8.0.0

Для других Oneplus-ов можно взять их рядом — https://github.com/OnePlusOSS. Для других моделей телефонов надо искать исходики где-то в интернете или на сайте производителя.

Toolchain — это утилиты для сборки кода под опредленную платформу. Узнать какая именно нужна для вашего телефона можно так:

В моем случае это aarch64 . Из этого вывода также понадобится версия gcc: 4.9 и версия ядра: 3.18.66-perf+

Далее идем сюда — https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/ и скачиваем нужный тулчейн. Версии для MacOS можно найти также по этой ссылке. В моем случае я скачал aarch64-linux-android-4.9 , здесь aarch64 и 4.9 совпадает с теми версиями которые мы узнали выше.

Теперь идем в консоль и готовимся к компиляции. Установим необходимые тулзы и склонируем репы с тулчейном и исходниками ядра в домашнюю папку:

В исходниках ядра смотрим в папку arch и подбираем нужную архитектуру. В моем случае в этой папке, нет aarch64 , но есть arm64 . Это то же самое, просто называется по другому. Буду использовать эту архитектуру. Указываем ее и путь до бинарей тулчейна в переменных окружения:

Теперь надо создать конфиг для будущей сборки. Возможные варианты конфигов в моем случае лежат в папке с исходниками ядра в arch/arm64/configs (вместо arm64 может быть ваша архитектура). Вспоминая версию ядра, которая установлена в телефоне, выбираю конфиг msm-perf_defconfig :

После того как конфиг создан, нам надо внести в него изменения, чтобы нужный нам модуль для фиксации TTL скомпилировался. Для этого выполняем:

Появится интерактиваная утилита, в которой нужно найти нужный модуль.

Переходя по дереву внутрь, и, найдя TTL Target support , нажать M, чтобы указать, что нужно скомпилировать этот модуль.

Сохраняем конфиг, выходим и собираем ядро с модулями:

Если ошибок не было, то в папке с исходниками должен появится файл net/netfilter/xt_HL.ko

Читайте также:  Сброс настроек на самсунг галакси с4 зум

Вот мой скомпилированный файл для OnePlus 3, Android 8.0.0 — xt_HL.ko. Можно сразу взять его, если совпадает модель телефона и версия системы.

Копируем его на телефон, и через adb shell пытаемся включить его (чтобы в adb shell работал su, надо в /system/build.prop добавить строку ro.debuggable=1 , например с помощью ES Проводника):

Если модуль загрузился, можно пробовать зафиксировать TTL:

И наконец, добавляем в автозагрузку телефона скрипт, который будет включать фиксацию TTL:

Такой скрипт я положил в /sdcard/fixttl.sh , и с помощью приложения ScriptManager, добавил в автозагрузку.

Всё! Теперь с этого телефона можно раздавать интернет!

Источник

Как изменить TTL на Андроид

Возможности современных смартфонов позволяют делиться доступом к мобильному интернету с другими устройствами при помощи модуля Wi-Fi, Bluetooth или USB.

Как изменить TTL на Андроид

СодержаниеКак изменить TTL на Андроид

Однако не все так просто — жадные операторы сотовой связи, предоставляющие «безлимитные» пакеты услуг, часто ограничивают раздачу интернета. Чтобы обнаружить подключенные устройства, они пользуются значением параметра TTL, который автоматически передается на их основной сервер. В этой статье-инструкции мы разберемся, что такое TTL в телефоне, и как его изменить для обхода ограничений раздачи интернета.

Что такое TTL и зачем он нужен?

TTL (Time to live) — предельный период времени жизни пакета данных или максимальное количество его переходов от одного устройства к другому. В компьютерных сетях такой параметр является обыкновенным числовым значением в диапазоне от 0 до 255. Основная его цель заключается в том, чтобы не позволять набору цифровой информации бесконечно «блуждать» по сети. Перемещаясь между различными маршрутизаторами, параметр TTL постоянно меняется.

Для большинства мобильных устройств (iOS и Android) начальное значение TTL равно 64, а на Windows-компьютерах он стартует с отметки 128. Каждый переход через беспроводной канал связи уменьшает это число ровно на 1. Когда после множества скачков от одного клиента к другому TTL становится равным 0, все данные в пакете, который он сопровождает, автоматически уничтожаются.

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

Операторы сотовой связи пользуются TTL для ограничения доступа к безлимитному интернету, когда их клиент подключается к нему с нескольких разных гаджетов. После того, как смартфон на Android переходит в режим модема, он передает через себя трафик с параметром TTL, равным 64. Устройства, которые получают эти сведения, автоматически уменьшают изначальный TTL на 1. В результате, провайдеру приходят пакеты, помеченные временем жизни 64 и 63, после чего он блокирует сеть. В большинстве случаев, это делает невозможным раздачу интернета по Wi-Fi.

Можно ли изменить TTL?

Как уже можно было догадаться, чтобы разблокировать доступ сторонним устройствам к мобильной сети, необходимо должным образом настроить значение TTL. На Android это делается несколькими способами в зависимости от наличия на смартфоне root-прав. Также необходимо выбрать устройство, на котором будут внесены изменения параметра TTL: на раздающем трафик или на получающем его.

Далее мы будем рассматривать исключительно мобильную платформу Android.

Как узнать TTL на телефоне?

Стоит сразу отметить, что получить доступ к неограниченному количеству сторонних подключений к мобильной сети без прав администратора практически невозможно. Чтобы узнать значение TTL на телефоне, следуйте инструкции:

1. Сначала нужно установить приложение Terminal Emulator .

2. После запуска этой небольшой утилиты откроется командная консоль, в которую необходимо ввести следующую строку: cat /proc/sys/net/ipv4/ip_default_ttl

3. В результате появится значение TTL.

Как изменить TLL на Android с root-правами?

Получив права администратора (рут) на Android, нужно установить один из файловых менеджеров, например, ES Проводник . Далее потребуется активировать авиарежим на смартфоне, чтобы временно прервать соединение с сетью. Теперь запустите Terminal Emulator и перейдите файлу по адресу: proc/sys/net/ipv4/ip_default_ttl . В нем содержится значение параметра TTL, которое можно изменить по своему усмотрению. Сохранив новое число и перезагрузив телефон, можно спокойно раздавать интернет.

Существует и более комфортный способ настройки множественного подключения к мобильной сети. Для его реализации потребуется загрузить специальное приложение TTL Master . После запуска программы можно сразу увидеть текущее значение данного параметра и настроить его для эффективной раздачи как на мобильные устройства, так и на Windows-компьютеры. После перезагрузки смартфона можно не беспокоится, что сотовый оператор как-то узнает об общем использовании его трафика.

Изменение TLL на Android — простая задача для пользователей смартфонов с рут-правами, которые могут обойти ограничение раздачи интернета в пару кликов. Если же «суперправ» нет, то с высокой долей вероятности ничего не выйдет.

Источник

Изменение значения TTL на Android

Смартфоны и планшеты без root

Для смартфонов, у которых отсутствует рут-доступ, можно попробовать изменить ТТЛ на принимающем устройстве (компьютере). Для просмотра текущего значения параметра воспользуемся средством терминала – например, Terminal Emulator.

    Запустите приложение и введите в нём следующую команду:

Читайте также:  Удаленное по в настройках айфон

Проверьте правильность ввода, затем нажмите аналог Enter на вашей клавиатуре.

Появится базовое значение данных нужного параметра.

Измените ТТЛ на всех устройствах, которые будут подключаться к этому. На компьютере под управлением Windows это сделать довольно просто.

Подробнее: Как поменять TTL в Windows 7 и Windows 10

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

Смартфоны и планшеты с root

Задача упрощается, если на целевом устройстве присутствует рут-доступ. В таком случае изменить TTL можно как с помощью специального приложения, так и вручную, отредактировав один из системных файлов.

Способ 1: TTL Master

Использование стороннего решения удобнее, поэтому начнём с него. Программа называется TTL Master и доступна для загрузки из Google Play.

    В главном окне ТТЛ Мастера вы можете просмотреть текущее значение параметра. Ниже под ним находится поле «Введите TTL», тапните по нему.

Напишите новую величину, обычно это 65 или 128, затем воспользуйтесь кнопкой «Применить».

В менеджере рут-прав выдайте приложению доступ.

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

TTL Master прост и удобен, поэтому мы рекомендуем пользоваться именно им.

Способ 2: Редактирование вручную

На некоторых смартфонах единственный метод изменения TTL заключается в ручной перезаписи параметра в конфигурационном файле. Для этой операции нам потребуется файловый менеджер с рут-доступом, например, Root Explorer.

    Переведите устройство в режим полёта.

Откройте приложение и нажмите на кнопку «Права R/W», затем перейдите по следующему адресу:

Тапните по файлу ip_default_ttl – появится контекстное меню, выберите в нём «Редактор текста».

Файл будет открыт для редактирования – сотрите имеющееся значение и введите то, которое вам требуется, после чего сохраните изменения.

  • Закрывайте файловый менеджер и выключайте режим полёта.
  • Попробуйте активировать раздачу интернета – если всё сделали правильно, операторские ограничения больше не будут вам докучать.

    Источник

    Как изменить TTL: полезная инструкция на все случаи жизни

    ВНИМАНИЕ! Не только TTL является причиной блокировки – об этом подробнее ниже.

    Всем привет! Сегодня поговорим про раздачу интернета и ТТЛ. Давайте кратко про ТТЛ (время жизни пакета). У всех устройств, которые работают с интернетом, есть так называемый TTL параметр. У телефонов он по умолчанию равен 64, а в системах Windows – 128.

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

    Если же вы будете раздавать интернет на другие устройства – например, на ноутбук (TTL default=128) и на другой телефон (TTL=64), то у нас добавляется ещё один узел. А TTL имеет свойство уменьшаться на 1 при проходе через узел (в нашем случае это раздающее устройство).

    Как итог – оператор получает пакеты с разным TTL и понимает, что вы включили раздачу. Но это достаточно просто и легко обходится – нужно просто на принимающем устройстве выставить TTL на один больше чем у раздающего устройства – то есть 65. Далее я расскажу, как это сделать на телефоне и на ПК.

    Если вы не знаете, как делать раздачу с телефона, то смотрим эту инструкцию.

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

    ВНИМАНИЕ! На iOS изменить ТТЛ невозможно – связано это с защитой системных файлов, от записи на данной операционной системы. Чтобы сохранить вам время и нервы, ещё раз повторюсь, что сделать это НЕВОЗМОЖНО – в силу особенностей яблочной операционной системы, и искать какие-то способы бессмысленно. Ну, я вас предупредил.

    Windows 7, 8, 10

    1. Чтобы сменить ТТЛ – нажимаем на кнопки «Win» и «R».
    1. Заходим в основную папку: «HKEY_LOCAL_MACHINE».
    2. Далее находим системную папку «SYSTEM».
    3. Проходим по пути: «CurrentControlSet» – «Services». Далее нам понадобятся обе папки «TCPIP» и «TCPIP6». Сначала открываем первую и кликаем по папке «Parameters».
    1. Нажмите правой кнопкой по полю справа и выберите: «Создать» – «Параметр DWORD» – называем параметр как «DefaultTTL».
    1. Двойным щелчком левой кнопки мыши откройте параметр и измените «Значение» на 65 – для Android и iOS устройств. Если вы используете телефоны или планшеты с Windows Phone системой или другой, то ставим 130. Также убедитесь, что система исчисления стоит как «Десятичная».
    1. Тоже самое на всякий случай сделайте и в папке «TCPIP6/Parameters».

    Сервера оператора пошли дальше и теперь отслеживают не только TTL, но также блокируют пользователей, которые подключаются к сомнительным серверам. Если оператор увидит, что вы подключаетесь к серверу, который всегда используется на компьютере, то вас заблокируют. Один из таких серверов – это облако для обновления Windows. Поэтому на время давайте отключим данную функцию:

    1. Win+R = services.msc (Заходим в службы).
    2. Находим центр обновления ОС и отключаем, установив тип запуска «Отключено». Не забудьте применить параметр.
    1. Перезагружаем систему.
    2. Теперь чтобы проверить и узнать, что вы все сделали правильно, и изменение TTL прошло успешно – нажимаем опять «Win+R» и прописываем «cmd», чтобы запустить командную строку и прописываем:
    1. В строке TTL должно стоять значение 65, тогда все хорошо.
    Читайте также:  Настройки графики в телефоне

    Теперь включаем раздачу с телефона на ПК и проверяем.

    Снова прилетела блокировка

    Совсем недавно стало известно, что значение TTL у компании МТС было изменено. Поэтому ещё раз зайдите в реестр прошлым способом и вместо 65 установите значение 64. Для тех, у кого оператор MTS – данный способ работает, но и для других, возможно, тоже данный способ будет работать – поэтому попробуйте.

    Как я уже и говорил ранее, оператор будет следить за тем, к каким серверам вы обращаетесь. Если у вас включено обновление системы, начал обновляться антивирус, вы качаете с торрента или включен Steam, – то оператор это увидит и заблокирует вас. Поэтому тут есть три варианта:

    • Вы выключаете все что можно и стараетесь «вести себя тихо» в интернете.
    • Сделать детальную настройку – смотрим следующую главу.
    • Третий вариант – это использовать VPN. Так как мы любим халяву и не любим платить, то советую почитать инструкцию по бесплатному использованию VPN.

    Детальная настройка

    Если на компьютере запущено очень много программ, которые работают с интернетом, и они вам нужны, то при их работе оператор будет вас блокировать. Например, вы хотите использовать торрент. При запросе к серверу оператор это увидит и заблокирует вас. Но мы можем обмануть его и просто не отправлять эту информацию. Для этого нужно сделать следующее:

    1. Нам нужно открыть файлик «hosts», который находится в директории:

    C:\Windows\System32\drivers\etc

    1. Правой кнопкой по файлу и открываем его с помощью блокнота.
    1. Теперь открываем вот этот файл – ссылка.
    2. Выделяем все и заменяем все содержимое вашего hosts, а после этого сохраняем. Можете просто его скачать с нашего сайта и заменить.

    Что же делают эти настройки? Вы могли заметить, что там есть очень много ссылок с названием «Microsoft» – это сервера обновления Windows. IP 127.0.0.1 – это по сути адрес вашего же компа, то есть если он начнет обновлять Windows, то система начнет обращаться к самой себе, а не к удаленному серверу, ну а оператор не получит информации. Теперь проблема в том, что сервера в данном файлике есть не все. Но вы можете их с легкостью добавлять самостоятельно.

    Сначала расскажу простой пример. Вот вы раздаете интернет с телефона на ПК, внезапно вас блокирует оператор. С помощью программы «Acrylic DNS Proxy» вы видите адрес сервера, с помощью которого вас блокируют. Вы добавляете этот сервер в файл hosts. А теперь все то же самое, но с более детальными инструкциями:

    1. Скачиваем программу – cкачиваем не портативную, а обычную версию.
    2. Устанавливаем к себе на ПК.
    3. Открываем папку с установленной прогой и открываем файлик «AcrylicConfiguration.ini» с помощью блокнота.
    4. С помощью сочетания клавиш «Ctrl+F» найдите строку «HitLogFileName=». Тут стоит значение, куда вы будете сохранять логи. То есть если вас заблокируют, вы зайдете по данному пути, откроете лог-файл с нужной датой и увидите из-за какого адреса вас блокирнули. Установите любой путь, но последнее значение «HitLog.%DATE%.txt» не меняйте.
    1. Ещё нам нужно зайти в настройки подключения и установить в качестве DNS наш ПК. Нажимаем «Win+R» и вписываем «ncpa.cpl». Далее нужно зайти в свойства того подключения, через которое вы подключены к телефону. Как зайдете туда, в свойствах четвёртого протокола в качестве первого ДНС установите значение: 127.0.0.1.
    1. Запускаем программу и ждем блокировку.
    2. Как только вас заблокируют, вам нужно открыть лог-файл, который сохраняется по пути, который мы установили в файлике «AcrylicConfiguration.ini».
    3. В самом конце вы увидите к какому серверу обращался комп нас интересует именно URL адрес.
    1. Теперь надо этот URL добавить в hosts файл – добавляем сначала IP0.0.1, а потом наш URL (через пробел). Не забываем сохранить изменение.

    Раздача на Android

    К сожалению, изменить параметр TTL можно только с помощью ROOT прав и программы «TTL Master», который можно скачать с Google Play. Но на всякий случай попробуйте поменять параметр – устанавливаем:

    • 65 – если раздающее устройство имеет Android или iOS.
    • 130 – если вы раздаете с Windows Phone.
    • 64 – если у вас МТС.

    Нажимаем на кнопку «Применить». Если что-то не получается, то пробуем как параметр 65, так и 64. Если и в этом случае ничего не получится, то вам нужны ROOT права. Инструкции по установке РУТ-прав у каждого телефона свои.

    ВНИМАНИЕ! Установка ROOT может привести к блокировке использования некоторых программ, которые работают с деньгами. Особенно это касается онлайн-банков.

    Источник

    Adblock
    detector