Обход ограничение на раздачу мобильного интернета
Сейчас сложилась такая тенденция, что некоторые провайдеры мобильной связи ограничивают возможность раздачи интернета с устройства. Это свойственно семейным тарифам, которые включают в себя домашний интернет и телевидение.В данной статье рассказывается, как это недоразумение устранить. Статья носит исключительно академический характер.
И так, что нам понадобится. Смартфон с функцией раздачи интернета (internet sharing), компьютер с macOS, и все. Получать рут-доступ к смартфону не понадобится. Все делается буквально одной командой в терминале.
Для начала совсем немного теории. Как вообще операторы определяют, что устройство подключено через шлюз смартфона? В структуре пакета протокола IP (Internet Protocol) есть поле TTL (Time To Live) с целочисленным значением. Когда пакет данных покидает устройство, поле TTL устанавливается в определенное значение, например, 128. При каждом прохождении очередного маршрутизатора (коим также является и наш смартфон с точки зрения ноутбука), данное значение уменьшается на 1. То есть, наш смартфон, передавая пакет, отправленный с макбука, передаст этот пакет на роутер провайдера с TTL=127. И вот здесь провайдер и понимает, что пакет прошел уже один роутер, а значит, имеет место факт раздачи интернета.
Как с этим бороться?
К счастью, в macOS это делается всего одной командой терминала.
Но для начала нужно определить, какой TTL у нашего смартфона.
1. Для этого подключаемся как обычно к хотспоту нашего смартфона, и идем в настройки сети, чтобы узнать IP-адрес нашего шлюза (смартфона).
2. Ищем наш текущий IP адреc, который был присвоен роутером смартфона нашему макбуку.

Допустим, это 172.20.10.7
Тогда адрес шлюза в большинстве случаев будет 172.20.10.1 (последнее число меняется на 1)
3. Далее выполняем пинг шлюза.
$ ping 172.20.10.1 PING 172.20.10.1 (172.20.10.1): 56 data bytes 64 bytes from 172.20.10.1: icmp_seq=0 ttl=64 time=2.165 ms 64 bytes from 172.20.10.1: icmp_seq=1 ttl=64 time=10.146 ms 64 bytes from 172.20.10.1: icmp_seq=2 ttl=64 time=3.050 ms 64 bytes from 172.20.10.1: icmp_seq=3 ttl=64 time=1.994 ms
получаем значение TTL=64.
4. Далее прибавляем единицу к этому значению и выполняем команду
sudo sysctl net.inet.ip.ttl=65 net.inet.ip.ttl: 65 -> 65
команда требует ввода админ пароля.
И после этого интернет на макбуке должен появиться.
История создания данного продукта возвращает меня на 5 лет назад во времена, когда я только начал входить в мир Apple технологий, а именно — мигрировать на операционную систему Mac OS X. Как и для многих пенреход был связан с некоторыми неудобставми из-за отсутствия привычных программ и элементов управления системой. Одним из недоразуменей стало отсутствие аналога кнопки Пуск для запуска программ путем выбора из списка. Честно говоря, до сих пор не уверен, что я правильно запускаю программы в OS X (для этого я использую Spotlight). И вот, спустя несколько лет я решил устранить этот недостаток.
Эту заметку мне захотелось написать после нескольких неприятных моментов, связанных с утратой работоспособности моего мак-компьютера. После очередного системного обновления Maverick макбук перестал загружаться. Серый экран с яблоком и индикатор загрузки и дальше ни в какую. Я думал, что уже не столкнусь с таким никогда — времена хакинтоша давно позади. Некоторое время я был очень подавлен и не мог осознать реальность. Сразу вспомнил про вербальный режим загрузки (Cmd-V при включении питания). Запустил в этом самом verbose-режиме загрузку и вот что увидел в конце: 


Хочу поделиться с вами своей радостью в связи с торжеством человеческого разума. Таких моментов в жизни крайне мало (в моей так точно), поэтому это так и радует :)…
С публикацией очередного приложения в AppStore возникли некоторые осложнения. Пока ведется битва с командой iTunes Connect (позже напишу, как это было), параллельно занимаюсь разработкой следующего iOS проекта. Ядро уже спроектировано и есть черновой вариант. В этом проекте я планирую реализовать немного клиент-серверной технологии. Разработку серверной части решил вести на локальном компьютере. Ранее я это делал на своем домашнем серваке, но с недавнего времени отправил его на пенсию (старенький он уже), а новый еще до конца не сконфигурировал. Переехав на Mac OS X Lion, пришлось кой-что переустанавливать вручную, так как Ассистент Миграции не восстанавливает ненативные программы. Пришлось опять долго вспоминать, как поднять стек Mac OS X, Apache, MySQL, PHP — решил использовать классический server-side. Чтоб в следующий раз не мучаться воспоминаниями, накидаю парочку хинтов.
Помимо