Команда ss с примерами: отображение информации о сети/сокете TCP/UDP в Linux

Команда ss используется для отображения статистики сокетов. Она может отображать статистику для сокетов: PACKETTCPUDPDCCPRAW, сокетов Unix и т.д. Также она позволяет отображать информацию, аналогичную команде netstat. Команда ss может отображать наибольшее количество информации о TCP по сравнению с другими инструментами. Это новый, невероятно полезный и быстрый (по сравнению с netstat) инструмент для отслеживания TCP-соединений и сокетов. SS может предоставить информацию о:

  • Всех сокетах TCP.
  • Всех сокетах UDP.
  • Всех установленных соединениях ssh/ftp/http/https.
  • Всех локальных процессах, подключенных к X-серверу.
  • Всех сокетах tcp в состоянии FIN-WAIT-1
  • Может выполнять фильтрацию по состоянию подключенных и синхронизированных, SYN-RECVSYN-SENTTIME-WAIT адресов и портов.

Continue reading «Команда ss с примерами: отображение информации о сети/сокете TCP/UDP в Linux»

Новый публичный DNS-сервер от Cloudflare

Встречайте – еще один public DNS с IP-адресом 1.1.1.1, на этот раз от Cloudflare. Из Киева до него пинг всего 1 мс (против 30 сек до широкоизвестных гугловых 8.8.8.8 и 8.8.4.4).

Итого список легко запоминающихся DNS-серверов выглядит теперь примерно так:

  • 1.1.1.1 (Cloudflare)
  • 4.2.2.2 (Level3)
  • 8.8.4.4 (Google)
  • 8.8.8.8 (Google)
  • 9.9.9.9 (Проект quad9.net от IBM и Packet Clearing House)

Resolve IP адресов на Linux — самое детальное исследование.

Настройка сетевого взаимодействия сервисов не самая простая задача и часто осуществляется без глубокого понимания как требуется настраивать систему и какие настройки на что влияют. После миграции сервисов в docker контейнерах с centos 6 на centos 7 я столкнулся со странным поведением вебсервера: он пытался присоединиться к сервису по IPv6, а сервис же слушал только IPv4 адрес. Стандартный совет в такой ситуации — отключить поддержку IPv6. Но это не поможет в ряде случаев. Каких? В этой статье я задался целью собрать и детально объяснить как приложения resolve‘ят адреса.

Прочев эту статью вы узнаете:

  • какой алгоритм в Linux для резолва хостнеймов;
  • как переопределить логику определения хостнеймов;
  • какие функции и библиотеки использует ОС;
  • какие ловушки существуют при конфигурировании и как их не допускать;

Continue reading «Resolve IP адресов на Linux — самое детальное исследование.»

Всё об IP адресах и о том, как с ними работать

Для начала, стоит сказать о том, что такое IP адрес.

IP-адрес — уникальный сетевой адрес узла в компьютерной сети, построенной на основе стека протоколов TCP/IP (TCP/IP – это набор интернет-протоколов, о котором мы поговорим в дальнейших статьях). IP-адрес представляет собой серию из 32 двоичных бит (единиц и нулей). Так как человек невосприимчив к большому однородному ряду чисел, такому как этот 11100010101000100010101110011110 (здесь, к слову, 32 бита информации, так как 32 числа в двоичной системе), было решено разделить ряд на четыре 8-битных байта и получилась следующая последовательность: 11100010.10100010.00101011.10011110. Это не сильно облегчило жизнь и было решение перевести данную последовательность в, привычную нам, последовательность из четырёх чисел в десятичной системе, то есть 226.162.43.158. 4 разряда также называются октетами. Данный IP адрес определяется протоколом IPv4. По такой схеме адресации можно создать более 4 миллиардов IP-адресов. Continue reading «Всё об IP адресах и о том, как с ними работать»

Runlevel в Linux

Уровень запуска — это программная конфигурация системы, которая позволяет запускать только выбранную группу процессов на определенном этапе.

Обычная последовательность загрузки в Linux состоит из нескольких этапов: Continue reading «Runlevel в Linux»

Об Ansible

Начнём новый год с буквы «A». Ansible.
Кстати, Анзи́бль — это такая фантастическая фиговина для мгновенной связи на межгалактических расстояниях.
А Ansible — это программка для удалённого запуска команд и совершения прочих нужных действий на куче серверов. Мы её используем для настройки серверов и деплоя наших сервисов уже на нескольких проектах.
Ансибл — чертовски гибкая штука. Настолько гибкая, что без определённых соглашений все эти таски и плейбуки легко превращаются в нечитабельную немодифицируемую глючную лапшу. Чего только стоит, что переменные в Ансибле можно определять индивидуально для каждого хоста, для группы хостов, умолчательные значения для роли, просто переменные для роли, переопределять в плейбуке, из командной строки, конкретно для данной задачи. А ещё переменные могут создаваться в результате выполнения задач, и использоваться в последующих задачах. А ещё есть факты, то есть переменные, автоматически собранные при инспектировании хостов, типа объема памяти, размера дисков и набора сетевых интерфейсов. Ужос.
Эмпирическим путём у нас сложились правила использования Ансибла. В основном вдохновлённые и следующие статье Миши Бланка «Laying out roles, inventories and playbooks».

Continue reading «Об Ansible»