Как изменить ttl на маке

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

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

TTL время жизни пакета данных, оно может отличаться у разных ОС и устройств.

  • iOS и Android default TTL = 64
  • ПК с ОС Windows TTL = 128
  • Компьютеры с Mac OS TTL = 64

Проверить TTL устройства можно в терминале или сетевой утилите, используя ping локального адреса 127.0.0.1

ttl mac os

Значение TTL уменьшается на 1 проходя каждый узел сети. Т.е. данные с iPhone попадая к оператору имеют TTL 64, а данные с устройств подключенных к iPhone в «режиме модема» имеют TTL 63 для ios/macos и 127 для windows. Т.к. iPhone или другое устройство, раздающее интернет, является узлом и тоже уменьшает TTL.

Оператор видит эти отличия и вводит блокировку или ограничивает раздачу подключенным устройствам. Остается только изменить TTL с 64 до 65 для Macboock или iMac чтобы оператор получал постоянные 64 TTL.

Команда для терминала меняющая TTL на 65:
sudo sysctl -w net.inet.ip.ttl=65

TTL измениться, но до перезагрузки Mac. Для постоянного изменения TTL понадобиться создать файл «sysctl.conf» с единственно строкой:
net.inet.ip.ttl=65

Сделать это можно с помощью «текстового редактора» или скачайте готовый файл «sysctl.conf»

  • Открываем Finder
  • Заходим в меню «переход/к папке» добавляем значение /etc/
  • Копируем файл «sysctl.conf» в папку /etc/ (понадобиться пароль администратора)

После перезагрузки Mac проверяем TTL, все должно работать.

Отключение ipv6

Операторы стали анализировать hop limit протокола ipv6. В моем случае его проще отключить.
В настройках системы «Сеть» >»Wi-Fi» > «дополнительно» > вкладка TCP/IP, в «Конфигурация IPv6» выбираю «Выключить».

ipv6 off

  • Если пункта «выключить» для Wi-Fi нет, используем команду терминала:
    networksetup -setv6off Wi-Fi
  • Для раздающих по USB, команда:
    sudo networksetup -setv6off «iPhone USB»

Включить ipv6 можно не используя терминал. В окне настроек интерфейса нужно просто выбрать значение «автоматически»

Подмена user agent

user agent – это то что видят сайты, сервера и т.д. когда мы перемещаемся по сети интернет. Видят они версию ОС, каким браузером мы пользуемся, наш ip адрес. Зайдя на сайт 2ip вы сами увидите как много о нас знают 🙂 Оператор тоже может увидеть что обращение не с iphone и мобильного браузера сафари, а с mac os и десктопного браузера.
user agent можно изменить используя специальные плагины для браузеров:

  • User Agent Switcher для Mozilla Firefox
  • User-Agent Switcher for Chrome

У способа есть минус, вы скорее всего будете видеть мобильную версию страниц.

Можно кардинально скрыть свои данные от операторов и в сети, используя VPN, но это уже тема другой заметки 🙂

23 ноября, 2016

Обход ограничения раздачи интернета

Полезное
windows, интернет

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

Задача:

Обойти ограничение раздачи интернета с телефона и подключить к интернету свой ПК на Windows и на Mac OS X. При этом не устанавливая root на свой телефон и других примочек.

Теория:

Пропустите этот пункт, если вам не интересно как это работает, и хочется приступить к делу.

