Данные по сети передаются пакетами. При чём эти пакеты, прежде чем попадут адресату, проходят несколько других сетевых узлов чтобы добраться сначала в локальную сеть адресата, а потом уже непосредственно к нему. Иногда такие пакеты могут выбирать неверный маршрут и блудить. Чтобы они не блудили по сети вечность создавая ненужную нагрузку, у каждого пакета есть своё время жизни.
За время жизни пакета отвечает параметр TTL. Это количество узлов, которые может пройти пакет, прежде, чем он будет уничтожен. При прохождении каждого узла значение TTL для пакета уменьшается, пока не будет равным нулю. Таким образом чем больше TTL, тем более запутанные сети может проходить пакет. В этой статье мы рассмотрим как изменить TTL Linux.
Изменение TTL в Linux
Такими низкоуровневыми параметрами сети как TTL в Linux управляет ядро. Поэтому и настраивать его надо с помощью интерфейса настройки ядра. Но давайте сначала посмотрим какой TTL используется сейчас в вашей системе. Для этого можно воспользоваться командой ping:
ping 127.0.0.1
В информации об отправке каждого пакета отображается 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 выполняется совсем не сложно. Если у вас остались вопросы, спрашивайте в комментариях!
В арч линуксе и манжаро не работает. Рабочий метод:
sudo nano (или другой текстовый редактор) /etc/sysctl.d/99-sysctl.conf
и в него
net.ipv4.ip_default_ttl=65
и перегрузить
Взято: https://manjaro.ru/manjaro-xfce-edition/izmena-ttl-v-manjaro.html
Добрый день. Может вы сделаете статью про лучшие эмуляторы android для Linux? Или альтернативную реализацию api android (как wine для windows). Кстати пытаюсь установить Ubuntu 22.04 LTS с флешки. При попытке установки вылезает ошибка ZSID-compressed data is corrupt
-- System halted_
Из за чего возникает данная ошибка и как ее решить?
Еще можно сделать подробный гайд как компилировать программы с гитхаба для тех кто не в теме.
Хороший сайт. В первую очередь открываю его с поисковика, поскольку все моменты максимально доходчиво описываются. В последнее время провайдер словно взбесился. Сбрасывает соединения при раздаче. Пока все работает согласно вашей инструкции, спасибо.
Здравствуйте!
При попытке вторым способом
пишет:
unknown option "--ttl-set"
попробуй использовать sudo