Как по ping узнать операционную систему хоста
Добрый день уважаемые читатели блога, сегодня я хочу вас спросить, а умеете ли вы по команде пинг определить какое устройство или операционная система вам отвечает, если нет, то вы пришли по адресу и я вам расскажу еще одно назначение утилиты ping. Думаю данный материал, будет полезен как новичкам, так и продвинутым пользователям, особенно когда вы ищите причину неисправности в сети или сервисе, встречал много раз, что вы думаете, что вам отвечает один сервер, а на самом деле это другой, так как кто то, что то поменял и не задокументировал.
Значение ttl
Ранее я вам рассказывал про модель OSI, и там у сетевого пакета, есть такое значение TTL (Time To Life), если перевести, то это время жизни пакета. TTL это некий счетчик, который уменьшается на единицу, при прохождении сетевого пакета или как его еще называют, кадра через маршрутизатор, делается это для того, чтобы он, при невозможности найти пункт назначения, вечно не бегал по роутерам, создавая нагрузку и паразитный трафик.
Именно время жизни пакета (TTL) нам и поможет, определить кто там с другой стороны. У каждой операционной системы этот показатель свой, так например
- Cisco TTL > равен 255
- ttl windows > равен 128
- Unix ttl > равен 64
- Android и IOS Apple> 65
- Lumia > 130
Как видите у всех он разный, и давайте разбираться, для примера я пропингую коммутатор Cisco, для этого открываем командную строку Windows, у вас может и linux быть.
Как видите значение ttl тут 255, что и показывает, что отвечает вам IOS у устройства Cisco, как видите команда ping отлично узнала операционную систему хоста с другой стороны.
Попробуем пропинговать unix систему, у меня например в локальной сети шлюзом выступает Kerio Control, на linux версии. Пингуем.
Как видите тут значение ttl равно 64, что означает unix платформу, так могут отвечать различные D-link устройства и другие домашние роутеры.
Давайте еще проверим Windows платформы, например у меня есть Windows 8.1 в локальной сети, сделаем пинг. И видите, что оно равно 128, как я и говорил.
Вот вам. тогда загадка, пингуем Windows Server 2012 R2, на нем есть веб сайт relay.aetp.ru. Что вы видите, а то что значение ttl равно 120, но в Windows же 128 по умолчанию идет, не стыковка 🙂
Все дело в хопах, помните в определении я вам говорил, что значение ttl уменьшается на единицу при следующем шаге и проходе через маршрутизаторы, давайте произведем трассировку до данного адреса.
Как видите сетевой пакет проходит не один хо до нужного адреса, и на определенных этапах он теряет от ttl по единичке. Все теперь вы знаете как узнать ttl windows.
Как изменить ttl windows
Давайте рассмотрим ситуацию, что вам нужно изменить ttl windows, поверьте бывают такие ситуации в жизни, примером может быть компания Yota, с ее дурацкой политикой ограничений Yota на раздачу Wi-Fi. Представим ситуацию, что взяли себе оператора Yota на телефон и решили раздать Wifi на ноутбук, но вы даже не знали подводных камней. в плане фильтрации пакетов со стороны Yota. Она жестко режет скорость, и режет она посредством значения ttl, оно должно быть 64, а если у вас дополнительное устройство, то это лишний хоп и значит ttl меньше, вот для обхода этой подставы с раздачей Wifi на ноутбук от Yota, мы и изменим ttl. Менять ttl мы будем в Windows 10, но данные действия подойдут и для Windows 7 и 8.1.
В итоге у вас откроется редактор реестра Windows. Вам нужно перейти в ветку реестра
В разделе вам нужно создать значение, все зависит от разрядности Windows, если 32 битная, то создаем параметр DWORD (32 бита), если 64 битная, то QWORD (64 бита). Я создаю QWORD.
эта лишняя единица, как раз и пойдет на лишний скачок через ваш телефон с ноутбука и Yota ничего не увидит, как видите изменить ttl windows 10, очень просто.
Как изменить ttl Ubuntu, Debian
И так с Windows мы уже научились, менять ttl, но не у всех стоит именно он, есть люди с Ubuntu например, давайте учиться как обойти ограничение на раздачу интернета через телефон на компьютер с Ubuntu на борту, в случае, если ваш оператор Йота, вы должны сделать несколько простых вещей.
1) Нажать одновременно Ctrl+Alt+T. Так вы вызовете терминал.
2) Ввести первую команду:
Нажать Enter.
3) Попросит ваш пароль, вводим, жмем Enter, далее жмем i — это введет редактор vi в режим редактирования.
4) Вводим сам скрипт фиксирования TTL Ubuntu на значении 65, если у вас Android или iOS (у них стандартный TTL=64), если вы обладатель Люмии, где стандартный TTL равен 128, вам вместо 65 нужно прописать 129. Все это по простейшей формуле, ttl на компе должен быть на 1 больше, чем ttl на телефоне, с которого вы раздаете. Теорию я вам рассказал, а теперь сам скрипт:
sudo iptables -t mangle -A POSTROUTING -j TTL --ttl-set 65 (вот это значение меняйте сами, теория выше в помощь)
5) Далее, для окончания редактирования жмем Esc. Потом сохраняем файл, зажимая Shift+ZZ.
6) Теперь необходимо проставить скрипту права на запуск:
Нажимаем Enter.
7) Теперь последнее, добавляем все это дело в автозапуск:
8) Нажимаем Enter. Все будет делаться автоматически и без вашего участия.
Как изменить ttl MacOS
Ну и конечно, нельзя обижать яблочников 🙂 Для изменения ttl на mac делаем следующее
Идем в /Library/StartupItems. Открываем терминал и прописываем: ~> cd /Library/StartupItems/
Создаем там папку (например, это будет yota). В терминале пишем: /Library/StartupItems> sudo mkdir yota
Идем туда. В терминал вставляем: /Library/StartupItems> cd yota/
4) Создаем там скрипт (он должен называться так же как и папка), который хотим выполнять.
Для создания скрипта в терминал вбиваем:
/Library/StartupItems/yota> sudo vim yota
И тут откроется редактор Vim! Сюда копируем сам скрипт:
# Скрипт смены ttl на Mac OS X:
sudo sysctl -w net.inet.ip.ttl=65
И закрываем Vim с сохранением результата, вводим в виме (редакторе): yota
5) Создаем файл параметров StartupParameters.plist.
/Library/StartupItems/yota> sudo vim StartupParameters.plist
И тут опять откроется редактор Vim! Сюда копируем содержание файла параметров:
Самое главное, чтобы в строчке Provides было прописано то же имя, что и название скрипта и название папки:
Description = 'Add static routing tables';
Provides = ('yota');
Requires = ('Network');
OrderPreference = 'None';
}
И опять закрываем Vim с сохранением результата, для этого вводим: w! StartupParameters.plist
6) Выставляем права на выполнение нашему скрипту.
/Library/StartupItems/fuckingyota> sudo chmod 755 yota
7) в итоге получаем: /Library/StartupItems/yota> ll
9) А сейчас, мы не будем перезагружать комп, а просто стартанем скрипт, чтобы убедиться в его работоспособности:
/Library/StartupItems/yota> sudo SystemStarter start fyota
Резюмируя мы с вами рассмотрели какие значения ttl у каждой операционной системы, рассмотрели для чего они. Мы научились менять ttl на самых распространенных системах, если есть вопросы пишите их в комментариях.
Прикольное использование команды пинг
Привет! Я играю в варфейс. TTL на альфа 56. У меня винда 7 (там 128TTL). Какое значение TTL мне выставить в винде. Заранее спс.
Я если честно не игрок и не знаю, что такое варфейс, в Windows уже ttl сделан таким какой он должен быть, а в чем проблема оставаться с параметром 128?
А как изменить TTL Android? И сколько поставить, что бы нормально раздавать wi-fi?
Есть приложение TTL Editor, но там требуются root права.
Это приложение не работает для оператора мтс. Пришло мне уведомление, что с 10.11.2016 за раздачу инета на тарифе «безлимитище» будут снимать 30 зублей. Я установил это приложение. Сегодня пришло уведомление, что я использую передачу инета. И с меня сняли 30 р..
Уроды, что сказать, я поищу еще варианты, если найдете что то рабочее, напишите в комментарии
Здравствуйте! Подскажите, у меня симка вставлена в роутер от МТС 823F, я с ним не чего не делал, я раздаю по WiFi подключаю ноутбук, я на ноутбуки сменил TTL 65, и бывает подключаются смартфон к роутеру, и мне приходят смс Что я раздаю интернет, не подскажите сто сделать? Спасибо!
Возможно у них еще по каким то параметрам идет определение, я поизучаю данный вопрос
Почему для виндовс указываем 130, а для ибунту 129???
Специфика ОС
Товарищи помогите. Я с макбуками не знаком вообще. задача — TTL поменять на постоянный равный 65. НО что то у меня не работает смена TTL. Делаю все по инструкции, все получается. создаю файл в папке etc, прописываю туда net.inet.ip.ttl=65. перезагружаю проверяю Ping-ом в терминале, пишет ttl=51, причем пингую разные сайты и он каждый раз разный ТТЛ показывает, то 55, то 51, то 53! как так то?! пробую в терминале сменить TTL командой net.inet.ip.ttl=65 (как в инструкции в инете), он пишет что все отлично ttl сменил со стандратного 64 на 65. Не перезагружаясь сразу иду проверять командой ping и он опять пишет каждый раз разный ттл, например пинг до google.com ТТЛ=55, до яндекса ТТЛ=51 и т.д. мак бук эйр — os el capitan 10.11.2 Помогите победить этот дьявольский аппарат. (блин как же на винде все легко, а тут я только полчаса потратил чтоб понять как попасть в папку etc). помогите
Разные ttl До сайтов, разные потому, что до них ваш пакет идет через разное количество узлов, и на каждым ttl уменьшается на 1.
а как узнать Tyler на Sony ps3? Спасибо!
а как узнать Ttl на Sony ps3? Спасибо!
так как операционная система на sony playstation 3 GNU/Linux, то и ttl как нLinux
здравствуйте, а верно ли то что QWORD после создания вновь возвращается к шестнадцатиричной системе исчисления?
кто поможет разобраться со сменой ttl mac os 10.12.2 с меня 10 $ )
Здравствуйте, Раздаю Wi-fi с планшета Ipad на комп (Windows7), интернет на планшете «Билайн», Поставил на компе TTL 65, но скорость все равно осталась ограниченной. Подскажите пожалуйста как здесь быть?
Здравствуйте!Изменил ттл для андроид 65 ,все устройства работают ,кроме LEAGOO-M8 на freeme os — жестко палится
LEAGOO-M8 на freeme o, такого не встречал.
Хорошая статья. Толково расписано что к чему. Спасибо.