Итак, в передаче данных существует такое понятие как TTL (Time To Live). TTL — это предельный период времени или число итераций или переходов, за который набор данных (пакет) может существовать до своего исчезновения [https://ru.wikipedia.org/wiki/Time_to_live]. Грубо говоря, это численный параметр пакета исходящих данных, который характеризует, сколько раз ваш пакет данных может пройти через маршрутизаторы/сервера. По умолчанию эта величина в ОС Windows = 128 , а в остальных системах 64 (*nix, android, iOS).

Когда вы отправляете запрос на какой-либо сервер, к примеру вводите адрес сайта google.ru, то от вас посылается пакет данных, с вашим IP, в начале которого прописан TTL=128 (если вы на ПК под Winndows). Первый сервер, через который пройдет ваш пакет — это сервер вашего провайдера (если с телефона,то оператора). Он перенаправляет ваш пакет на следующий сервер и снижает TTL пакета на единицу. Если он так и не доходит до нужного сервера пакет данных «погибает».

А теперь представим, что вы с телефона. Провайдер получает от вас пакеты с TTL= 64 и уходят они от него уже с TTL=63.

обход ограничения раздачи интернета

Предположим, что вы подключились к своему телефону через ПК. В таком случае ваш телефон работает, как маршрутизатор и тоже снижает TTL ваших пакетов на единицу. И внезапно оператор получает пакет с TTL не 64 (с вашего телефона), а с TTL = 63 , так как вы уже прошли через один маршрутизатор (телефон). Тут он понимает, что вы играете не по «тарифу», и убивает пакет ваших данных, отправляя вам сообщение о том, что 1 час раздачи интернета равен 50 рублям, а целый день 150 рублям.

обход ограничения раздачи интернета

Вот так это и работает. Более подробное описание здесь. Картинки взяты оттуда же.

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

Так и сделаем!

Изменяем TTL на ПК под WINDOWs:

Прежде всего нам потребуется зайти в пуск и найти утилиту «Выполнить» (пропишите в строке поиска). Открываем и в появившейся строке введём команду regedit.

команда regedit

Далее в открывшемся окне надо перейти по следующему пути в левом окне:  HKEY_LOCAL_MACHINE SYSTEMCurrentControlSetServicesTcpipParameters

путь к нужной папке

В правом окне кликаем правой кнопкой по области и выбираем — > Создать -> Новый параметр DWORD (32 бита) -> Называем его «DefaultTTL» .
Кликаем правой кнопкой по новому параметру -> Изменить -> На системе исчисления ставим точку «Десятичная» , в поле значение прописываем (ТТL 65).

Параметр DWORD

Нажимаем «ОК» и перезагружаемся. После перезагрузки включаем на телефоне хотспот (раздаем wifi). Подключаемся к нему через свой ПК и всё. Если будет интересно, настроить свой телефон так, чтобы к нему могли подключаться все устройства с TTL 64, то пишите в комментариях — напишу об этом позже.

Изменяем TTL на MAC OS X с автозапуском

Напоминаю еще раз, все, что описано в этой статье требует root прав.

1) Идем в /Library/StartupItems. Открываем терминал и прописываем:

cd /Library/StartupItems/

2) Создаем там папку (например, это будет autottl). В терминале пишем:

sudo mkdir autottl

3) Идем туда. В терминал вставляем: cd autottl/

4) Создаем там скрипт (он должен называться так же как и папка), который хотим выполнять.
Для создания скрипта в терминал вбиваем:
sudo vim autottl
И тут откроется редактор Vim! Сюда копируем сам скрипт:

#!/bin/sh
sudo sysctl -w net.inet.ip.ttl=65

И закрываем Vim с сохранением результата, вводим в виме (редакторе): :w! autottl

5) Создаем файл параметров StartupParameters.plist.
 sudo vim StartupParameters.plist

И тут опять откроется редактор Vim! Сюда копируем содержание файла параметров:
{
Description = 'Add static routing tables';
Provides = ('autottl');
Requires = ('Network');
OrderPreference = 'None';
}

И опять закрываем Vim с сохранением результата, для этого вводим: :w! StartupParameters.plist

6) Выставляем права на выполнение нашему скрипту.
sudo chmod 755 autottl

7) Смотрим, что получилось в итоге:

 ll

9) А сейчас, мы не будем перезагружать комп, а просто стартанем скрипт, чтобы убедиться в его работоспособности:
 sudo SystemStarter start autottl

10) Лезем в браузер, проверяем и получаем профит!

Изменяем TTL на macOS Mojave/Catalina/BigSur с автозапуском

