Чтобы использовать устройства хранения данных, такие как USB-накопители и жесткие диски в Linux, вам также необходимо понимать, как их структурировать при использовании операционной системы Linux. Запоминающие устройства часто делятся на отдельные части, называемые разделами. Это позволяет вам создать файловую систему, разбив жесткий диск на несколько виртуальных частей.
Дисковый раздел Linux похож на граничное устройство, которое сообщает каждой файловой системе, сколько места он может использовать. Это удобно при создании общих дисков и позволяет более эффективно распределять и редактировать дисковое пространство.
Например, если у вас есть USB-накопитель объемом 2 ГБ, вы можете создать раздел, занимающий весь диск, два раздела по 1 ГБ каждый или варианты размеров. Каждый раздел диска Linux действует как собственный жесткий диск. Это особенно полезно, если вы используете более одной операционной системы на одном компьютере.
Используйте команду Parted
Ubuntu поставляется с предустановленным parted . Если вы используете другой дистрибутив, установите его с помощью следующей команды:
apt-get-install parted
Чтобы увидеть жесткие диски в вашей системе, введите: sudo parted -l . Смотрите список устройств на скриншоте ниже:
Вы можете видеть выше, что на диске /dev/sda есть три диска с разделами Ubuntu. Давайте используем раздел под названием /dev/sda5 для создания нового раздела.
Следующим шагом является запуск parted. Но убедитесь, что вы используете привилегии root. Выберите диск, который вы хотите разбить на разделы. Мы будем использовать /dev/vdc.
Введите следующую команду:
(parted) select /dev/vdc
Чтобы увидеть, что находится в разделе диска Linux, введите: print. Вы увидите сводку вашего жесткого диска, размер и таблицу разделов.
В приведенном ниже примере жестким диском является модель: блочное устройство Virtio, его размер составляет 1396 МБ , а таблица разделов — gpt.
Чтобы настроить диск раздела Ubuntu, сначала необходимо выйти, набрав quit. Следующим шагом является открытие выбранного устройства хранения с помощью parted. В этой статье мы будем использовать устройство /dev/vdc.
Если вы не укажете конкретное устройство, которое хотите использовать, ваша система случайным образом выберет устройство. Используйте команду ниже, которая включает имя устройства (vdc):
sudo parted /dev/vdc
Чтобы установить таблицу разделов, введите GPT , затем Да, чтобы принять ее. Это следует делать только на разделах, которые не содержат данных, которые вы хотите сохранить.
Просмотрите таблицу разделов, чтобы показать информацию об устройстве хранения с помощью следующей команды:
(parted) print
Чтобы увидеть инструкции по созданию нового раздела, введите (parted) help mkpart.
В этой статье мы создадим новый раздел диска Linux с помощью команды ниже:
(parted) mkpart primary 0 1396MB
0 означает, что вы хотите запустить раздел в начале диска. Из скриншота выше мы знаем, что накопитель имеет 1396 МБ. Приведенная выше команда указывает вашей системе запустить раздел с 0 и завершить его с 1396MB.
Чтобы иметь возможность использовать раздел, он должен быть отформатирован. Сначала вам нужно выйти parted, набрав quit. Затем, используя файловую систему ext4, введите команду ниже для форматирования диска:
mkfs.ext4 /dev/vdc
Проверьте, набрав sudo parted /dev/vdc. Чтобы выйти из parted, введите quit. При выходе из parted изменения сохраняются автоматически.
В командном режиме используйте однобуквенную команду, чтобы показать вам список действий, которые вы можете выполнить. Введите m и нажмите Enter.
Создать разделы диска с помощью cfdisk
Cfdisk — это утилита Linux, используемая для создания, удаления и изменения разделов на дисковом устройстве. Чтобы использовать его для создания раздела, введите следующую команду:
# cfdisk /dev/sda
Имя диска для этого примера — sda.
На скриншоте выше вы можете увидеть сводную информацию для дискового устройства. В середине окна показана таблица разделов. Скобки внизу показывают выбираемые команды.
Чтобы выбрать раздел из списка, используйте клавиши со стрелками вверх и вниз. Выберите команду, используя стрелки вправо и влево.
В приведенном выше примере показаны три основных раздела (1,2 и 3). Обратите внимание на тип раздела свободного пространства .
Создайте новый раздел, выбрав Новый в нижнем окне. Мы будем называть этот раздел /dev/sdb. Введите команду # cfdisk /dev/sdb. Затем выберите основной в качестве типа раздела на следующем экране.
На следующем экране вы укажете размер раздела. Мы создадим раздел размером 800 КБ. Теперь вам будет предложено определить, с чего начать раздел. Выберите начало свободного места.
На следующем экране выберите « Запись», чтобы сохранить изменения и записать данные раздела на диск. Проверьте новый раздел, напечатав его с помощью следующей команды:
fdisk -l /dev/sdb
Заключительные советы по созданию разделов диска Linux
Вы всегда должны резервировать свои данные. Даже самая маленькая ошибка может разрушить раздел критического диска.
Кроме того, не забудьте проверить, что вы используете правильный диск при создании раздела. В противном случае вы можете потерять данные.
VoIP — кодеки, понимаются различные математические модели используемые для цифрового кодирования и компрессирования (сжатия) аудио информации. Многие из современных кодеков используют особенности восприятия человеческим мозгом неполной информации: алгоритмы голосового сжатия пользуются этими особенностями, вследствие чего не полностью услышанная информация полностью интерпретируется головным мозгом. Основным смыслом таких кодеков является сохранение баланса между эффективностью передачи данных и их качеством.
G.711
Кодек G.711 это самый базовый кодек ТфОП (PSTN). В рамках данного кодека используется импульсно-кодовая модуляция PCM. Всего в мире используется 2 метода компандирования (усиления сигнала) G.711: µ – закон в Северной Америке и A – закон в остальной части мира. Данный кодек передает 8 – битное слово 8 000 раз в секунду. Если умножить 8 на 8 000, то получим 64 000 бит – то есть 64 Кб/с, скорость потока, создаваемого G.711.
Многие люди скажут, что G.711 это кодек, в котором отсутствует компрессирование (сжатие), но это не совсем так: сам по себе процесс компандирования является одной из форм компрессирования. Все мировые кодеки «выросли» на базе G.711.
Важная особенность G.711 в том, что он минимально загружает процессор машины, на которой он запущен.
G.726
Этот кодек использовался некоторое время, став заменой для G.721, который на тот момент устарел, и является одним из первых кодеков с алгоритмом компрессии. Он так же известен как кодек с адаптивной импульсно-кодовой модуляции (Adaptive Differential Pulse-Code Modulation, ADPCM) и может использовать несколько скоростей потока передачи. Наиболее распространенные скорости передачи это 16, 24 и 32 Кб/сек.
Кодек G.726 почти идентичен G.711 – единственным отличием является то, что он использует половину полосы пропускания. Это достигается путем того, что вместо отправки полного результата квантования, он отправляет только разницу между двумя последними измерениями. В 1990 году от кодека практически отказались, так как он не мог работать с факсимильными сигналами и модемами. Но в наше время, из – за своей экономии полосы пропускания и ресурсов центрального процессора у него есть все шансы вновь стать популярные кодеком в современных сетях.
G.729A
Учитывая то, какую малую полосу пропускания использует G.729A, всего 8 Кб/сек., он обеспечивает превосходное качество связи. Это достигается за счет использования сопряженной структуры с управляемым алгебраическим кодом и линейным предсказанием (Conjugate-Structure Algebraic-Code-Excited Linear Prediction, CS-ACELP). По причине патента, использование данного кодека является коммерческим; однако это не мешает кодеку G.729A быть популярным в различных корпоративных сетях и телефонных системах.
Для достижения такой высокой степени сжатия, G.729A активно задействует мощности процессора (CPU).
GSM
Кодек для глобального стандарта цифровой мобильной сотовой связи (Global System for Mobile Communications, GSM) не обременен лицензированием, как его аналог G.729A, но предлагает высокое качество и умеренную нагрузку на процессор при использовании 13 Кб/сек. полосы пропускания. Эксперты считают, что качество GSM несколько ниже чем G.729A.
iLBC
Кодек iLBC (Internet Low Bitrate Codec) сочетает в себе низкое использование полосы пропускания и высокого качества. Данный кодек идеально подходит для поддержания высокого качества связи в сетях с потерями пакетов.
iLBC не так популярен как кодеки стандартов ITU и поэтому, может быть не совместим с популярными IP – телефонами и IP – АТС. Инженерный совет Интернета (IETF) выпустил RFC 3951 и 3952 в поддержку кодека iLBC.
Internet Low Bitrate кодек использует сложные алгоритмы для достижения высокого показателя сжатия, поэтому, весьма ощутимо загружает процессор.
В настоящий момент iLBC используется бесплатно, но владелец этого кодека, Global IP Sound (GIPS), обязует уведомлять пользователей о намерении коммерческого использования этого кодека. Кодек iLBC работает на скорости в 13.3 Кб/сек. с фреймами в 30 мс, и на скорости 15.2 кб/сек. с фреймами в 20 мс.
Speex
Кодек Speex относится к семейству кодеков переменной скорости (variable-bitrate, VBR), что означает возможность кодека динамически менять скорость передачи битов в зависимости от статуса производительности сети передачи. Этот кодек предлагается в широкополосных и узкополосных модификациях, в зависимости от требования к качеству.
Speex полностью бесплатный и распространяется под программной лицензией университета Беркли (Berkeley Software Distribution license, BSD). Кодек работает на диапазонах от 2.15 до 22.4 Кб/сек. в рамках переменного битрейта.
G.722
G.722 является стандартом ITU-T (International Telecommunication Union – Telecommunication sector) и впервые опубликован в 1988 году. Кодек G.722 позволяет обеспечить качество, не ниже G.711 что делает его привлекательным для современных VoIP разработчиков. В настоящий момент патент на G.722 не действителен, и этот кодек является полностью бесплатным.
Debian является одним из старейших и наиболее распространенных дистрибутивов Linux в мире свободного и открытого исходного кода. Он также служит основой для Ubuntu, самой популярной версии настольного Linux.
Миллионы людей используют версию Linux, основанную на Debian, но как насчет самого Debian? Почему вы можете установить Debian напрямую?
1. Debian стабилен и надежен
У людей разные ожидания, когда они используют Linux. Некоторые хотят иметь последнюю версию программного обеспечения как можно скорее, даже если это означает, что имеешь дело с более высоким риском сбоев или ошибок. Другие просто хотят, чтобы их ПК работал и был надежным.
Debian хорошо известен своей стабильностью. Стабильная версия, как правило, предоставляет более старые версии программного обеспечения, поэтому вы можете запустить код, который вышел несколько лет назад. Но это означает, что вы используете программное обеспечение, у которого было больше времени для тестирования и с меньшим количеством ошибок. Вы можете ежедневно открывать свой компьютер с малой вероятностью каких-либо сюрпризов.
2. Вы можете использовать каждую версию в течение длительного времени
У Debian нет регулярного графика выпуска. Новые версии выходят, когда они готовы, что обычно происходит каждые два-три года. Разрыв, как правило, даже больше, чем долгосрочные версии поддержки Ubuntu.
Это может звучать как негатив, но всякий раз, когда вы переходите с одной версии операционной системы на другую, вы рискуете сломать программное обеспечение. Это имеет место независимо от того, используете ли вы Linux, Windows или macOS. Вы также должны иметь дело с временем простоя, необходимым для вашего компьютера, чтобы загрузить и обновить все необходимые биты. С меньшим количеством выпусков вы можете использовать Debian в течение более длительного периода времени.
3. Debian идеально подходит для серверов
Благодаря стабильному программному обеспечению и длительным циклам выпуска Debian является одним из многих замечательных дистрибутивов Linux, которые могут питать ваш сервер. Вам также не нужно искать отдельную версию Debian. Вы можете просто отказаться от установки среды рабочего стола во время установки и использовать вместо этого инструменты, связанные с сервером.
Ваш сервер не должен быть подключен к сети. Вы можете использовать Debian для включения собственного домашнего сервера, доступного только компьютерам в сети Wi-Fi. Если вы объедините его с Nextcloud или OpenMediaVault, у вас есть удобная замена облака.
Стабильное, проверенное временем программное обеспечение — это здорово, но многие из нас хотят, чтобы на наших ПК были установлены последние версии программного обеспечения. Когда приложения и интерфейсы приобретают новые функции, ждать, пока они придут в Debian, дольше, чем многие из нас готовы.
К счастью, есть несколько версий Debian на выбор. Хотя Debian Stable устарела на несколько лет, это не единственная доступная версия. Если вы выберете Debian Testing, Unstable или Experimental, вы можете выбрать баланс между стабильностью и новейшими функциями, которые вам наиболее удобны.
В нестабильной или экспериментальной Debian вместо ожидания запуска новых версий Debian вы можете использовать одну непрерывную версию, которая регулярно получает обновления для приложений и компонентов по мере их появления. Это делает Debian готовым к выпуску дистрибутивом, который легче устанавливать, чем альтернативы, такие как Arch Linux.
5. Debian поддерживает многие архитектуры ПК
Когда вы впервые переключаетесь на Linux, самым важным вопросом является возможность установки дистрибутива. Например, если у вас Mac с процессором PowerPC, а не Intel, ваши возможности более ограничены. Даже с аппаратным обеспечением Intel, если у вас более старая 32-битная машина, многие дистрибутивы Linux больше не будут работать.
Debian предоставляет установщики для широкого спектра архитектур. Вы можете запускать Debian на 32- и 64-разрядных компьютерах Intel. Поддержка также доступна для 64-битных компьютеров PowerPC. Хотите запустить Linux на ARM или MIPS? Debian тоже это делает.
6. Debian — крупнейший управляемый сообществом дистрибутив
Многие люди тянутся к Linux из-за культуры свободного программного обеспечения. Операционная система GNU показала, что код можно разрабатывать, совместно использовать и поддерживать без прибыли, способствующей созданию. Однако это не означает, что компании не являются частью уравнения. Многие из самых популярных дистрибутивов (Ubuntu, Fedora, openSUSE, элементарная ОС) имеют компанию, управляющую проектом.
Debian другой. Debian — это массивный управляемый сообществом дистрибутив. Нет ни одной компании, которая бы руководила созданием Debian, поддерживая его инфраструктуру или руководила проектом. Если вы доверяете этому соглашению, чтобы сохранить проект свободным или более согласованным с вашими ценностями, то это может быть единственной причиной придерживаться Debian.
7. У Debian отличная поддержка программного обеспечения
Формат Debian DEB, во многом благодаря тому, что многие люди используют Ubuntu, сейчас является самым распространенным форматом приложений в мире Linux. Хотя не все DEB, которые работают на Ubuntu, работают на Debian, есть хороший шанс, что вы найдете DEB для обоих.
Прежде чем вы начнете искать стороннее программное обеспечение, в Debian есть несколько крупнейших репозиториев программного обеспечения, которые вы найдете. За исключением более нового программного обеспечения, есть большая вероятность, что приложение с открытым исходным кодом, которое вы ищете, уже есть.
8. Вы хотите быть ближе к источнику
Debian не основан ни на каком другом дистрибутиве Linux. Это означает, что программное обеспечение, доступное в репозиториях Debian, было упаковано специально для Debian.
Для сравнения рассмотрим Linux Mint, дистрибутив на основе Ubuntu, который основан на Debian. Когда вы устанавливаете приложение, у вас может быть два слоя, удаленных из источника. У некоторых программ Ubuntu есть твики, но большая их часть такая же, как в Debian. Если вы не хотите выяснять, где в цепочке появилась ошибка, запуск Debian может избавить вас от хлопот.
9. Вы можете установить бесплатную версию программного обеспечения
Когда вы устанавливаете большинство дистрибутивов Linux, закрытые проприетарные двоичные двоичные объекты становятся частью ядра. Если у вас есть компьютер, который не нуждается в таком коде для работы, вы можете не захотеть добавлять эти ненужные черные ящики в вашу операционную систему. Debian — это самый большой дистрибутив Linux, который не устанавливает эту прошивку по умолчанию. Если вы хотите, вы должны согласиться.
То же самое относится и к репозиториям приложений Debian. Если вы будете придерживаться настроек по умолчанию, вы не сможете случайно установить на свой компьютер какой-либо частный код. Вот почему Debian служит базой для нескольких поддерживаемых Free Software Foundation Linux-дистрибутивов, таких как Trisquel и PureOS.
10. Несколько дистрибутивов Linux живут так долго, как Debian
Debian существует с 1993 года. Он всего на два года моложе самого Linux. Сотни дистрибутивов Linux приходили и уходили за эти годы, прежде чем Debian выдержал испытание временем.
С таким количеством дистрибутивов, которые являются частью семейства Debian, миллионы людей, вложенных в этот проект, продолжают существовать. Одно это — хорошая причина придерживаться Debian.
11. Вам не нужно мощное подключение к Интернету
Linux делает программное обеспечение бесплатным и доступным, но большинство дистрибутивов предполагают, что у вас есть доступ к надежному интернет-соединению. Я знаю из первых рук, насколько ограничивающим фактором может быть это. Мне пришлось дозвониться, когда я впервые обнаружил Ubuntu, что сделало мысль о необходимости загружать все мои приложения с помощью загрузок несколько пугающей.
Debian предоставляет версию на DVD, включающую большую часть программного обеспечения, которое вы можете загрузить из репозиториев. Таким образом, вы можете скачать Debian где-нибудь, где у вас есть неограниченный доступ к Интернету, и позже настроить компьютер дома или в офисе. Вы также можете приобрести компакт-диски или DVD-диски по низкой цене и отправить их вам.
12. Debian является настольным агностиком
Многие дистрибутивы Linux выбирают предпочитаемую рабочую среду. Вы можете поменять этот интерфейс на другой, но больше не получаете поддерживаемого опыта.
У Debian нет сильных предпочтений. Хотя существует ограничение на количество доступных в качестве Live CD дисков (это GNOME, KDE, LXDE, Xfce, Cinnamon и MATE), Debian не предоставляет ни одной из этих настольных систем больше поддержки или полировки, чем многие другие настольные компьютеры. окружающая среда доступно в репозиториях.
Debian — один из лучших дистрибутивов Linux
Независимо от того, устанавливаем ли мы Debian напрямую, большинство из нас, использующих Linux, используют дистрибутив где-то в экосистеме Debian. Охват проекта широк и затрагивает миллионы людей.
Напомним, вот 12 причин, по которым многие выбирают Debian:
Debian стабилен и надежен
Вы можете использовать каждую версию в течение длительного времени
Debian идеально подходит для серверов
Доступен вариант скользящей версии
Debian поддерживает многие архитектуры ПК
Debian — крупнейший управляемый сообществом дистрибутив
У Debian отличная поддержка программного обеспечения
Вы хотите быть ближе к источнику
Вы можете установить бесплатную версию программного обеспечения
Несколько дистрибутивов Linux живут так долго, как Debian
Вам не нужно сильное подключение к интернету
Debian не выделяет конкретное окружение рабочего стола
Это не значит, что Debian для всех. Если вы хотите рассмотреть свои варианты, есть другие отличные дистрибутивы Linux чтобы попробовать.
Сегодня в статье приведу пример по установке и настройке VPN сервера WireGuard для операционных систем Ubuntu и Debian. Также данная статья будет справедлива и для всех производных систем данного типа.
WireGuard – это современная высокопроизводительная VPN для Linux,Windows, MacOS. Главной функцией WireGuard является обеспечение безопасного соединения между сторонами через сетевой интерфейс, зашифрованный с помощью аутентификации по открытому ключу. Это означает, что, в отличие от большинства виртуальных частных сетей, WireGuard не применяет топологию, что позволяет создавать различные конфигурации путем изменения конфигураций окружающей сети. Эта модель предлагает большую производительность и гибкость.
Сейчас WireGuard готовится к включению в состав ядра Linux. Если быть точнее, то он появится в ядре версии 5.6, он даже получил похвалу от Линус Торвальдса и в американском сенате.
Специалисты проверили скорость работы WireGuard и выяснили, что он способен обойти большинство протоколов шифрования в том числе широко известный протокол OpenVPN.
Причина, которая объясняет высокую скорость работы WireGuard, это применение быстрого и современного алгоритма шифрования, благодаря которому скорость передачи данных очень высока.
Кроме того, данный протокол очень похож на https, что позволяет обманывать системы анализа трафика DPI, установленные у Вашего провайдера и обходить эти блокировки по сигнатурам.
Установка и настройка при помощи скрипта
Для облегчения установки и настройки можете воспользоваться готовым скриптом. Данный скрипт универсальный для большинства систем.
Давайте теперь настроим наш высокопроизводительный VPN на сервере wireguard. Для этого создадим файл конфигурации и необходимые ключи шифрования. Все действия выполняем из под root.
sudo su
(umask 077 && printf "[Interface]nPrivateKey = " | sudo tee /etc/wireguard/wg0.conf > /dev/null)
wg genkey | sudo tee -a /etc/wireguard/wg0.conf | wg pubkey | sudo tee /etc/wireguard/wg-server-publickey.key
Первая команда записывает исходное содержимое конфигурационного файла в /etc/wireguard/wg0.conf. Значение umask в суб-оболочке позволяет создать файл с ограниченными разрешениями, не затрагивая обычную среду.
Вторая команда генерирует закрытый ключ с помощью команды wg и записывает ее непосредственно в конфигурационный файл с ограниченным доступом. Затем ключ передается обратно команде wg pubkey, чтобы получить связанный с ним открытый ключ, который записывается в /etc/wireguard/wg-sever-publickey.key.
Следующим шагом нам необходимо включить форвардинг пакетов через наш сервер, для этого открываем следующий файл:
sudo nano /etc/sysctl.conf
И уберем знак комментария # со строки:
net.ipv4.ip_forward=1
Применим изменения
sudo sysctl -p
Далее отрываем файл на редактирования и вносим необходимую информацию о нашей VPN сети.
sudo nano /etc/wireguard/wg0.conf
Конфигурационный файл vpn wireguard
Внутри, в разделе [Interface], вы должны увидеть свой сгенерированный закрытый ключ. Этот раздел содержит конфигурацию для локальной стороны соединения.
В разделе Interface нужно также определить IP-адрес VPN, который будет использовать этот узел, и порт, который он будет прослушивать для соединений с одноранговыми узлами.
Давайте добавим в него следующие строки ListenPort, SaveConfig и Address:
ListenPort – указываем свободный порт который будет прослушивать наш сервис wg-quick (VPN WireGuard)
SaveConfig – имеет значение true, чтобы сервис wg-quick мог автоматически сохранять свою активную конфигурацию в этом файле при завершении работы.
Address – это наш IP-адрес и маска сети
PostUP и PostDown – запускают необходимые правило для iptables
Пробуем поднять нашу сеть скриптом wg-quick:
sudo wg-quick up /etc/wireguard/wg0.conf
В системах с systemd вместо этого можно использовать следующую запись:
sudo systemctl start wg-quick@wg0.service
Если systemd ругается, то сперва необходимо включить сервис следующей командой:
sudo systemctl enable wg-quick@wg0.service
Настройка VPN WireGuard на клиентской машине
В качестве клиента у меня будет выступать ноутбук с операционной системой Ubuntu Desktop 18.04 LTS
Все действия выполняем из под пользователя root.
sudo su
add-apt-repository ppa:wireguard/wireguard
apt install wireguard -y
Для Ubuntu 20.04 необходимо повторить тоже самое, что и при установке на серверную часть. (см. Выше)
Далее создаем конфигурационный файл и генерируем ключи:
(umask 077 && printf "[Interface]nPrivateKey = " | sudo tee /etc/wireguard/wg0.conf > /dev/null)
wg genkey | sudo tee -a /etc/wireguard/wg0.conf | wg pubkey | sudo tee /etc/wireguard/wg-server-publickey.key
Открываем наш конфигурационный файл и вносим изменения.
PublicKey – укажите значение открытого ключа сервера. Вы можете найти это значение, набрав на сервере команду: wg
AllowedIPs – указывает на пропуск трафика через VPN. В данном случае будет проходить через VPN только трафик сети 10.0.0.0/24. Весть остальной трафик пойдет через вашего провайдер. Для заворота всего трафика через VPN указываем значение 0.0.0.0/0
PersistentKeepalive – время в секундах для постоянной проверки доступности ресурса.
Запускаем сервис на Ubuntu:
sudo systemctl start wg-quick@wg0.service
Запускаем сервис на Debian:
sudo wg-quick up /etc/wireguard/wg0.conf
Peer на стороне сервера
На сервере также необходимо добавить информацию о клиенте. Иначе ваш туннель VPN не откроется. Для этого возвращаемся на сервер и останавливаем службу wireguard:
PublicKey – ключ клиента можно посмотреть на клиентской машине при помощи команды wg.
AllowedIPs – указывает на IP клиента. Обязательно с маской 32
Запускаем наш сервис:
sudo systemctl start wg-quick@wg0.service
Пробуем пропинговать клиента.
ping 10.0.0.2
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.916 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.545 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.647 ms
Со стороны клиента также должен проходить пинг до сервера.
ping 10.0.0.1
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=2.40 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.646 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.555 ms
Хотя статья получилась большой, но все настраивается очень быстро.
Тонкая настройка параметров WireGuard на примере Proxmox
Vim – это легендарный текстовый редактор, способный на многое, но недружелюбный к новичкам. VIM — текстовый редактор, который появился в 1991 году, но до сих пор пользуется огромной популярностью (наряду с Emacs). Как правило, на него переходят после других редакторов уже состоявшиеся разработчики. Нередко, переходят с полноценных IDE.
Минимальные основы VIM
На данный момент существует две версии редактора – vi и vim. Vim расшифровывается как Vi Improved, улучшенный vi. Это новая версия, которая принесла очень много улучшений. В большинстве современных дистрибутивов используется именно она. Поэтому если я буду писать vi, это значит, что я предполагаю использование vim.
Текстовый редактор Vim может работать в двух режимах. Это и есть его главная особенность. Первый режим, который используется по умолчанию при открытии редактора – это командный. В этом режиме вы можете вводить команды vi, а также использовать символьные клавиши для управления редактором. Второй режим – обычное редактирование текста, он работает так же как и редактирование текста в nano. Для переключения в командный режим используется клавиша Esc. Для переключения в режим редактирования – клавиша i. Если вас интересует только как в редакторе vi сохранить и выйти, листайте вниз, но если вы хотите узнать как пользоваться текстовым редактором vim, эта статья для вас.
Перед тем как идти дальше мы бы посоветовали вам пройти курс обучения встроенный в редакторе. Выполнение всех обучающих заданий займет 25-30 минут. Но после того как вы освоите все что там написано, эта статья поможет вам закрепить материал. Дело в том, что команд и сочетаний клавиш у vim очень много и запомнить их все без практики невозможно. Для запуска обучения наберите: $ vimtutor.
Синтаксис VIM
Начнем мы, как обычно с запуска программы, а также опций, которые ей можно передать. Синтаксис Vim очень прост:
$ vim опции имя_файла
Или:
$ vi опции имя_файла
Простой запуск vim без указания имени файла приведет к созданию пустого файла. А теперь давайте рассмотрим основные опции запуска:
+номер – переместить курсор к указной строке после запуска.
+/шаблон – выполнить поиск по шаблону и переместить курсор к первому вхождению
“+команда” – выполнить команду после запуска программы
-b – двоичный режим, для редактирования исполняемых файлов.
-d – режим поиска различий в файлах, нужно указать несколько файлов для открытия.
-g – графический режим.
-n – не использовать автосохранение для восстановления файла при сбое.
-R – режим только для чтения.
-w – сохранить все действия в файл.
-x – шифровать файл при записи.
-C – режим совместимости с Vi.
Выход из Vim
Выход без сохранения изменений:
:q!
Как запомнить: quit dammit! (закройся, чёрт возьми!)
Выход с сохранением изменений:
:wq
Как запомнить: write to disk and quit
Навигация в Vim
Для перемещения по открытому файлу используйте стрелки.
Перемещение на строку 285:
:285
Поиск слова «import»:
/import
Изменение текста в Vim
Вставка текста там, где стоит курсор:
i
Как запомнить: insert
Вставка текста в конце текущей строки:
A
Как запомнить: Append
Выход из режима редактирования (возврат в стандартный режим):
ESC
Выделение текста в Vim
Переход в визуальный режим:
v
Как запомнить: visual
Для выделения текста используйте стрелки.
Выход из визуального режима:
ESC
Копирование, удаление, вставка
Копирование выделенного текста в буфер:
y
Как запомнить: yank
Удаление выделенного текста:
d
Как запомнить: delete
Копирование текущей строки в буфер:
yy
Как запомнить: yank yank
Копирование трёх строк, включая текущую, в буфер:
3yy
Удаление текущей строки и помещение её в буфер:
dd
Как запомнить: delete delete
Удаление 5 строк, включая текущую:
5dd
Вставка из буфера перед текущей строкой:
P
Примечание: заглавная P
Вставка из буфера после текущей строки:
p
Отмена и восстановление последнего изменения в Vim
Отмена последнего изменения:
u
Как запомнить: uh-oh 🙂
Восстановление последнего отменённого изменения:
CTRL + R
Вывод изменений:
:undolist
Отмена двух последних изменений:
2u
Многоуровневое дерево отката изменений Vim очень мощное, подробнее о нём можно почитать в документации.
Работа с файлом в Vim
Открытие файла index.html вместо текущего:
:edit index.html
Сохранение текущего файла:
:w
Как запомнить: write to disk
Сохранение файла с изменённым именем, например, changes.txt:
:w changes.txt
Поиск и замена в Vim
Поиск и замена всех вхождений строки в файле:
:%s/typo/corrected/g
Поиск и замена с запросом подтверждения замены:
:%s/typo/corrected/gc
Как запомнить: confirm
Подсветка синтаксиса и отступы
Включение подсветки синтаксиса:
:syntax on
Включение автоматических отступов:
:set autoindent
Увеличение отступов нескольких строк при выделении их в визуальном режиме:
>
Вкладки в Vim
Открытие server.py в новой вкладке:
:tabe server.py
Как запомнить: tab edit
Переход на вкладку справа:
:tabn
Как запомнить: tab next
Переход на предыдущую вкладку слева:
:tabp
Как запомнить: tab previous
Для закрытия вкладки переключитесь на неё и используйте команду :q или :wq.
Разделённый экран в VIM
Открытие templates/base.html в режиме вертикального разделения экрана:
:vs templates/base.html
Как запомнить: vertical split
Открытие shared.js в режиме горизонтального разделения экрана:
:sp shared.js
Как запомнить: the ’default’ horizontal split
Перемещение между «частями» экрана:
CTRL + W + ARROW KEYS
Для закрытия экрана переключитесь на него и используйте команду :q или :wq.
Настройка Vim: файл .vimrc
Многие команды, используемые для изменения вида и поведения Vim, можно сделать включёнными по умолчанию, поместив их в .vimrc — файл конфигурации Vim, который расположен в домашнем каталоге.
Например, добавление этих строк в ~/.vimrc сделает подсветку синтаксиса и автоматическую корректировку отступов включёнными по умолчанию:
syntax on
set autoindent
Командный режим в VIM
В командном режиме вы можете перемещаться по редактируемому тексту и выполнять действия над ним с помощью буквенных клавиш. Именно этот режим открывается по умолчанию при старте редактора. Здесь вы будете использовать краткие команды, перед которыми может устанавливаться номер, чтобы повторить команду несколько раз. Для начинающих может быть поначалу очень запутанно то, что в командном режиме символы интерпретируются как команды.
Для перемещения используются такие команды:
h – на один символ влево;
l – на один символ вправо;
j – на одну строку вниз;
k – на одну строку вверх;
w – на слово вправо;
b – на слово влево;
H – перейти в низ экрана;
G – перейти в конец файла;
Можете запустить редактор и поэкспериментировать, чтобы было легче понять как это работает. Если перед тем как нажать кнопку буквы нажать цифру, то эта команда будет повторена несколько раз. Например, 3j переведет курсор на три строки вверх.
Для переключения в режим редактирования используются такие команды:
i – вставить текст с позиции курсора, символ под курсором будет заменен;
I – вставить текст в начало строки;
a – добавить текст начиная от позиции курсора;
o – вставить новую строку после этой и начать редактирование;
O – вставить новую строку перед этой и начать редактирование;
r – заменить текущий символ;
R – заменить несколько символов.
К этим командам тоже применимы символы повторения. Поэкспериментируйте, можно получить интересный и не совсем ожиданий результат.
Более сложны команды редактирования текста. Вы можете править текст не только в обычном режиме, но и в командном с помощью команд. Для этого применяются такие команды:
d – удалить символ;
dd – удалить всю строку;
D – удалить символы начиная от курсора и до конца строки;
y – копировать символ;
yy или Y – скопировать всю строку;
v – выделить текст;
Эти команды редактора vim работают немного по-другому после нажатия одной из них ничего не произойдет. Мы еще можем задать количество символов, к которым будет применена команда и направление, с помощью кнопок перемещения курсора. Например, чтобы удалить два символа справа от курсора нажмите d3l, а чтобы удалить три строки вниз – d3j. Команды yy, dd, Y – не что иное, как сокращения.
Кроме этих команд, есть еще несколько полезных, которые мы не можем не рассмотреть:
p – вставить после позиции курсора;
P – вставить перед позицией курсора;
u – отменить последнее действие;
. – повторить еще раз последнее действие;
U – отменить последнее действие в текущей строке;
/шаблон – искать вхождение;
%s/шаблон/заменить – заменить первое слово на второе;
n – продолжить поиск вперед;
N – продолжить поиск назад;
С основными командами разобрались. Но у нас есть еще командная строка Vim, которая сама по себе тоже представляет огромный интерес.
Командная строка VIM
Командная строка Vim запускается в командном режиме нажатием двоеточия – “:“. Здесь доступны команды для сохранения файла и выхода из редактора, настройки внешнего вида и взаимодействия с внешней оболочкой. Рассмотрим наиболее часто используемые команды редактора vim:
:w – сохранить файл;
:q – закрыть редактор;
:q! – закрыть редактор без сохранения;
:e файл – прочитать содержимое файла в позицию курсора;
:r файл – вставить в содержимое файла в следующую строку;
:r! – выполнить команду оболочки и вставить ответ в редактор;
:set переменная=значение – установить значение переменной, например, tabstop=4, или set number, с помощью этой команды можно управлять многими аспектами работы vim.
:buffers – посмотреть открытые файлы.
Со всеми основами разобрались, и вы теперь использование vim не будет казаться вам таким сложным. Но это еще далеко не все, этот мощный редактор может еще очень многое. Дальше мы рассмотрим несколько примеров использования vim, чтобы вам было легче справиться с новой программой.
Редактирование файла в VIM
Несмотря на то, что из всего вышесказанного можно понять как это делается рассмотрим еще раз. Чтобы открыть файл выполните:
vim имя_файла
Затем, если вы не хотите пока использовать возможности командного режима просто нажмите i, чтобы перейти в режим редактирования. Здесь вы можете редактировать файл так же, как и в nano. После того как завершите нажмите Esc, чтобы перейти в командный режим и наберите :wq. Записать и выйти. Все, готово.
Одновременное редактирование нескольких файлов
Чтобы открыть несколько файлов, просто передайте их в параметры при запуске программы:
vim файл1 файл2 файл3
Редактор vim linux откроет первый файл, для переключения ко второму используйте команду :n, чтобы вернутся назад :N.
С помощью команды :buffers вы можете посмотреть все открытые файлы, а командой :buffer 3 переключится на третий файл.
Буфер обмена VIM
Текстовый редактор Vim имеет свой буфер обмена. Например, вам нужно скопировать в четыре строки и вставить их в другое место программы, для этого выполните такую последовательность действий:
Нажмите Esc, чтобы перейти в командный режим;
Наберите 4yy чтобы скопировать четыре строки;
Переместите курсор в место где нужно вставить эти строки;
Нажмите p для вставки.
Также можно использовать выделение vim, чтобы скопировать строки. Выделите текст с помощью v, а затем нажмите y, чтобы скопировать.
Кирилица В VIM
Кириллица в Vim работает превосходно. Но есть одно но, когда включена кириллица в системе, все команды vim не работают, им и не нужно работать, они же не приспособлены для кириллицы.
Но переключать каждый раз раскладку, когда работаете в командном режиме тоже не очень удобно, поэтому открываем файл ~/.vimrc и добавляем туда такие строки:
set keymap=russian-jcukenwin
set iminsert=0
set imsearch=0
Теперь раскладка клавиатуры в командном режиме переключается по Ctrl+^ и все команды работают.
Когда не стоит учить вим
Если вас целиком устраивают обычные редакторы
При недостаточном владении слепой печатью
Вы не готовы возиться с конфигурацией, а хотите чтобы редактор просто работал
Отдельно стоит сказать, что не стоит учить вим одновременно с тем, что вы собираетесь делать внутри него. Когнитивная нагрузка при изучении вима настолько высокая, что у вас не будет оставаться никакой энергии на изучение нового языка, фреймворка или, даже, программирования в целом. На вим имеет смысл смотреть тогда, когда вы уже спокойно работаете и хотите новых острых ощущений.
Другой важный аспект — готовность принять идеологию вима. Нередко происходит ситуация, когда программист садится за вим и при этом не начинает пользоваться вимом. Он продолжает использовать стрелки и практически не выходит в командный режим. Такой способ обучения виму самый опасный. Как только произойдет привыкание, переучить себя будет неимоверно сложно. Немалое число людей, считающих себя вимерами, не используют вим и в действительности работают крайне неэффективно.
Обучение виму — процесс сложный морально. Дело в том, что опыт сам по себе не делает вас лучше в чем-то. Научившись как-нибудь набирать текст, человек и через много лет будет делать это как-нибудь (не по скорости, а по эффективности работы с ним). То же самое касается использования редакторов.
Для повышения своей эффективности необходимо постоянно наблюдать за своими действиями, отслеживать те, что занимают слишком времени, читать статьи и книги в поисках новых способов решения старых проблем. Такой подход, конечно же, важен не только при работе с вимом и даже не только в программировании, но именно в виме по-другому успеха достичь невозможно. Во время обучения нельзя себе давать слабину и действовать из принципа «сейчас сделаю хоть как-нибудь, а потом разберусь». Незаметно для вас сформируются неправильные привычки и дальнейший рост остановится. Если вы к этому не готовы, то изучение стоит отложить.
Сколько понадобится времени
Если следовать советам выше и постоянно правильно практиковать вим, то время от «любое действие занимает минуту» до «могу неспешно работать периодически подсматривая в документацию» займет около месяца. Дальше процесс пойдет легче, но останавливаться в развитии на этом этапе нельзя. Оттачивание всех необходимых навыков может занять и год. Но не стоит пугаться. В любом случае через месяц-два вы сможете вполне сносно работать.
Процесс обучения
Поставьте nvim и vim (с поддержкой python3).
Не все шаги, описанные ниже, нужно выполнять последовательно. То что можно делать параллельно, стоит делать параллельно. В любом случае перед тем, как решиться распробовать вим, стоит пройти официальный vimtutor который идет в поставке с самим вимом. Он проведет вас через все базовые команды и даст представление о том, как все работает. Откройте терминал и наберите vimtutor, при необходимости установив vim. После него можно браться за интерактивные учебники, описанные в полезных ссылках ниже. Делать это стоит одновременно с практикой работы с настоящим вимом.
Научитесь использовать возможности вашего терминала — сплиты/табы используя горячие клавиши.
Измените маппинги клавиш как описано выше.
Дальше есть два пути. Либо брать и с нуля настраивать свой собственный .vimrc (конфиг), что невероятно сложно и затратно на первых порах, либо, что лучше, взять готовую сборку и сосредоточиться на владении самим вимом. А затем, постепенно разбираться с тем как все устроено внутри и по необходимости делать собственную сборку. Я рекомендую использовать свою сборку. Она вобрала в себя лучше практики и практически не содержит самописного кода. К тому же, внутри неё используются самые современные плагины. Внимательно изучите Makefile и выполните все необходимые команды. В процессе работы постоянно смотрите в файл vimrc и изучайте его содержимое вместе с установленными плагинами. Все плагины хостятся на гитхабе вместе с их документацией.
Научитесь работать с пакетным менеджером plug. С него начинается вход в vim.
Изучение самого вима включает два аспекта. Первый, работа внутри буфера. К нему, как раз, относится та самая навигация и владение базовыми командами по модификации и перемещению. Второе, навигация по проекту и управление файловой структурой. Управление файловой структурой (создание, переименование и удаление) производятся плагином NERDTree, а для навигации существует три основных и несколько дополнительных способов. Основные: нечеткий поиск (fzf), переключение между буферами (bufexplorer) и перемещение по файловому дереву (NERDTree). Все они важны и используются постоянно. Несмотря на то, что вим поддерживает табы, вимеры редко ими пользуются, но даже если и пользуются, то не для тех целей, для которых табы используются в обычных редакторах. К дополнительным способам навигации относятся прыжки по последним модификациям (вим их запоминает и позволяет ходить вперед назад), а так же комбинация gf, означающая “go to file”.
Изучите набор плагинов подходящих под ваш стек и установите его. В интернете много статей для настройки практически любого стека разработки. Единственная рекомендация, смотрите плагины основанные на lsp.
В этой статье мы рассмотрим несколько инструментов для реверс-инжиниринга на Kali Linux.
OllyDbg
OllyDbg – это 32-разрядный анализатор на уровне ассемблера для приложений Microsoft Windows. Акцент на анализе двоичного кода делает его особенно полезным в тех случаях, когда исходный код недоступен. Как правило, он используется для взлома коммерческих программ. Читать →