Обход ограничений Yota на раздачу Wi-Fi (tethering) для Mac OS
Привет всем, дорогие друзья!
Обход ограничений Yota на раздачу Wi-Fi (tethering) для Mac OS
Все помнят статью про обход ограничений Yota на раздачу Wi-Fi для Windows, очень хороший вышел пост, на славу вышел, как говорится.
Но сейчас не об этом 🙂
А о том, как обойти ограничение мобильного оператора йота на раздачу интернета с телефона на ноутбук под управлением Mac OS?
Это оказалось очень просто, но не я это нашел, я, можно сказать, сейчас являюсь посредником, не автором метода. За это надо благодарить нашего читателя Просто Блога, Андрея, который любезно предложил нижеописанный метод в комментариях к статье про обход ограничения в Windows, за что ему огромное спасибо 🙂
Итак, немного теории от меня. Чтобы обойти ограничение йоты на раздачу интернета по wi-fi с телефона на макинтош, нужно поменять значение TTL на 65.
Что такое ttl? Грубо говоря, это количество хопов (раз), сколько пакет прошел устройств до сотовой станции. В нашем случае пакет проходит через сотовый телефон, следовательно 65-1=64, до базовой станции йоты пакет приходит с ttl, равным 64 и ничего не палится 🙂
Как поменять ttl в Mac OS для обхода ограничений скорости от Yota?
Ребята, до некоторого времени, чтобы обойти ограничение Yota на раздачу Wi-Fi на Mac OS X, мы с вами задавали команду в консоле ( команда требует root ):
sudo sysctl -w net.inet.ip.ttl=65
Да, команда требует рут, но при перезагрузке компьютера все слетает и нужно вводить команду заново, кто не хочет постоянно лазить в терминал читаем дальше 😉
Настраиваем автозапуск скрипта смены ttl на Mac OS X для обхода ограничения Yota на раздачу Wi-Fi
Напоминаю еще раз, все, что описано в этой статье требует root прав 😉
Также, для тех, кто не знает, не надо копировать в терминал [email protected]:, так как это мой пользователь, у каждого он свой 😉
1) Идем в /Library/StartupItems. Открываем терминал и прописываем: [email protected]:
2) Создаем там папку (например, это будет fuckingyota). В терминале пишем: [email protected]: /Library/StartupItems> sudo mkdir fuckingyota
3) Идем туда. В терминал вставляем: [email protected]: /Library/StartupItems> cd fuckingyota/
4) Создаем там скрипт (он должен называться так же как и папка), который хотим выполнять.
Для создания скрипта в терминал вбиваем:
[email protected]: /Library/StartupItems/fuckingyota> sudo vim fuckingyota
И тут откроется редактор Vim! Сюда копируем сам скрипт:
# Скрипт смены ttl на Mac OS X, спасибо тебе Андрей:
#!/bin/sh
sudo sysctl -w net.inet.ip.ttl=65
И закрываем Vim с сохранением результата, вводим в виме (редакторе): :w! fuckingyota
5) Создаем файл параметров StartupParameters.plist.
[email protected]: /Library/StartupItems/fuckingyota> sudo vim StartupParameters.plist
И тут опять откроется редактор Vim! Сюда копируем содержание файла параметров:
# Самое главное, чтобы в строчке Provides было прописано то же имя, что и название скрипта и название папки:
<
Description = ‘Add static routing tables’;
Provides = (‘fuckingyota’);
Requires = (‘Network’);
OrderPreference = ‘None’;
>
И опять закрываем Vim с сохранением результата, для этого вводим: :w! StartupParameters.plist
6) Выставляем права на выполнение нашему скрипту.
[email protected]: /Library/StartupItems/fuckingyota> sudo chmod 755 fuckingyota
7) Смотрим, что получилось в итоге: [email protected]: /Library/StartupItems/fuckingyota> ll
9) А сейчас, мы не будем перезагружать комп, а просто стартанем скрипт, чтобы убедиться в его работоспособности:
[email protected]: /Library/StartupItems/fuckingyota> sudo SystemStarter start fuckingyota
10) Лезем в браузер, проверяем и получаем профит!
При написании статьи я пользовался не только своими знаниями, спасибо Андрею за скрипт и спасибо KSDaemon за способ автозапуска скриптов в Mac OS X, описанный в его прекрасном блоге 😉
Всем спасибо, комментарии очень и очень приветствуются =)
Как сделать автоматическую смену ttl при запуске Mac?
Автоматическое изменение TTL при запуске Mac OS X:
1) В программе «TextEdit» создаем новый файл и прописываем там строчку:
Убедитесь что расширение файла поменялось на «.conf».
Для этого снимите галочку «скрыть расширения» в свойствах файла «sysctl.conf».
3) Теперь необходимо перенести этот файл в корень системного диска, в папку «etc»
Для этого — переходим в «Finder» и нажмите следующее сочетание клавиш (cmd+shift+G) в появившемся окне пишем:
(нажимаем кнопку «перейти»)
4) Открываем приложение «Терминал», пишем:
5) В самом начале текста вставляем строку:
- Нажимаем сочетание клавиш:
— Ctrl ⌃ + O. Enter — Чтобы сохранить
— Ctrl ⌃ + X. — Чтобы выйти
(Внизу окна подсказки команд)
6) Закрываем терминал, перезагружаем MacOS
7) После перезагрузки проверяем что «ttl» измененяется автоматически. Запускаем «Терминал» и прописываем следующие команды:
Как без ограничений пользоваться мобильным интернетом на macOS.
Hola! Хитрые операторы мобильной связи представляют широкую линейку безлимитных тарифов, но с условием, что пользоваться интернетом вы будете только на мобильном устройстве. Однако, операторские «ограничения» работают на одной технологии обнаружения раздачи сети. Все дело в таком параметре, как значение TTL оконечного, подключенного устройства.
TTL (Time To Live) — число итераций или переходов, за который набор данных может существовать до своего исчезновения. — Это сложно, не будем глубоко вдаваться. На простом примере: есть телефон с значением TTL — 64 и есть другой телефон, с таким же значением по умолчанию (либо 64, либо 128), так вот, при раздачи интернета, значение подключаемого устройства к раздающему будет уменьшено на 1 пункт и станет равным TTL — 63. Таким образом, операторы связи фиксируют раздачу интернета и ограничивают доступ. Все что нам необходимо сделать — это изменить значение TTL у подключаемого устройства на +1 пункт, то есть изменить значение с 64 до 65.
Чтобы изменить значение TTL на macOS (по умолчанию 64), необходимо выполнить следующее:
- 1. Открываем программу «Терминал» (можно найти, используя поиск), в окне терминала, вводим следующую команду: sudo sysctl -w net.inet.ip.ttl=65
- 2. Нажимаем: « Enter »
- 3. Теперь, вам необходимо в окне терминала прописать ваш пароль от учетной записи пользователя mac (вслепую, символы отображены не будут, не пугайтесь)
- 4. Готово! Значение TTL изменено, проверяем! Все работает!
Вот таким, несложным способом, мы обошли ограничения, кстати, еще и сэкономили, ведь чаще всего, услуга раздачи доступа в интернет — платая. Всем добра и свободного доступа в сеть без ограничений!😊
// После перезагрузки mac, установленное значение TTL остается неизменным.😌🙃
Почему перестала работать смена ttl на макбуке для мтс?
Подтверждаю, проблема в ipv6. Если кто-то знает, как поменять там значение hop limit, подскажите. Задаю в sysctl.conf значение net.inet6.ip6.hlim=65, при проверке значения в терминале выдается 65, но при пинге локалхоста оно внезапно меняется на 64.
По вопросу, что делать с МТС. Очевидно, нужно отключить ipv6 на МакБуке. Если раздаете интернет через Wi-Fi, то в настройках системы на МакБуке выбираете «Сеть» >»Wi-Fi» > «дополнительно» > вкладка TCP/IP, в «Конфигурация IPv6» выбираете «Выключить». Если пункта «выключить» нет (у меня не было), то вбиваете в терминале следующую строчку:
networksetup -setv6off Wi-Fi
После этого IPv6 будет вырублен и МТС перестанет видеть, что вы раздаете интернет на МакБук. Если раздаете через кабель или блютус, то отключать ipv6 нужно для того способа, которым вы раздаете интернет.
Автоматизация и программирование
Сегодня немного отойду от темы автоматизации и расскажу о том, как обойти ограничения на раздачу интернета:) Думаю тема актуальная, так как в интервью с управляющими компаний операторов они обмолвились, что основная прибыль у них идёт за счёт интернет трафика.
Задача:
Обойти ограничение раздачи интернета с телефона и подключить к интернету свой ПК на 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.
Далее в открывшемся окне надо перейти по следующему пути в левом окне: HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
В правом окне кликаем правой кнопкой по области и выбираем — > Создать -> Новый параметр DWORD (32 бита) -> Называем его «DefaultTTL» .
Кликаем правой кнопкой по новому параметру -> Изменить -> На системе исчисления ставим точку «Десятичная» , в поле значение прописываем (ТТL 65).
Нажимаем «ОК» и перезагружаемся. После перезагрузки включаем на телефоне хотспот (раздаем wifi). Подключаемся к нему через свой ПК и всё. Если будет интересно, настроить свой телефон так, чтобы к нему могли подключаться все устройства с TTL 64, то пишите в комментариях — напишу об этом позже.
Изменяем TTL на MAC OS X с автозапуском
Напоминаю еще раз, все, что описано в этой статье требует root прав.
1) Идем в /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) Смотрим, что получилось в итоге:
9) А сейчас, мы не будем перезагружать комп, а просто стартанем скрипт, чтобы убедиться в его работоспособности:
sudo SystemStarter start autottl
10) Лезем в браузер, проверяем и получаем профит!