Обход ограничения раздачи интернета для macOS  начиная с Mojave можно сделать через утилиту sysctl:

  1. Сменить ttl прямо сейчас:
    sudo sysctl net.inet.ip.ttl=65
  2. Сменить ttl перманентно. Открываем файл:
    sudo nano /etc/sysctl.conf
  3. Добавляем следующую строку в файл и сохраняем:
    net.inet.ip.ttl=65
  4. Нажимаем Ctrl+X, y, Enter (сохраняем).

Image of optical fibers with binary codes

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

Начнём с того, что у каждого пакета данных, передаваемого с любого нашего устройства, будь то ноутбук, смартфон, планшет, есть особый параметр, называемый «TTL». Расшифровывается он как «Time To Live», или время жизни IP пакета.

В IPv4 TTL представляет собой восьмиразрядное поле IP-заголовка. Определяет максимальное количество хопов (hop, то есть прыжок, участок между маршрутизаторами), которые пакет может пройти. Наличие этого параметра не позволяет пакету бесконечно ходить по сети. Каждый маршрутизатор при маршрутизации должен уменьшать значение TTL на единицу. wikiwedia

TTL, задаваемое пакету по умолчанию, разное у каждого устройства. К примеру, телефоны на iOS и Android имеют default TTL = 64, компьютер на ОС Windows имеет TTL = 128, а на Mac OS так же как и на iOS TTL = 64. С помощью команд указаных ниже мы увеличим значение TTL на +1.

Меняем TTL на Windows.

1. Вызываем окно «Выполнить«. Для этого жмём сочетание клавиш Win+R. В этом окне вводим regedit и жмём OK.
2. Мы попадаем в редактор реестра. Идём по следующему пути: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesTcpipParameters
3.Здесь нам нужно кликнуть правой кнопкой мыши по полю справа, и выбрать «Создать —>Параметр DWORD(32 бита)»
4. Имя параметру задаём — «DefaultTTL». Щёлкаем 2 раза по созданному параметру, выбираем Десятичную систему исчисления, и вводим значение 65.
5. Также создаём параметр DefaultTTL=65 для соседней ветки реестра — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesTCPIP6
Готово, TTL на компьютере изменён! Перезагружаем компьютер.

Меняем TTL на Mac OS

В данном случае у вас есть 2 варианта. Я предпочитаю первый.
Временное изменение значение TTL в Mac OS X (после перезагрузки TTL восстанавливается на дефолтное 64):

1. Открываем Терминал
2. Вводим команду:

sudo sysctl w net.inet.ip.ttl=65

3. Вводим пароль Вашей учетной записи (пароль не отображается) и нажимаем «Enter»
TTL изменен на 65.

Постоянное изменение TTL в Mac OS X:
1.Нужно в корне диска зайти в скрытую папку «etc» и создать в ней файл sysctl.conf (/etc/sysctl.conf)
2. В созданном файле прописать строчку:

PS: Если у вас скрытые папки не видны — зайдите в Finder на основной диск и нажмите cmd+shift+G — в появившимся окне надо написать название папки в которую хотите попасть. Что бы добавить текст в файл sysctl.conf — можно открыть его с помощью программы TextEdit.
Необходима перезугрузка.


Просмотров:
23 687

How do you change the TTL in macOS High Sierra?

In previous macOS versions, this could be done as follows…

Temporarily:

sudo sysctl -w net.inet.ip.ttl=65

Or permanently by creating or editing /etc/sysctl.conf to adding:

net.inet.ip.ttl=65

EDIT: Correction on testing the TTL

So if the TTL was previously set to 64 and I change it to 65, I should see a ping TTL increase by 1, however, in 10.13.5, this is not occurring.

asked Jun 28, 2018 at 16:33

Brett's user avatar

BrettBrett

1611 gold badge1 silver badge4 bronze badges

2

The ways you gave are still honored.

What may have thrown you off is that ping reports the TTL of the ICMP echo reply received, which is controlled by the target host; that is, the machine that is responding to your ping. I do not think the ICMP echo (ping) protocol provides a way to influence what TTL the target host uses.

