Меняем TTL в Linux
Эти сети передаются пакетами. Пакеты перед тем как попасть адресату проходят несколько других сетевых узлов, чтобы оказаться в начале локальной сети адресата, а потом уже непосредственно к нему. Нередко подобные пакеты сбиваются с маршрута. Чтобы их направить на верный путь в сети, каждому пакету придали определенное время жизни.
За время своей жизни он отвечает параметр TTL. Это число узлов, которые может пройти пакет, перед уничтожением. Во время прохождения каждого узла значение TTL снижается до тех пор, пока время не достигнет значения нуль Чем больше TTL, тем более запутанные сети может проходить пакет.
Как изменить TTL в Linux
Низкоуровневые параметры сети TTL в Linux управляются ядром. Настраивать его можно при помощи интерфейса настройки ядра. Какой TTL используется в системе.? Воспользуемся командой ping:
В данных об отправке пакета виден TTL, с которым он был отправлен. Видим,что используется значение 64. Для Windows применяется значение TTL 128. Обычно этого хватит, так как между узлами сети минимум 20-30 маршрутизаторов. Не всегда стоит менять TTL, чтобы пакеты смогли достигать цели.
Изменение TTL возможно с корректировкой параметра net.ipv4.ip_default_ttl.
Пробуем такую команду:
$ sudo sysctl -w net.ipv4.ip_default_ttl=65
Для того чтобы изменения сохранились после перезагрузки можно прописать эту строчку настроек в файл /etc/sysctl.conf:
$ sudo vi /etc/sysctl.conf
net.ipv4.ip_default_ttl=65
После TTL будет 65:
Если вы не хотите менять параметры ядра, можно модифицировать TTL в пакеты при его прохождении через сетевой фильтр iptables. Для этого выполните такую команду:
$ iptables -t mangle -A POSTROUTING -j TTL —ttl-set 65
Это тоже будет работать. Смена TTL Linux выполняется совсем не сложно.
Как изменить TTL в Linux
Данные по сети передаются пакетами. При чём эти пакеты, прежде чем попадут адресату, проходят несколько других сетевых узлов чтобы добраться сначала в локальную сеть адресата, а потом уже непосредственно к нему. Иногда такие пакеты могут выбирать неверный маршрут и блудить. Чтобы они не блудили по сети вечность создавая ненужную нагрузку, у каждого пакета есть своё время жизни.
За время жизни пакета отвечает параметр TTL. Это количество узлов, которые может пройти пакет, прежде, чем он будет уничтожен. При прохождении каждого узла значение TTL для пакета уменьшается, пока не будет равным нулю. Таким образом чем больше TTL, тем более запутанные сети может проходить пакет. В этой статье мы рассмотрим как изменить TTL Linux.
Изменение TTL в Linux
Такими низкоуровневыми параметрами сети как TTL в Linux управляет ядро. Поэтому и настраивать его надо с помощью интерфейса настройки ядра. Но давайте сначала посмотрим какой TTL используется сейчас в вашей системе. Для этого можно воспользоваться командой ping:
В информации об отправке каждого пакета отображается TTL, с которым он был отправлен. В данном случае используется значение 64. Для Windows применяется значение TTL 128. Обычно этого вполне достаточно, поскольку между большинством узлов сети не больше 20-30 маршрутизаторов, которые необходимо пройти. Вряд-ли вам придется менять TTL чтобы пакеты смогли достигать нужной вам цели, но зато это может понадобится для обхода блокировок сотовых операторов и решения тому подобных задач.
Чтобы изменить TTL надо изменить значение параметра net.ipv4.ip_default_ttl. Для этого можно воспользоваться такой командой:
sudo sysctl -w net.ipv4.ip_default_ttl=65
Для того чтобы изменения сохранились после перезагрузки можно прописать эту строчку настроек в файл /etc/sysctl.conf:
sudo vi /etc/sysctl.conf
После этого ваш TTL будет 65:
Если вы не хотите менять параметры ядра, можно модифицировать TTL в пакеты при его прохождении через сетевой фильтр iptables. Для этого выполните такую команду:
iptables -t mangle -A POSTROUTING -j TTL —ttl-set 65
Это тоже будет работать. Как видите, смена TTL Linux выполняется совсем не сложно. Если у вас остались вопросы, спрашивайте в комментариях!
Как навсегда изменить TTL в Ubuntu?
Пробовал делать вот так, но увы, после перезагрузки ttl=64.
Deleted
12.05.18 11:51:53 MSK
Deleted
( 12.05.18 11:53:22 MSK )
Ответ на: комментарий от Deleted 12.05.18 11:53:22 MSK
Попробовал вот так:
sudo sysctl -w net.ipv4.ip_default_ttl=65
Но после перезагрузки все равно 64.
Deleted
( 12.05.18 11:56:08 MSK )
В нормальных дистрах есть /etc/sysctl.conf, не знаю как там в убунте.
ass ★★★★
( 12.05.18 11:58:47 MSK )
Ответ на: комментарий от Deleted 12.05.18 11:56:08 MSK
А, да, извини. Это временная установка.
Лучший вариант, наверное, это создать файл, какой-нибудь /etc/sysctl.d/99_default_ttl.conf, в который добавить net.ipv4.ip_default_ttl=65. Затем sudo sysctl —system.
Deleted
( 12.05.18 12:09:12 MSK )
Ответ на: комментарий от Deleted 12.05.18 12:09:12 MSK
Спасибо, это помогло =)
Deleted
( 12.05.18 16:04:52 MSK )
Ответ на: комментарий от ass 12.05.18 11:58:47 MSK
Это во всех дистрах
das_tier ★★★★★
( 12.05.18 18:26:14 MSK )
Ответ на: комментарий от das_tier 12.05.18 18:26:14 MSK
% cat /etc/sysctl.conf cat: /etc/sysctl.conf: No such file or directory
RazrFalcon ★★★★★
( 12.05.18 18:43:40 MSK )
Ответ на: комментарий от RazrFalcon 12.05.18 18:43:40 MSK
Это linux? Ща я с Соляры вывод принесу.
das_tier ★★★★★
( 13.05.18 00:36:17 MSK )
Ответ на: комментарий от das_tier 13.05.18 00:36:17 MSK
RazrFalcon ★★★★★
( 13.05.18 12:40:21 MSK )
Ответ на: комментарий от RazrFalcon 13.05.18 12:40:21 MSK
Ого, в Генту файл /etc/sysctl.conf считается legacy. А современным подходом считаются конфиги в /etc/sysctl.d/ ?
das_tier ★★★★★
( 13.05.18 14:13:10 MSK )
Ответ на: комментарий от RazrFalcon 13.05.18 12:40:21 MSK
Хз почему у тебя так, но вот:
$ qfile /etc/sysctl.conf sys-apps/baselayout (/etc/sysctl.conf)
Deleted
( 13.05.18 14:16:41 MSK )
Ответ на: комментарий от Deleted 13.05.18 14:16:41 MSK
Понятно, причина в этом:
$ equery d baselayout * These packages depend on baselayout: sys-fs/lvm2-2.02.166-r2 (>=sys-apps/baselayout-2.2)
Видимо по каким-то причинам его не убрали из baselayout
Deleted
( 13.05.18 14:22:59 MSK )
Последнее исправление: Deleted 13.05.18 14:26:21 MSK (всего исправлений: 1)
30 ноября 2018 г.
Ответ на: комментарий от Deleted 12.05.18 12:09:12 MSK
жизнь спас 🙂 Спасибо
pwnz434
( 30.11.18 17:32:15 MSK )
8 февраля 2019 г.
Ответ на: комментарий от Deleted 12.05.18 12:09:12 MSK
anonymous
( 08.02.19 17:39:46 MSK )
Ответ на: комментарий от ass 12.05.18 11:58:47 MSK
нормальные это те, с которыми ты сталкивался?
chenbr0 ☆
( 08.02.19 18:09:21 MSK )
21 августа 2019 г.
Ответ на: комментарий от Deleted 12.05.18 12:09:12 MSK
Всё помогло лучший вариант что можно было придумать
Rocker
( 21.08.19 00:17:12 MSK )
Ответ на: комментарий от das_tier 12.05.18 18:26:14 MSK
Не во всех, в генту делали так что этот файл не читался. Там патч для какого-то древнего бага в procps был, из генту патч выкинули и всё, файл больше не считывается. Обнаружить это конечно можно только постфактум и опытным путём.
anonymous
( 21.08.19 00:25:48 MSK )
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум зачем некоторые личности тюнингуют ttl? (2014)
- Форум Смена значения ТТL (2021)
- Форум Минимальный размер TCP буфера (2018)
- Форум TTL (2005)
- Форум OpenSUSE 12.2 net.ipv4.ip_forwarding (2012)
- Форум Непонятки с ttl (2013)
- Форум limit ttl (2016)
- Форум Изменение TTL (2017)
- Форум Откомпили ядро плохо (2001)
- Форум iptables > PREROUTING TTL (2012)
Форум русскоязычного сообщества Ubuntu
Страница сгенерирована за 0.042 секунд. Запросов: 23.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.