Изменение TTL в Windows, Linux, Mac OS для обхода раздачи интернета
overlamer1
Всем доброго времени суток, сегодня пойдёт речь о такой вещи, как раздача интернета. Согласитесь, не хочется платить вашему оператору за лишённую возможность.
Данные способы универсальны, в большинстве случаях операторов.
Но это не исключает «особого» вида обхода для какого то оператора, можно пробовать комбинировать способы.
Windows
Для начала откроем с вами редактор реестра:

переходим по данному пути:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

Нажимаем правой кнопкой мыши в пустом месте в правом окне, и создаём:
Параметр DWORD(32 бита) с названием «DefaultTTL»
После создания открываем его, выбираем десятичную систему исчисления
и задаём значение 65

Теперь находим в пути папку Tcpip6 и аналогично создаём параметр DWORD:

Готово. Для большего эффекта переходим с вами в настройки беспроводного адаптера, к примеру, и отключим ipv6:
правой кнопкой нажимаем на подключение — свойства

и убираем галочку с IP версии 6 (IPv6)

Нажимаем ОК. Перезагружаем ПК и проверяем TTL:
Открываем командную строку: (Win+R), вводим cmd
Прописываем: ping 127.0.0.1

Если TTL=65, значит всё прошло успешно.
Linux
Способ будет таким: прописываем в терминале
sudo vi /etc/sysctl.conf
net.ipv4.ip_default_ttl=65
Сохраните файл, нажав ESC и введя :w, закройте его и перезапустите sysctl для обновления конфигурации:
MacOS (OS X)
Заходим в меню “переход/к папке”, пишем /etc/
Копируем файл “sysctl.conf” в папку /etc/ (потребуется пароль администратора)
В настройках системы “Сеть” >”Wi-Fi” > “дополнительно” > вкладка TCP/IP, в “Конфигурация IPv6” выбираем “Выключить”.

- Если пункта “выключить” для Wi-Fi нет, используем команду терминала:
- networksetup -setv6off Wi-Fi
- Для раздающих по USB, команда:
- sudo networksetup -setv6off “iPhone USB”
Включить ipv6 можно не используя терминал. В окне настроек интерфейса нужно просто выбрать значение «автоматически»
Как установить TTL=129 на Mac OS X?
Вопрос очень нестандартный. Провайдер блокирует роутеры, и как вариант обхода можно установить время жизни пакетов на единицу больше чем по умолчанию, то есть 129. На windows это делается просто изменением значения в реестре, а как на Макбуке? Огромное спасибо знающим!
- Вопрос задан более трёх лет назад
- 78988 просмотров
Комментировать
Решения вопроса 1
mr-zherart @mr-zherart Автор вопроса
Ответ я нашел самостоятельно. Читать самый первый пост.
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 1
Mac OS 10.10
sudo sysctl -w net.inet.ip.ttl=65
вносит правку, но реально ttl не меняется, до обновления все работало. Интерфейсы перезапускать пробовал.
Перезагружаешь систему слетает на 64, раньше мне казалось, что на мак sysctl на все время меняет ttl, во всяком случае на android и debian точно перманентно, а если в /proc писать то до перезагрузки.
Нашел решение, sysctl действительно до перезагрузки работает, чтобы добиться постоянного значения:
1. Создаем файл /etc/sysctl.conf
2. В него добавляем строку
net.inet.ip.ttl=65
Ответ написан более трёх лет назад
Нравится 7 4 комментария
Создал файл в /etc/sysctl.conf добавил строку но после перезагрузки ttl слетает. В чем может быть причина?
Пробелов быть не должно, и проверьте права на этот файл, других предположений пока нет.
Еще некоторый софт игнорирует настройки ttl, например AppStore, Steam, антивирусы(на маке не проверял на windows точно), и поэтому провайдер может обнаружить раздачу интернета.
При команде sysctl net | grep ttl какое значение у net.inet.ip.ttl?

fr0lex, у меня так получилось. до этого создавал файл через Textedit и он прописывал туда стили шрифтов, поэтому ничего не работало
1. Открываем Terminal , пишем sudo nano /etc/sysctl.conf
2. вставляем net.inet.ip.ttl=65
3. Ctrl + O и Enter чтобы сохранить
4. Ctrl + X выйти
5. Закрываем терминал, перезагружаемся и работает!
Дмитрий Ра, спасибо, помогло) билайн не разрешает TTL < 64, поэтому изменение только в моем Redmi 4X не помогло, интернет не работал в смартфоне с TTL 63 (изменил его, разблокировав загрузчик и получив root-права). Поэтому через терминал прописал по Вашей инструкции 65, перезагрузил Mac, установил 65 в Redmi 4X программой TTL Master и вуаля!)
Изменение значения TTL

В некоторых жизненных ситуациях вам, как пользователю интернета возможно прийдется изменить значение TTL на нестандартное. Для чего это может пригодиться я писать не буду, опишу лишь как это значение изменить.
Что такое 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_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters
3.Здесь нам нужно кликнуть правой кнопкой мыши по полю справа, и выбрать “Создать —>Параметр DWORD(32 бита)”
4. Имя параметру задаём — “DefaultTTL”. Щёлкаем 2 раза по созданному параметру, выбираем Десятичную систему исчисления, и вводим значение 65.
5. Также создаём параметр DefaultTTL=65 для соседней ветки реестра — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6
Готово, TTL на компьютере изменён! Перезагружаем компьютер.
Меняем TTL на Mac OS
В данном случае у вас есть 2 варианта. Я предпочитаю первый.
Временное изменение значение TTL в Mac OS X (после перезагрузки TTL восстанавливается на дефолтное 64):
1. Открываем Терминал
2. Вводим команду:
How do you change the TTL in macOS High Sierra?
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
161 1 1 gold badge 1 1 silver badge 4 4 bronze badges
Will it be applied to ipv6 protocol? Tried net.inet6.ip6.ttl=65 but get unknown oid error message from system.
Aug 25, 2018 at 6:07
@basil, want to try net.inet6.ip6.hlim=65
Jun 11, 2020 at 0:58
2 Answers 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
103k 17 17 gold badges 178 178 silver badges 232 232 bronze badges
My mistake on the interpretation of ping. Was about 6 months since I messed with this on an OS prior to High Sierra. So if I changed the TTL +1, for example from 64 to 65, I should see a ping TTL also increase by 1. Which I am not seeing in 10.13.5.
Jul 6, 2018 at 21:30
@Brett I think you’re still misinterpreting the ping output. It has never shown you the TTL you’re sending on ICMP Echo Request packets you send. It shows you the TTL on the ICMP Echo Reply packets you receive, which have nothing to do with your local host’s TTL settings, and everything to do with the remote host’s TTL settings (minus the number of hops the replies took to get across the network to you). Prove this to yourself with tcpdump, or by pinging the TTL-adjusted Mac from another machine on your LAN (make your Mac the ping responder, not the ping requester).
Jul 6, 2018 at 22:14
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
Label com.gvalkov.ttl65 MachServices com.gvalkov.ttl65 Program /usr/bin/sysctl ProgramArguments /usr/bin/sysctl net.inet.ip.ttl=65 UserName root GroupName wheel KeepAlive RunAtLoad
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. 🙁