I verified this by running tcpdump and looking at what TTL was on my outgoing ICMP echo requests. Be sure to add at least one -v to tcpdump to see the TTLs.

sudo tcpdump -vi en0 icmp

answered Jun 28, 2018 at 17:38

Spiff's user avatar

SpiffSpiff

99.3k16 gold badges168 silver badges221 bronze badges

2

Works for me on 10.15.2 (19C57) Catalina. -w is deprecated, and should be omitted.

sysctl net.inet.ip.ttl=65
net.inet.ip.ttl: 64 -> 65

ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.040 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.065 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=65 time=0.091 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=65 time=0.091 ms

Using a launch daemon to persist the setting after reboot:
/Library/LaunchDaemons/com.gvalkov.ttl65.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.gvalkov.ttl65</string>
    <key>MachServices</key>
    <dict>
        <key>com.gvalkov.ttl65</key>
        <true/>
    </dict>
    <key>Program</key>
    <string>/usr/bin/sysctl</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/sysctl</string>
        <string>net.inet.ip.ttl=65</string>
    </array>
    <key>UserName</key>
    <string>root</string>
    <key>GroupName</key>
    <string>wheel</string>
    <key>KeepAlive</key>
    <true/>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Note: I hope I got the path to sysctl correctly! Please run which sysctl to obtain the actual path. I cannot currently check, because my MacBook Pro 2018 is being serviced again for swelling battery and stuck keys. :(

answered Jan 11, 2020 at 17:07

George Valkov's user avatar

3

How do you change the TTL in macOS High Sierra?

In previous macOS versions, this could be done as follows…

Temporarily:

sudo sysctl -w net.inet.ip.ttl=65

Or permanently by creating or editing /etc/sysctl.conf to adding:

net.inet.ip.ttl=65

EDIT: Correction on testing the TTL

So if the TTL was previously set to 64 and I change it to 65, I should see a ping TTL increase by 1, however, in 10.13.5, this is not occurring.

asked Jun 28, 2018 at 16:33

Brett's user avatar

BrettBrett

1611 gold badge1 silver badge4 bronze badges

2

The ways you gave are still honored.

What may have thrown you off is that ping reports the TTL of the ICMP echo reply received, which is controlled by the target host; that is, the machine that is responding to your ping. I do not think the ICMP echo (ping) protocol provides a way to influence what TTL the target host uses.

I verified this by running tcpdump and looking at what TTL was on my outgoing ICMP echo requests. Be sure to add at least one -v to tcpdump to see the TTLs.

sudo tcpdump -vi en0 icmp

answered Jun 28, 2018 at 17:38

Spiff's user avatar

SpiffSpiff

99.3k16 gold badges168 silver badges221 bronze badges

2

Works for me on 10.15.2 (19C57) Catalina. -w is deprecated, and should be omitted.

sysctl net.inet.ip.ttl=65
net.inet.ip.ttl: 64 -> 65

ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.040 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.065 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=65 time=0.091 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=65 time=0.091 ms

Using a launch daemon to persist the setting after reboot:
/Library/LaunchDaemons/com.gvalkov.ttl65.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.gvalkov.ttl65</string>
    <key>MachServices</key>
    <dict>
        <key>com.gvalkov.ttl65</key>
        <true/>
    </dict>
    <key>Program</key>
    <string>/usr/bin/sysctl</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/sysctl</string>
        <string>net.inet.ip.ttl=65</string>
    </array>
    <key>UserName</key>
    <string>root</string>
    <key>GroupName</key>
    <string>wheel</string>
    <key>KeepAlive</key>
    <true/>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Note: I hope I got the path to sysctl correctly! Please run which sysctl to obtain the actual path. I cannot currently check, because my MacBook Pro 2018 is being serviced again for swelling battery and stuck keys. :(

answered Jan 11, 2020 at 17:07

George Valkov's user avatar

3

Понравилась статья? Поделить с друзьями:
  • Как изменить uefi на ahci
  • Как изменить ttl на макбуке
  • Как изменить uefi загрузчик windows
  • Как изменить ttl на линукс минт
  • Как изменить uefi boot order