Вторые мониторы предлагают простой и удобный способ повысить производительность или улучшить игровой процесс. Мало того, но это также дает вам больший холст, который выступает в качестве дополнительного рабочего пространства для общей многозадачности.
Подключение второго монитора к компьютеру обычно происходит по принципу «включай и работай», но в некоторых случаях Windows 10 может не обнаружить монитор. Существует несколько основных причин этой проблемы, таких как поврежденный или неисправный кабель, ваш компьютер не поддерживает второй дисплей, у вас устаревший драйвер или драйверы дисплея не могут обрабатывать второй дисплей.
Если ваш второй монитор не обнаружен, используйте это руководство для устранения неполадок и устранения проблем с вашим монитором .
Исправить второй монитор не обнаружен в Windows 10
Вы можете начать со следующих основных советов по устранению неполадок. Это может решить вашу проблему со вторым монитором, не обнаруженным, прежде чем вам нужно будет углубиться в другие проблемы.
Убедитесь, что вы используете правильный кабель для подключения вашего ПК и второго монитора. Если кабель поврежден или неисправен, Windows не обнаружит второй монитор. Если вы меняете кабель, и новый кабель работает с настройками дисплея, это означает, что старый неисправен.
Отключите любые аксессуары, такие как подключенные адаптеры, адаптеры или док-станции, которые могут вызвать аппаратные конфликты между вашим ПК и вторым монитором.
Попробуйте использовать второй монитор ПК с другой системой, чтобы определить, связана ли проблема с основной системой или монитором.
Проверьте, подключен ли второй монитор к источнику питания. Некоторые мониторы имеют переключатель на задней панели для включения дисплея.
Убедитесь, что выбран правильный вход (HDMI, DVI и т. д.) С помощью встроенных элементов управления на мониторе.
Подключите другой рабочий монитор, чтобы проверить, связана ли проблема с видеокартой.
Вам может потребоваться обновить прошивку дисплея, который вы настраиваете как второй монитор, чтобы исправить любые проблемы совместимости или ошибки. Вы можете сделать это, зайдя на сайт производителя дисплея и проверив страницу поддержки для получения информации о том, как применить последнее обновление прошивки.
Перезагрузите компьютер
Перезагрузка компьютера эффективно работает для многих проблем, в том числе, когда ваш второй монитор не обнаружен. Перезапуск закрывает все другие запущенные процессы, которые могут помешать соединению между вашим ПК и вторым монитором.
Чтобы перезагрузить компьютер, нажмите Пуск > Питание > Перезагрузить.
Принудительно Windows 10 для обнаружения второго монитора ПК
Если нет проблем с физическим подключением к вашему ПК и второму монитору, вы можете использовать приложение «Настройки» для принудительного обнаружения второго дисплея.
Откройте Настройки > Система.
Нажмите Показать.
Перейдите в раздел «Изменить порядок отображения» и нажмите «Определить».
Подключите беспроводной дисплей
Если ваше физическое соединение (через кабель) не помогает Windows 10 обнаружить второй монитор, попробуйте подключить беспроводной дисплей.
Откройте Настройки > Устройства.
Нажмите Bluetooth и другие устройства.
Выберите Добавить Bluetooth и другие устройства.
Нажмите Беспроводной дисплей или док.
Убедитесь, что беспроводной дисплей включен и доступен для обнаружения. Выберите дисплей из списка и следуйте инструкциям на экране для завершения настройки.
Проверьте свой адаптер дисплея
Если вы можете подключить один внешний монитор, но второй монитор не обнаружен, возможно, ваша видеокарта (также называемая видеоадаптером) не может поддерживать несколько мониторов одновременно. В этом случае разветвитель дисплея не поможет вам расширить дисплей до второго монитора, поскольку он дублирует один и тот же сигнал вместо создания двух независимых сигналов.
Если ваш компьютер имеет только один порт видеовыхода, это означает, что вы можете поддерживать только один внешний монитор. Для поддержки нескольких мониторов вам понадобится USB-адаптер для дополнительного видеовыхода или док-станция.
Обновление, переустановка или откат графического драйвера
Неисправный, устаревший или поврежденный графический драйвер может быть одной из основных причин того, что Windows 10 не обнаружит ваш второй монитор компьютера.
Чтобы решить эту проблему, вы можете обновить, переустановить или откатить драйвер до предыдущей версии, чтобы исправить и восстановить соединение между вашим компьютером и вторым монитором.
Как обновить графический драйвер
Чтобы обновить графический драйвер, щелкните правой кнопкой мыши «Пуск» > «Диспетчер устройств» и выберите категорию «Адаптеры дисплея», чтобы развернуть его.
Щелкните правой кнопкой мыши на вашем адаптере дисплея (видеокарте) и выберите Обновить драйвер.
Нажмите «Поиск» для обновления программного обеспечения драйвера, а затем перезагрузите компьютер.
Центр обновления Windows автоматически загрузит и установит обновление, если найдет более новый драйвер. Проверьте, обнаружен ли второй монитор после обновления драйвера.
Переустановите графический драйвер
Щелкните правой кнопкой мыши Пуск > Диспетчер устройств > Показать адаптеры. Щелкните правой кнопкой мыши адаптер дисплея вашего компьютера и выберите «Удалить устройство».
Снимите флажок «Удалить программное обеспечение драйвера из этого устройства» и нажмите «Удалить».
Перезагрузите компьютер и вернитесь в диспетчер устройств. Найдите и щелкните правой кнопкой мыши имя вашего ПК в разделе «Компьютер». Нажмите Сканировать для изменений оборудования.
Во время запуска Windows попытается автоматически переустановить графический драйвер, после чего вы можете попытаться снова подключиться ко второму монитору.
Откатить графический драйвер
Обновление драйвера может помешать Windows 10 обнаружить ваш второй монитор. Если это произойдет, вы можете откатить предыдущий графический драйвер, чтобы устранить проблему.
Щелкните правой кнопкой мыши Пуск > Диспетчер устройств и дважды щелкните категорию «Адаптеры дисплея», чтобы развернуть ее. Щелкните правой кнопкой мыши на адаптере дисплея вашего компьютера и выберите Свойства.
Нажмите вкладку Драйвер.
Нажмите Откатить драйвер. Если кнопка Откатить драйвер недоступна (выделена серым цветом), вы не сможете откатить драйвер. Однако вы сможете найти более старую версию драйвера на веб-сайте поддержки производителя вашего устройства.
Если кнопка отката драйвера доступна, нажмите кнопку «Да», а затем перезагрузите компьютер.
Все маршрутизаторы имеют веб-интерфейс и, следовательно, настроены с веб-браузером. Хотя некоторые маршрутизаторы могут быть доступны по имени (они обычно перехватывают DNS-запросы), все они могут быть доступны по их IP-адресу.
Полный доступ к маршрутизатору требует имя пользователя и пароль, но для того, чтобы вас даже попросили об этом, вам нужно знать IP-адрес.
IP-адрес записывается в виде четырех чисел, разделенных точками. Типичные домашние сети используют IP-адреса, которые начинаются с 192.168. Часто маршрутизатор имеет IP-адрес, например 192.168.0.1, почему именно так, прочитайте стаью по ссылке: https://19216811.ru/192-168-0-1 или 192.168.2.1.
Если ваш интернет-провайдер (ISP) установил ваш маршрутизатор, он знает и его IP-адрес, и идентификатор пользователя/пароль для него. По нашему опыту, провайдер никогда не сообщает клиенту эту информацию заранее.
С помощью самостоятельно установленного маршрутизатора вы можете получить IP-адрес (при условии, что он не был изменен при установке) из документации производителя. Иногда это находится на этикетке в нижней части маршрутизатора.
После настройки сети каждое вычислительное устройство в сети знает IP-адрес маршрутизатора и разливает бины, если вы знаете секретное рукопожатие.
Устройства Apple называют маршрутизатор «Router». Windows называет его «Default Gateway», термин, заимствованный из TCP/IP. Chrome OS называет маршрутизатор «Gateway». Android не сообщит вам IP-адрес вашего роутера, заставив вас установить приложение.
WINDOWS
Пользователи Windows могут запустить командную строку и ввести «ipconfig», чтобы увидеть шлюз по умолчанию. Вывод будет выглядеть так в Windows 7 :
Вывод команды Windows XP практически идентичен. В любой системе, если компьютер использует Wi-Fi, а не Ethernet, ищите «Беспроводное сетевое соединение» вместо «Подключение по локальной сети».
Та же команда ipconfig работает на настольной стороне Windows 8, которая также определяет маршрутизатор как «шлюз по умолчанию». Беспроводное соединение в Windows 8 называется «Адаптер беспроводной локальной сети Wi-Fi», а проводное соединение идентифицируется как «Адаптер Ethernet Ethernet».
IOS
Процедура одинакова для iOS 10 (протестировано с 10.0.2), iOS 9 (протестировано с 9.3.5 и 9.2) и iOS 8 (протестировано с 8.1.2 и 8.4.1). Перейдите в Настройки, затем Wi-Fi, затем нажмите/нажмите на название беспроводной сети, к которой вы подключены. IP-адрес маршрутизатора определяется как «Маршрутизатор» в разделе DHCP.
На iOS 7 (протестировано с 7.1.1), перейдите в настройки, затем Wi-Fi, затем нажмите на название беспроводной сети, к которой вы подключены. Как и в iOS 8, IP-адрес маршрутизатора обозначен как «Маршрутизатор» в разделе DHCP.
В iOS 6 перейдите в настройки, затем Wi-Fi, затем нажмите стрелку справа от сети, к которой вы подключены. Интерфейс аналогичен показанному выше, IP-адрес маршрутизатора обозначен как «Маршрутизатор».
Инструкции для iOS версии 5 идентичны инструкциям для версии 6.
Все инструкции выше предполагают, что устройству iOS был присвоен IP-адрес с использованием DHCP. В том редком случае, когда у него есть статический IP-адрес, щелкните вкладку «Статические» (показано выше) и снова найдите «Маршрутизатор».
OS X
В Snow Leopard перейдите в «Настройки сети», нажмите кнопку «Дополнительно», затем на вкладке TCP/IP. Как и в случае с iOS, маршрутизатор определяется как «Маршрутизатор».
В Yosemite вы можете получить IP-адрес маршрутизатора несколькими способами.
Один подход — терминальная команда. Запустите терминал с помощью Go -> Utilities -> Terminal, затем введите:
netstat -nr | grep default
Вывод выглядит примерно так
Default 192.168.3.1 UGSc 317 2 en0
В этом примере IP-адрес маршрутизатора — 192.168.3.1.
Другая команда терминала, которую вы можете попробовать
route -n get default
Ищите «шлюз» на линии отдельно. Справа от него находится IP-адрес маршрутизатора.
При использовании Wi-Fi на Yosemite нажатие Option на индикаторе Wi-Fi приводит к тому, что система отображает больше данных, чем обычный щелчок. В эти дополнительные данные включен IP-адрес маршрутизатора, обозначенный как «Маршрутизатор». Нажатие опции не отображало IP-адрес маршрутизатора в Lion, я не уверен, какой выпуск OS X представил его.
Обычный щелчок по индикатору Wi-Fi также дает IP-адрес маршрутизатора, если вы посмотрите достаточно внимательно. Нажмите на «Открыть настройки сети», затем на сетевом интерфейсе Wi-Fi в левом столбце (должен сказать «подключен»), затем нажмите кнопку «Дополнительно …», затем вкладку TCP/IP и найдите «Маршрутизатор».
Если вы не используете Wi-Fi, то: Системные настройки -> Сеть -> нажмите на «подключенный» сетевой интерфейс в столбце слева -> кнопка «Дополнительно» -> вкладка TCP/IP и найдите «Маршрутизатор».
Если этого недостаточно, IP-адрес также доступен в утилите Информация о системе (Перейти -> Утилиты -> Информация о системе). Нажмите «Сеть» в левой колонке, затем «Wi-Fi» в верхней панели (не левой панели) и найдите «Маршрутизатор» в разделе IPv4.
ANDROID
Обе версии Android 5.1 и 6.0 не отображают IP-адрес маршрутизатора как часть экрана настроек Wi-Fi.
Это продолжает давнюю традицию держать пользователей в неведении. Версии Android 4.4.4, 4.4.2 и 2.3 также не смогли предоставить IP-адрес маршрутизатора. Эти старые версии, по крайней мере, сообщали бы о IP-адресе вашего устройства, но в версии 5.1 он был заменен полосой радиочастот, используемой сетью, к которой вы подключены.
Как говорится, есть приложение для этого.
Наше любимое приложение для сетевой информации — Fing, о котором я писал в прошлом году. Fing предназначен для инвентаризации вычислительных устройств в вашей сети. Запустите Fing и нажмите на верхнюю строку с именем сети. Он относится к маршрутизатору как «шлюз», а IP-адрес находится ниже локального адреса и выше DNS. Он вполне может совпадать с адресом DNS, это совсем не необычно.
Еще одним замечательным приложением, которое показывает IP-адрес маршрутизатора в качестве дополнительного преимущества, является WiFi Analyzer от farproc. В WiFi Analyzer перейдите на экран списка точек доступа и нажмите на верхнюю строку, которая показывает название сети, к которой вы подключены, и ваш IP-адрес. В появившемся окне найдите IP-адрес шлюза (он находится над маской).
ХРОМ ОС
Перейдите на страницу настроек, либо выбрав «Настройки» в меню гамбургера, либо введя «chrome://settings» в адресной строке. Если вы используете Wi-Fi, нажмите «Сеть Wi-Fi» в разделе «Подключение к Интернету», затем на имя/SSID сети, к которой вы подключены. Откроется окно с тремя вкладками: Соединение, Сеть и Прокси. Нажмите на вкладку Сеть, как показано выше. Маршрутизатор идентифицирован как «шлюз».
Кроме того, вы можете ввести «chrome://system» в адресную строку и прокрутить вниз до раздела «маршруты», показанного выше. Текст справа скажет «по умолчанию через», а затем IP-адрес маршрутизатора. Хотя обрезка на снимке экрана выше, следующая строка заканчивается IP-адресом устройства, сразу после «src».
В другом разделе network-status также есть IP-адрес маршрутизатора, но это наименее удобный вариант.
Нажмите на серую кнопку Expand. Если Chromebook подключен через Ethernet, найдите группу данных, обозначенную как «eth0». Если он подключен по беспроводной сети, посмотрите в разделе «wlan0», как показано выше. Маршрутизатор идентифицирован как «шлюз».
Наконец, чтобы не проходить через это снова, мы предлагаем написать IP-адрес маршрутизатора вместе с идентификатором пользователя/паролем на листе бумаги, приклеенном к маршрутизатору лицевой стороной вниз.
В этом руководстве показано, как создавать пользователей в Linux с помощью командной строки.
Хотя многие настольные Linux-дистрибутивы представляют собой графический инструмент для создания пользователей, у вас есть хорошая возможность, чтобы узнать, как это сделать из командной строки, чтобы вы могли передавать свои навыки из одного дистрибутива другому без изучения новых пользовательских интерфейсов.
Создание
Синтаксис:
useradd <имя пользователя=””> [опции]
* опции не являются обязательными при создании пользователя.
Пример:
useradd dmosk
* в данном примере создается учетная запись dmosk.
Для учетной записи стоит сразу создать пароль:
passwd dmosk
* после ввода, система попросит ввести пароль дважды.
1. Как добавить нового пользователя в Linux
Для создания/добавления нового пользователя используется команда “useradd” с аргументом “username”, где username – это имя нового пользователя, которое будет использоваться для входа в систему. За один раз можно добавить только одного пользователя, и его имя должно быть уникальным (то есть отличаться от имен других пользователей, уже существующих в системе).
Например, добавляем пользователя “techmint”:
[root@tecmint ~]# useradd tecmint
После выполнения данной команды, новый пользователь будет создан в заблокированном состоянии. Чтобы разблокировать пользовательский аккаунт, необходимо задать его пароль с помощью команды “passwd”.
[root@tecmint ~]# passwd tecmint Changing password for user tecmint. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
После создания нового пользователя его запись автоматически добавляется в пароль “/etc/passwd” и имеет следующий вид:
tecmint:x:504:504:tecmint:/home/tecmint:/bin/bash
Она состоит из семи разделенных двоеточием полей, каждое из которых имеет свое назначение:
Username: имя пользователя, используемое для входа в систему. Может иметь длинц от 1 до 32 символов. Password: пользовательский пароль (или символ x), который хранится в зашифрованном виде в файле /etc/shadow. User ID (UID): каждый пользователь должен иметь User ID (UID) – идентификатор пользователя. По умолчанию UID 0 зарезервирован для root, а UID в диапазоне 1-99 для других предопределенных аккаунтов. UID в диапазоне 100-999 предназначены для пользовательских аккаунтов и групп. Group ID (GID): идентификатор группы – Group ID (GID), хранится в файле /etc/group file. User Info: это опциональное поле и оно позволяет вам задать дополнительную информацию о пользователе, например полное имя. Это поле заполняется с помощью команды “finger”. Home Directory: абсолютный путь к домашней директории пользователя. Shell: абсолютный путь к командной оболочке пользователя, например /bin/bash.
2. Создание пользователя с нестандартным размещением домашней директории
По умолчанию команда “useradd” создает домашнюю директорию пользователя в /home и называет ее именем пользователя. Поэтому, например, для приведенного выше примера, мы увидим домашнюю директорию созданного нами пользователя “tecmint” в “/home/tecmint”. Однако это действие можно изменить с помощью опции “-d”, указав после нее расположение новой домашней директории. Например, приведенная ниже команда создаст пользователя “anusha” с домашней директорией “/data/projects”.
В Linux каждый пользователь имеет свой собственный UID (Unique Identification Number). По умолчанию при создании нового пользователя ему присваивается userid 500, 501, 502 и т.д. Но мы можем создать пользователя с заданным userid с помощью опции “-u”. Например, приведенная ниже команда создает пользователя “navin” с userid “999”.
[root@tecmint ~]# useradd -u 999 navin
Теперь мы можем проверить, что пользователь создан действительно с этим идентификатором.
Опция “-G” используется для добавления пользователя в дополнительные группы. Названия групп разделяются запятой без пробелов. В приведенном ниже примере мы добавляем пользователя “tecmint” в группы admins, webadmin и developer.
Теперь проверим, в каких группах числится пользователь, с помощью команды id.
[root@tecmint ~]# id tecmint uid=1001(tecmint) gid=1001(tecmint) groups=1001(tecmint),500(admins),501(webadmin),502(developers) context=root:system_r:unconfined_t:SystemLow-SystemHigh
6. Добавление пользователя без домашней директории
В некоторых ситуациях мы не хотим, по соображениям безопасности, давать пользователям домашние директории. В таком случае, когда пользователь авторизуется в системе сразу после ее запуска, его домашней директорией будет root. Если такой пользователь использует команду su, то он авторизуется в домашней директории предыдущего пользователя. Для создания пользователя без домашней директории используется опция “-M”. Например, создадим пользователя “shilpi” без домашней директории.
[root@tecmint ~]# useradd -M shilpi
Давайте проверим, что пользователь создан без домашней директории, с помощью команды ls:
[root@tecmint ~]# ls -l /home/shilpi ls: cannot access /home/shilpi: No such file or directory
7. Добавление пользовательского аккаунта с ограниченным сроком действия
По умолчанию, когда мы добавляем пользователя с помощью команды “useradd”, его аккаунт не имеет сроков действия, то есть дата истечения сроков его жизни установена в 0 (никогда не истекает). Однако мы можем установить дату истечения с помощью опции “-e”, задав дату в формате YYYY-MM-DD. Это полезно при создании временных аккаунтов для каких-то конкретных задач. В приведенном ниже примере мы создаем пользователя “aparna” со сроком жизни его аккаунта до 27 апреля 2015 года в формате YYYY-MM-DD.
[root@tecmint ~]# useradd -e 2015-03-27 aparna
Далее, проверяем сроки действия аккаунта и пароля с помощью команды “chage”.
[root@tecmint ~]# chage -l aparna Last password change : Mar 28, 2014 Password expires : never Password inactive : never Account expires : Mar 27, 2015 Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7
8. Создание пользователя с ограниченным временем действия пароля
Аргумент “-f” используется для того, чтобы задать количество дней, через которое пароль перестанет действовать. По умолчанию его значение равно -1, при этом время действия пароля не ограничивается. В примере мы задаем для пользователя “tecmint” время действия пароля 45 дней с помощью опций “-e” и “-f”.
Задает базовый каталог для домашнего каталога useradd dmosk -b /var/home
-c
Создает комментарий для описания учетной записи useradd dmosk -c “Пользователя для управления системой”
-d
Полный путь к домашнему каталогу пользователя useradd dmosk -d /home/newuser
-D
Позволяет показать или изменить настройки по умолчанию, которые будут применяться при последующем создании пользователей useradd dmosk -Ds /bin/bash
-e
Дата, после которой учетная запись устареет. useradd dmosk -e 2017-12-31
-f
Число дней, после которого учетная запись с устаревшим паролем будет заблокирована useradd dmosk -f 0
-g
Задает основную группу useradd dmosk -g altternativegroup
-G
Задает дополнительные группы useradd dmosk -G wheel
-k
Путь к источнику скелета (файлы с шаблонами для нового пользователя) useradd dmosk -k /var/skel
-m
При создании пользователя создать домашний каталог useradd dmosk -m
-M
Не создавать домашний каталог useradd dmosk -M
-N
Не создавать основную группу с таким же именем, как у пользователя useradd dmosk -N
-o
Разрешает создание учетной записи с повторяющимся UID useradd dmosk -u 15 -o
-p
Задает пароль useradd dmosk -p pass
-r
Системная учетная запись (без домашнего каталога и с идентификаторами в диапазоне SYS_UID_MIN – SYS_UID_MAX из файла /etc/login.defs) useradd dmosk -r
-R
Каталог, в который выполняется chroot useradd dmosk -R /var/chroot/home
-s
Путь до оболочки командной строки useradd dmosk -s /bin/csh
-u
Задает UID useradd dmosk -u 666
-U
Имя группы будет таким же, как у пользователя useradd dmosk -U
Актуальный список ключей можно получить командой useradd -h.
Редактирование
Синтаксис:
usermod <имя пользователя=””> [опции]
Пример:
usermod dmosk -G wheel
* эта команда добавит пользователя dmosk в группу wheel
Удаление
Синтаксис:
userdel <имя пользователя=””> [опции]
Пример:
userdel dmosk
Блокировка
Можно заблокировать пользователя, не удаляя его из системы:
usermod -L <имя пользователя=””>
Пример:
usermod -L dmosk
Чтобы разблокировать пользователя, вводим:
usermod -U <имя пользователя=””>
Работа с группами
Добавление:
groupadd <группа> [опции]
Редактирование:
groupmod <группа> [опции]
Удаление:
groupdel <группа> [опции]
Примеры работы с учетными записями
Команда useradd
Во-первых, давайте посмотрим на поведение команды useradd по умолчанию. Вы когда-нибудь запускали следующую команду?
useradd NewUser
Мы еще не видели дистрибутив, где эта команда создала полную учетную запись пользователя. Даже после установки пароля для нового пользователя вам потребуется использовать дополнительные параметры.
Например, в нашей системе указанная выше команда добавила следующую запись в файл /etc/passwd.
Если вы читали статью о перечислении пользователей в Linux, вы, вероятно, уже знакомы с содержанием файла /etc/passwd. Сначала это выглядит хорошо, но если вы начнете копать, вы скоро заметите, что некоторые вещи не совсем правильные.
Во-первых, второе поле содержит «х». Это означает, что заполнитель для информации о пароле находится в /etc/shadow. Но мы не установили пароль. Это означает, что тестовый пользователь не сможет войти в систему.
Во-вторых, домашний каталог. Дело в том, что /home/test не существует. Даже после того, как вы установили пароль, произойдет ошибка, если пользователь войдет в систему. В зависимости от другой конфигурации ваша система Linux может запретить пользователю входить без действительного домашнего каталога. Скорее всего, пользователь test позволит войти в систему, по крайней мере, в текстовом режиме. Но пользователь test не сможет создать свой домашний каталог.
В-третьих, оболочкой по умолчанию является sh, а не bash. Мы не используем sh как оболочку. Вы, вероятно, тоже не знаете, потому что bash является оболочкой по умолчанию в большинстве дистрибутивов Linux.
В то время как useradd-х поведение можно немного изменить, отредактировав /etc/login.defs, существует мало шансов, что приведенная выше команда создаст полную учетную запись пользователя. Useradd является низкоуровневая утилита. Тем не менее, просмотр настроек в /etc/login.defs может быть полезен.
Синтаксис команды useradd
Команда useradd принимает в качестве аргумента имя пользователя, а также различные опции.
Синтаксис команды следующий:
useradd опцииимяпользователя
Создание нового пользователя
Чтобы просто создать пользователя используется команда useradd без каких-либо опций. Указывается только имя пользователя.
sudo useradd pupkin
Данная команда создает нового пользователя с системными параметрами по умолчанию, которые прописаны в файле /etc/default/useradd
Чтобы пользователь мог войти в систему, необходимо задать для него пароль. Для этого используем команду:
sudo passwd pupkin
Создание нового пользователя с домашней директорией в /home
Создадим пользователя и его домашнюю директорию.
sudo useradd -m pupkin
Домашняя директория создается по умолчанию в каталоге /home. Имя директории совпадает с именем пользователя.
Создание нового пользователя с произвольной домашней директорией
Чтобы создать пользователя с домашней директорией, расположенной в произвольном месте, используется опция -d, после которой указывается путь до директории. Директорию необходимо создать заранее.
Создаем домашнюю директорию для будущего пользователя:
sudo mkdir -p /users/pupkin
Копируем файлы и директории, которые по умолчанию создаются в домашней директории пользователя в данной системе. Данные файлы находятся в директории /etc/skel
sudo cp -rT /etc/skel /users/pupkin
Создаем пользователя и указываем домашнюю директорию:
sudo useradd -d /users/pupkin pupkin
Меняем права доступа у домашней директории:
sudo chown -R pupkin:pupkin /users/pupkin
Задаем пароль для пользователя:
sudo passwd pupkin
Можно просмотреть информацию о пользователе, которая сохранена в файле /etc/passwd
Создание нового пользователя с произвольными UID, GID
Каждый пользователь в Linux имеет свой числовой идентификатор — UID, а также идентификатор основной группы пользователя — GID.
При создании пользователя можно задать произвольные номера UID и/или GID. При указании номера группы, группа с этим номером должна быть создана заранее.
useradd -u 1234 -g 1222 pupkin
Создание пользователя с указанием оболочки (shell)
По умолчанию новые пользователи создаются с оболочкой /bin/sh Чтобы задать другую оболочку, используется опция -s /путь/до/оболочки
sudo useradd -m -s /bin/bash pupkin
Смотрите также: Как определить и изменить командную оболочку (shell) в Linux
Создать пользователя и добавить его в группы
Обычно пользователи в Linux принадлежат нескольким группам. Чтобы при создании нового пользователя задать группы, к которым он будет принадлежать, используется опция -G список,групп
Смотрите также: «Добавление пользователя в группу. Списки пользователей и групп в Linux»
В чем отличия adduser и useradd?
useradd — это низкоуровневая утилита для создания пользователей в Linux.
adduser — представляет собой более простое решение для создания пользователей и по факту является надстройкой над useradd, groupadd и usermod.
Утилита adduser доступна не во всех дистрибутивах Linux. Реализация adduser также может отличаться. Если в дистрибутиве присутствует утилита adduser, то для создания пользователей рекомендуется использовать именно ее.
Команда Adduser
Adduser недоступен. в некоторых дистрибутивах Linux. На других это мягкая ссылка на useradd. В то время как на некоторых других, это сценарий Perl.
Adduser – это интерактивная утилита высокого уровня. В качестве бэкэнда используется утилита низкого уровня useradd. Настройки в /etc/login.defs будут использоваться при использовании adduser. На дистрибутивах, основанных на Debian, даже страница man рекомендует использовать его с помощью команды useradd.
Вызов adduser только с именем пользователя проведет вас через ряд вопросов.
После ответа на несколько вопросов будет создана полная учетная запись пользователя. Новый пользователь готов войти через ваш менеджер входа в систему или в текстовом режиме.
Чтобы достичь почти того же результата с помощью низкоуровневой утилиты useradd, команда должна выглядеть примерно так:
sudo useradd -d /home/test -m -s/bin/bash -c FullName,Phone,OtherInfo test && passwd test
В опции -с могут быть удалены без проблем, то разделенный запятыми список, который следует будут добавлены комментарии к /etc/passwd. Но даже тогда adduser сохраняет две дополнительные команды.
У Adduser есть список доступных вам опций. Вот короткий список, который, я думаю, будет наиболее полезно узнать. Обратитесь к справке или справочной странице для получения более подробной информации.
–system: добавить системного пользователя. По умолчанию системные пользователи помещаются в группу nogroup. Чтобы добавить системного пользователя в существующую группу, укажите параметр –gid или –ingroup.
–home DIR: использовать DIR в качестве домашнего каталога вместо стандартного. При необходимости будет создан каталог и скопированы файлы скелета.
–shell SHELL: используйте SHELL вместо значения по умолчанию.
–ingroup GROUP: установить первичную группу пользователя на GROUP
–add_extra_groups: добавить нового пользователя в дополнительную группу, определенную в файле конфигурации.
Файл конфигурации AddUser позволяет установить значения по умолчанию, которые будут использоваться при создании учетной записи. Файл хорошо документирован и позволяет устанавливать значения по умолчанию, такие как:
Как показывает читательский отклик, интерес к решениям на базе Linux весьма и весьма велик, в тоже время уровень подготовки администраторов в этой области оставляет желать лучшего. Свидетельство тому, бесконечно повторяющиеся простейшие вопросы в комментариях. Во многом, это следствие того, что наши инструкции можно выполнить “дословно” и получить работающий, результат. Но есть и обратная сторона медали, такой подход не предусматривает появлению системных знаний, оставляя знание предмета на фрагментарном уровне.
Да, кроме практических материалов, мы всегда стараемся публиковать обзоры, посвященные какой-либо технологии в целом, или делаем обширные теоретические отступления, для того, чтобы читатель имел необходимый минимум знаний. Однако все они подразумевают, что читатель обладает базовыми знаниями системы в которой работает.
А как быть с теми, кто только делает свои первые шаги? К сожалению, в IT-сообществе существует некоторый снобизм, мол, чего об этом говорить, это и так все знают, или “гугл в помощь”, забывая, что каждый из нас когда-то был новичком и с мистическим ужасом смотрел в черный экран Linux-консоли, абсолютно не понимая, куда он попал и что ему делать.
В итоге новичок, столкнувшись с первыми трудностями, вынужден идти искать знания в другом месте и хорошо если такое место удастся быстро найти. Поэтому мы решили выпустить небольшой цикл материалов, в котором на доступном уровне изложить основы администрирования Linux систем, буквально объясняя на пальцах “общеизвестные вещи”, опытные пользователи могут пропустить данный цикл, а могут и прочитать, заодно обновив свои знания.
Итак, вы решили стать Linux администратором…
Немного перефразируем Маяковского “я б в Linux-админы пошел, пусть меня научат”, именно так дело в большинстве случаев и обстоит. Есть необходимость, есть желание, есть базовый набор знаний по работе с Windows системами – все это пригодится при работе с Linux системами. Гораздо хуже если какая-либо составляющая отсутствует, тогда, наверное, стоит задуматься о неправильном выборе профессии.
Сразу о том, что нужно раз и навсегда забыть. Это “религиозные войны” и “религиозный фанатизм”. Одинаково плохо отрицать возможности Linuх-систем, как и превозносить их, стремясь перевести на Linux все что нужно и не нужно. Запомните – операционная система – это инструмент, хороший специалист берет для каждой задачи наиболее подходящий, фанатик будет забивать гвозди микроскопом, потому что взять в руки молоток ему “религия не позволяет”.
Даже больше, сама по себе операционная система не имеет никакой ценности, это всего лищь среда для запуска и выполнения некоторых служб и сервисов. Без софта система мертва. Возьмем для примера клон BeOS – Haiku, ну поставили, ну посмотрели – прикольно… А дальше что?
Итак, вы решили стать… Прежде всего будьте готовы воспринимать новое, в частности новый подход к администрированию, постаравшись на время забыть о сложившихся привычках. На долгое время вашим основным инструментом станет консоль.
Для привыкшего к графическим инструментам Windows-администратора это может показаться сложным. Но следует твердо усвоить одну истину – консоль является единственным полноценным инструментом администрирования Linux и совсем не означает ограниченность в возможностях или неполноценность системы. Даже наоборот, командная строка позволяет выполнить многие задачи намного быстрее и проще, чем графические инструменты администрирования.
Но существуют же графические инструменты администрирования, скажет иной читатель, панели там разные, или можно же поставить графическую оболочку. Можно, но не нужно. Почему? Внимательно посмотрите на схему ниже:
Linux, создававшийся по образу и подобию UNIX-систем, является полноценной системой и без графической оболочки, более того мы можем запустить, закрыть или вообще сменить графическую оболочку без какого-либо влияния на работоспособность системы и даже без ее перезагрузки. Завершили сеанс Gnome, запустили KDE, а потом и вовсе вышли в консоль. Поэтому все инструменты управления системой разработаны для использования в режиме командной строки. А все панели и графические инструменты являются всего лишь надстройкой над ними.
Windows долгое время разрабатывался по принципиально иной технологии, графическая оболочка была поставлена в основу системы и долгое время даже выполнялась на уровне ядра (семейство Win 9x). Поэтому все инструменты администрирования были изначально графическими, а инструменты командной строки скорее их дополняли, чем заменяли. Любой, кто занимался восстановлением Windows, знает, что возможности инструментов командной строки там существенно ограничены и предназначены в первую очередь для восстановления системы, а не для ее администрирования.
Ситуация стала меняться с выходом PowerShell и Core-версий Windows Server. Несмотря на то, что сегодня графическая оболочка продолжает играть существенную роль в Windows-системах, администраторы получили в руки альтернативный инструмент – консоль PowerShell, которая позволяет полноценно администрировать Windows в режиме командной строки. При этом возможности PowerShell сразу завоевали популярность в среде специалистов, так как позволяют выполнять многие задачи быстрее и проще, чем графические инструменты.
А еще режим командной строки дает неограниченные возможности в создании собственных скриптов и сценариев, позволяющих выполнять сложные последовательности действий в автоматическом режиме или по расписанию.
После этого, как нам кажется, вы должны будете посмотреть на консоль Linux совсем с другой стороны. Что касается панелей и графических инструментов, то тут есть существенные отличия от Windows-систем. В Windows графические инструменты являются полноценной альтернативой PowerShell. В Linux графические инструменты являются надстройкой над консолью, по факту используя те-же самые инструменты, но через дополнительную прослойку. Поэтому мы категорически не рекомендуем использовать разного рода панели и иные графические инструменты, по крайней мере до тех пор, пока вы не освоите консоль. После этого вы уже сможете самостоятельно решить, нужна ли вам панель или вы способны сделать все проще и быстрее через консоль.
Увлечение панелями на раннем этапе знакомства с системой приводит к тому, что навыки администрирования системы будут подменены навыками работы с панелью, что черевато проблемами, когда панель по какой-либо причине окажется недоступной, а работать с системой надо. Это можно сравнить с тем, что человек учившийся вождению автомобиля с механической коробкой без проблем пересядет на автомат, а человек изначально умеющий ездить только на автомате вряд-ли сможет без дополнительного обучения поехать на машине с механикой.
Если вы еще не передумали становиться Linux-администратором, то поедем дальше и рассмотрим отличия в архитектуре системы.
Ядро и драйвера
Основу любой операционной системы составляет ядро. Существует несколько различных архитектур ядра, Linux, как и подавляющее большинство UNIX систем, использует монолитное ядро, Windows наоборот использует концепцию микроядра, хотя по-настоящему архитектура Windows микроядерной не является, принято считать, что Windows использует гибридное ядро.
Особенностью монолитного ядра является то, что все драйвера оборудования также являются частью ядра. Ранее, при изменении аппаратной части, ядро надо было пересобирать, сегодня монолитные ядра используют модульную схему, т.е. динамически позволяют загружать необходимые модули, отвечающие за тот или иной функционал. Т.е. добавив в систему новое устройство, мы должны динамически загрузить соответствующий модуль ядра, а если такого модуля нет, то работа с устройством окажется невозможной. В качестве решения мы можем собрать модуль самостоятельно, но при этом модуль будет скомпилирован под текущую версию ядра и при его смене модуль нужно будет перекомпилировать.
В микроядерной и гибридной архитектурах, драйвера, хоть могут и работать на уровне ядра, его частью не являются и от версии ядра не зависят. Поэтому мы можем без проблем обновлять ядро или использовать один и тот-же драйвер для всех версий систем с общей структурой ядра. Например, в Windows для всего семейства современных ОС, от Windows Vista до Windows 8.1, часто используется один и тот-же драйвер.
Это не значит, что Linux в этом плане хуже, иная архитектура предусматривает иные подходы. Практически это означает только одно – к выбору оборудования для серверов надо относиться более внимательно, стараясь чтобы все основные устройства поддерживались ядром вашего дистрибутива. Особенно это касается сетевых карт. Будет очень неприятно, если после каждого обновления ядра вам придется бегать в серверную, подключать к серверу монитор и клавиатуру и заново собирать модуль ядра.
По сути, такого понятия как драйвер, в Linux системах не существует. Оборудование либо поддерживается ядром, либо нет. Несомненный плюс монолитного ядра – оно самодостаточно. Если все оборудование поддерживается – поставил и забыл, самое время вспомнить ситуацию, когда под Windows нет драйвера сетевой карты и диск утерян.
Файловая система
Мы не будем касаться конкретных файловых систем, тут проблем возникнуть не должно, если администратор работал с Windows системами, то что такое файловая система и чем FAT отличается от NTFS он знает, поэтому разобраться в разнице между ext3, ext4 и, скажем, ReiserFS для него особого труда не составит. А поговорим о фундаментальных отличиях. В отличие от Windows, файловая система Linuх иерархична. Она начинается от корня, который обозначается знаком / (слеш), и имеет древовидную структуру. При этом абсолютно не имеет значения, что отдельные части файловой системы могут находиться на других разделах или вообще физических дисках.
Рассмотрим еще одну схему.
В Windows каждый раздел имеет собственную файловую систему и обозначающую его букву. Все пути к файлам и папкам начинаются с буквы, т.е. от корня раздела. Так если у нас на первом физическом диске, на втором логическом разделе была папка DATA, то путь к ней соответственно будет как D:DATA, если мы захотим перенести ее на второй жесткий диск, то ее пусть изменится на E:DATA. В ряде случаев это жутко неудобно, так как путь надо изменить во всех местах ее использования и даже существуют соответствующие утилиты.
В Linux подход кардинально иной. Самое время познакомиться с термином точка монтирования, который означает место файловой системы, куда подключается устройство хранения данных. Например, мы хотим вынести домашние каталоги пользователей на отдельный раздел, как на схеме выше, для этого нам нужно смонтировать второй логический раздел первого физического диска sda2 в /home. После чего перенести туда все пользовательские данные. Для системы и программ это произойдет абсолютно прозрачно, они как использовали абсолютный путь, скажем /home/andrey/data, так и будут его использовать. Добавили еще один диск и хотим вынести туда директорию /var? Нет проблем, останавливаем использующие каталог службы, монтируем sdb1 в /var и переносим данные, запускаем службы.
Всё есть файл
Еще один основополагающий принцип, который унаследован от UNIX-систем. В Linux всё есть файл: устройства, диски, сокеты и т.д., например, открыв /var/run мы увидим pid-файлы, соответствующие каждой запущенной службе в системе, а в /dev файлы каждого подключенного к системе устройства:
Что это дает? Не будем вдаваться в подробности, а разберем несколько простых примеров. Скажем, нужно создать образ оптического диска. В Windows нам понадобится для этого специализированное ПО, в Linuх все проще, CD-ROM – это блочное устройство, но в тоже время – это файл, файл блочного устройства. Берем соответствующий инструмент и копируем содержимое файла устройства в файл ISO образа:
dd if=/dev/cdrom of=/home/andrey/image.iso
Хотим заменить жесткий диск? Нет ничего проще, копируем содержимое одного файла блочного устройства в файл другого блочного устройства:
dd if=/dev/sda of=/dev/sdb
И не нужно никаких Partition Magic.
Другая ситуация, какое-либо ПО настоятельно ищет библиотеку lib-2-0-1.so, а у нас есть совместимая с ней, но более новая, lib-2-1-5.so, как быть? Создаем символическую ссылку на lib-2-1-5.so с именем lib-2-0-1.so и все будет работать. Потому что все есть файл и символическая ссылка тоже тип файла. А теперь попробуйте подсунуть Windows приложению lib-2-0-1.lnk вместо lib-2-1-5.dll…
Или нам нужно сохранить вывод какой-либо команды. Например, команда
ifconfig
выведет на экран сведения о сетевых адаптерах системы:
А теперь вспоминаем, что все есть файл, в том числе и устройство отображения (экран), поэтому просто перенаправим стандартный поток вывода вместо экрана в нужный нам файл:
ifconfig > ~/123.txt
После чего вывод команды будет сохранен в файл 123.txt в корневой директории пользователя:
Потоки и конвейер
В прошлом примере мы затронули стандартный поток вывода. В Linux существуют стандартные для всех процессов потоки ввода-вывода данных stdin, stdout и поток вывода ошибок stderr. Что это значит? Как минимум то, что процесс обмена данными между различными процессами стандартизован. Это позволяет создавать конвейеры, когда стандартный поток вывода одной команды передается стандартному потоку ввода другой. Например, мы хотим посмотреть список установленных пакетов в системе, в частности пакеты squid. Для этой цели есть команда:
dpkg -l
Ээээ… Это что такое и как тут что-то понять? На экране быстро промелькнули сведения о всех установленных в системе пакетах и все что мы можем видеть, это “хвост” этого вывода:
Но ведь нам и не нужен весь вывод этой команды, нас интересуют исключительно пакеты squid. Поэтому направим вывод этой команды на ввод другой, которая уже отберет и покажет то, что нам нужно:
dpkg -l | grep squid
Вот это совсем другое дело!
Причем конвейер может быть сколь угодно длинным, результат работы одной команды можно передавать второй, от второй к третьей и т.д. Еще один пример из жизни. Вам надо получить все строки вашего конфигурационного файла squid, но без комментариев и пустых строк, чтобы, например, выложить на форуме или отправить другу. Можно конечно скопировать все, но вряд-ли кто-то захочет вам помогать, прокручивая полотно стандартного файла squid.conf, большая часть которого комментарии и примеры. Делаем проще:
Просто и понятно, все опции как на ладони. Это стало возможным в результате использования конвейера трех команд, первая вывела в поток содержимое файла, вторая отобрала все строки кроме комментариев, а третья удалила пустые, результат мы направили в файл.
Буквы большие, буквы маленькие
Linux, как и UNIX, является регистрозависимой системой. И это надо помнить! Потому что, в отличие от Windows, myfile.txt, Myfile.txt и myfile.TXT – это три разных файла. В целях совместимости с другими системами не стоит этим злоупотреблять и хранить файлы, имя которых отличается только регистром, а хорошим тоном считается использование в именах только строчных букв.
Расширения и типы файлов
В Windows системах тип файла определяется его расширением, если мы переименуем exe-файл в jpg, то он не запустится, и система будет пытаться обработать его как картинку. В Linux тип файла определяется по его содержимому и расширение используется исключительно для совместимости с другими системами или для удобства пользователя. Возможность исполнения файла обеспечивается установкой соответствующего атрибута. Так в Windows чтобы сделать скрипт исполняемым, надо было изменить расширение с txt на bat, в Linux для этого нужно сделать файл исполняемым. Непонимание этого момента приводит к ситуациям, когда начинающий администратор не понимает, почему его скрипт myscript.sh не выполняется. На самом деле расширение .sh нужно только для удобства, чтобы сразу было ясно, это скрипт Bash Shell, а чтобы он работал, ему надо поставить атрибут исполняемого, а называться он может как угодно, хоть myscript.pupkin-vasya.
Требования
сервер с Ubuntu 16.04 (см. руководство Vscale: создаём первый сервер).
Для разных операционных систем командную строку можно открывать с помощью приложений:
Mac OS X: Terminal (default), iTerm 2;
Windows: PuTTY;
Linux: Terminal, KDE Konsole, XTerm.
С подробным описанием команд для Ubuntu можно ознакомиться в официальной документации Командная строка Ubuntu.
Вход на сервер через терминал
В операционной системе Ubuntu 16.04 открыть командную строку можно двумя способами: через консоль и через графический терминал.
Для работы через консоль следует нажать сочетание клавиш Ctrl+Alt+F1, для возврата в графический интерфейс – сочетание клавиш Ctrl+Alt+F7.
Для запуска терминала нажмите сочетание клавиш Ctrl+Alt+T.
Внизу экрана располагается приглашение командной строки – последовательность символов, извещающая о готовности к обработке команд:
kamilla@kamilla-Aspire-V3-371:~$
, где:
kamilla – имя текущего пользователя (суперпользователь/администратор);
kamilla-Aspire-V3-37 – имя хоста (сервер);
: – разделитель;
~ – текущая директория (в какой папке выполняется команда) пользователя (по умолчанию /home/
$ – символ приглашения ввода для пользователей с обычными правами;
# – символ приглашения ввода для суперпользователя/администратора root (например, root@cs49647:~#).
Базовые команды, используемые при настройке сервера
После создания нового сервера необходимо предпринять несколько шагов по его базовой настройке (см. руководство Начальная настройка сервера под управлением ОС Ubuntu).
Для того чтобы открыть сервер под учетной записью заведенного пользователя введите команду:
ssh -p №port demo@adress
, где:
№port – номер заданного порта при начальной настройке сервера;
demo – имя пользователя;
adress – ip-адрес сервера.
Для входа на сервер под учетной записью root используйте команду, заменив SERVER_IP_ADDRESS на публичный IP-адрес Вашего сервера:
ssh root@SERVER_IP_ADDRESS
Для создания новой учетной записи пользователя введите команду, заменив имя DEMO на любое другое необходимое имя:
adduser DEMO
Для открытия конфигурационного файла в текстовом редакторе под пользователем root введите команду:
nano /etc/ssh/sshd_config
Для замены строчки в открывшемся конфигурационном файле найдите, например, строчку Port 22 и замените число 22 на любое другое число (от 1025 и до 65536).
После внесения изменений сохраните и закройте файл, нажав сочетание клавиш CTRL-X, затем клавишу Y, затем клавишу ENTER.
Для перезапуска сервиса SSH выполните следующую команду:
service ssh restart
Для выполнения команды с привилегиями root-пользователя, перед ней следует поставить слово sudo:
sudo command_to_run Для завершения сессии выполните команду:
exit
Обзорное описание команд, аргументов и опций для них
Для запуска команды следует ввести команду и нажать клавишу Enter.
Команды выполняются последовательно, для выполнения следующей появится приглашение командной строки (если не использовать специальные скрипты).
Для того чтобы открыть страницу с подробным описанием команды Linux, например ip address, введите команду man с именем команды:
man ip address
Запуск без аргументов и опций
При запуске команд без аргументов:
cd – возврат в домашнюю директорию текущего пользователя;
ls – вывод списка файлов и директорий в текущем каталоге.
Пример:
Выполнив команду ls без параметров, получаем список файлов в каталоге:
testk@cs49647:~$ ls linux.jpg template ubuntu.jpg
Запуск с аргументами (параметрами)
Большинство команд рассчитано на запуск с передачей аргументов (параметров).
Наиболее распространенное использование команды cd – это вызов с аргументом, который является путем к директории, в которую следует перейти:
cd /usr/bin
Запуск с опциями
Многие команды также поддерживают опции (флаги, ключи) запуска, позволяющие изменять результат выполнения команды. Опции представляют собой одиночный символ после символа «-», либо в расширенном написании после «–».
Пример:
Выполнив команду ls с опциями -A, -S, -1, получаем список всех файлов, включая «скрытые», расположенных по одному на каждой строке и отсортированных по размеру:
testk@cs49647:~$ ls -AS1 .gtkrc-2.0 linux.jpg ubuntu.jpg template .filter
Запуск с аргументами и опциями (одновременно)
Структура записи команды с опциями и аргументами:
команда -опции аргументы
Пример:
Команда ls -la /home выведет подробный (-l) листинг директории /home, включая скрытые файлы (-a):
testk@cs49647:~$ ls -la /home total 12 drwxr-xr-x 3 root root 4096 Oct 14 16:13 . drwxr-xr-x 22 root root 4096 Oct 20 10:25 .. drwxr-xr-x 4 testk testk 4096 Oct 19 10:52 testk
Переменные окружения
Окружение/среда (environment) – это набор пар ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ, которые могут использоваться запускаемыми процессами.
Просмотр переменных окружения
Для того чтобы посмотреть свое окружение введите команду без аргументов:
env
В зависимости от конфигурации системы, вывод списка переменных окружения может занять несколько экранов, поэтому лучше использовать команду:
env | more
Просмотр значения переменной
Переменные окружения могут формироваться как из заглавных, так и из строчных символов, однако исторически повелось именовать их в верхнем регистре.
Чтобы вывести на экран значение какой-нибудь переменной окружения, достаточно набрать echo $ИМЯ_ПЕРЕМЕННОЙ, например, просмотр домашней директории пользователя, хранящийся в переменной окружения $HOME:
echo $HOME
Для перехода в домашнюю директорию следует использовать команду:
cd $HOME
Установка переменных окружения
Для установки значений переменной окружения введите команду:
VAR=value
, где
VAR – название переменной;
value – значение переменной.
Пример:
Выполнив команду var=value, после вывода на просмотр получаем результат value:
testk@cs49647:~$ var=value testk@cs49647:~$ echo $var value
Использование встроенной консоли VScale
Для работы с командной строкой также можно использовать встроенную консоль VScale, нажав в меню справа кнопку “Открыть консоль”.
Откроется консоль следующего вида.
Для работы с сервером следует использовать логин и пароль, например, root и пароль, выданный при создании сервера.
Шпаргалка по работе в командной строке Linux
Включение/выключение
Перезагрузить компьютер:rebootили shutdown -r nowВыключить компьютер:shutdown -h nowВыключить компьютер через заданное время:shutdown -h hh:mmили shutdown -h +mОкончание сеанса работы в терминале:exit
Управление пользователями
Включить корневую учетную запись:sudo passwd rootЗаблокировать корневую учетную запись:sudo passwd -l rootДобавить пользователя:adduser имя_пользователяУдалить пользователя:deluser имя_пользователяУдалить пользователя вместе с домашним каталогом:deluser имя_пользователя -remove-homeИзменить имя пользователя и название его домашнего каталога:usermod -l новое_имя_пользователя -d /home/новое_имя_пользователя -m старое_имя_пользователяИзменить пароль пользователя:passwd имя_пользователяВосстановить пароль к учетной записи в режиме восстановления системы (нажать Esc в процессе загрузки GRUB):passwd имя_записи
Управление каталогами
Показать информацию о файловых системах:sudo mountПоказать список разделов:dfПоказать содержание текущего каталога:du -hПоказать объем указанного каталога:du -S имя_каталогаОтобразить путь к текущему каталогу:pwdСоздать каталог:mkdir имя_каталогаСкопировать каталог:cp каталог_1 каталог_2Переместить каталог_1 в каталог_2:mv каталог_1 каталог_2Войти в каталог:cd /имя_каталогаПоказать содержание каталога:ls /имя_каталогаПоказать содержание каталога, включая скрытые файлы и каталоги:ls -a /имя_каталогаПоказать полную информацию о содержании каталога:ls -l /имя_каталогаУдалить пустой каталог:rmdir имя_каталогаУдалить каталог с содержанием:rm -r имя_каталога
Работа с файлами
Создать файл в текущем каталоге:touch имя_файла.txtНайти файл:locate имя_файлаОбновить базу поиска файлов:updatedbПросмотреть текстовый файл:cat /путь/имя_файлаПросмотреть текстовый файл в обратном порядке — от последней строки к первой:tac /путь/имя_файлаСкопировать файл_1 в файл_2:cp файл_1 файл_2Переместить файл_1 в файл_2:mv файл_1 файл_2Переместить файл с сохранением оригинала (в конец имени файла дописывается символ ~):mv -b файл целевой_каталогУдалить файл:rm имя_файлаЗаписать информацию в файл, перезаписав его:echo текст > имя_файла.txtДобавить информацию в файл без его перезаписи:echo текст >> имя_файла.txtСлить несколько текстовых файлов в один:cat файл_1 файл_2 > итоговый_файл
Пример:-r–r—–dr–r—–Дефис вначале означает обычный файл, d — каталог (директорию). Дальше три группы по три символа означают права доступа для владельца, членов группы, в которую входит владелец, и для всех остальных пользователей соответственно.дефис означает отсутствие прав, r — означает право на чтение, w — право на запись, x — право на выполнение.Просмотреть права доступа:ls -l имя_файла_или_каталогаЗадать права доступа:chmod *** имя_файла_или_каталога где *** — права доступа, указанные абсолютным способом, или: chmod группа=/+/-тип доступа имя_файла_или_каталога где группа: u (user, владелец), g (group, группа), o (other, другие), a (all, все), например: chmod a+rw имя_файлаИзменить владельца:chown имя_пользователя имя_файлаРаспространенные права доступа:644 = rw-r–r– 666 = rw-rw-rw- 777 = rwxrwxrwx
Порядок цифр соответствует порядку пользователей (ugo), цифра в каждой позиции складывается из значений 4, 2 и 1 для прав r, w и x, соответственно. Так право полного доступа для владельца и отсуствие каких-либо прав для группы и прочих пользователей будет 700 (4+2+1.0.0).
Управление программами
Обновить список программного обеспечения:apt-get updateОбновить систему:apt-get upgradeНайти программу в репозитарии по ключевому слову:apt-cache search ключевое_словоПоказать информацию о пакете:apt-cache show название_пакетаУстановить программу из репозитария:apt-get install имя_пакетаУдалить установленную программу:apt-get remove имя_пакетаУдалить программу вместе с файлами настройки:apt-get remove purge имя_пакетаУстановить программу из скомпилированного пакета:dpkg -i имя_пакета.debУдалить программу:dpkg -r имя_пакета.debОчистить локальное хранилище полученных файлов пакетов:apt-get cleanПросмотреть список установленных пакетов:dpkg -lДобавить частный источник программного обеспечения PPA (Personal Package Archive):add-apt-repository ppa:user/ppa-nameУстановить программу из бинарного файла (предварительно необходимо перейти в каталог с файлом программы):./имя_файла.binРазрешить исполнение файла (если необходимо):chmod a+x имя_файла.bin /> Установить программу из исходных файлов (предварительно необходимо перейти в каталог с файлом программы):./configure make make installУдалить программу, установленную из исходных файлов:make uninstallЗапустить графическую программу с правами root:gksudo имя_программы
Управление системой
Отобразить список зарегистрированных в системе пользователей:whoПоказать информацию об использовании оперативной памяти:freeПоказать список запущенных процессов:psЗавершить процесс:killall имя_процессаПоказать список процессов в реальном времени:topВнести изменения в файл конфигурацииgedit /путь/к_файлуСнизить скорость чтения диска в приводе:hdparm -E 4 /dev/dvdrom
Диагностика системы
Проверить жесткий диск на «битые» секторы:badblocksПоказать состояние сетевых интерфейсов:ifconfigПоказать состояние беспроводных сетевых устройств:iwconfigПроверить таблицу маршрутизации:routeПроверить доступность компьютера в сети:ping имя_сайта_или_ip_адрес Остановить процесс: Ctrl+CПроверить маршрут следования пакета:traceroute имя_сайта_или_ip_адресПоказать информацию о подключенных USB-устройствах:lsusbОтобразить список PCI-шин и подключенных к ним устройств:lspciОтобразить список оборудования системы:lshw
Получение помощи
Показать Введение в пользовательские команды:man introОтобразить краткое описание команды:whatis имя_командыВывести информацию о команде:man имя_командыinfo имя_командыимя_команды –helpНайти информацию по ключевым словам:man -k ключевое_словоПоиск по странице:/ключевое_словоПродолжить поиск:NВывести историю команд:historyВыполнить команду из списка истории команд:!номер_команды!первые_буквы_командыОчистить экран консоли:clear
Объединение команд
Последовательное выполнение команд:команда1 ; команда2Последовательное выполнение команд при условии успешного выполнения предыдущей команды:команда1 && команда2Последовательное выполнение команд при условии неудачного выполнения предыдущей команды:команда1 || команда2Последовательное выполнение команд с передачей результатов выполнения предыдущей команды последующей:команда1 | команда2Запуск команды в фоновом режиме:команда &
Символы подстановки
Текущий каталог: .
Родительский каталог: ..
Домашний каталог пользователя: ~
Один произвольный символ: ?
Любое количество произвольных символов: *
Символ из указанного диапазона: [a,b,x-z], например, [a,b].rar
Любые символы, кроме указанных: [!ab], например, [!ab].rar
Подстановка с помощью фигурных скобок: например, {a,b}{1,2} создаст строку a1 a2 b1 b2
Указание специального символа: или апостроф, например, ’имя файла’, или имя файла
Основные команды Linux
Ниже я вкратце рассмотрю некоторые основные команды (утилиты) Linux и их опции, которые часто приходится использовать при работе в командной строке. Некоторые команды я приведу с примерами, а некоторые просто с кратким описанием.
ls — вывод имен файлов
Утилита ls предназначена, для вывода списка файлов и каталогов в текущем каталоге. Рассмотрим некоторые полезные свойства команды ls.
-A — включить в список «скрытые» файлы («скрытые» файлы в Linux имеют в своем названии точку в начале имени файла, например, .gtkrc-2.0). -S — отсортировать файлы по размеру. -t — отсортировать по дате изменения. -1 — выводить имена в столбик, по одному на каждой строке. -l — вывести подробную информацию о каждом файле, размер файла, владелец файла, права доступа, дата изменения.
Теперь приведу несколько примеров. Выполнив команду ls без параметров, вы получите просто список файлов в каталоге.
admin@pingvinus:~/information$ ls fonts.tar.gz linux.jpg report.odt template ubuntu.jpg
Теперь выполним команду с опциями -A, -S, -1. В результате получим список всех файлов, включая «скрытые», расположенных по одному на каждой строке и отсортированных по размеру.
admin@pingvinus:~/information$ ls -AS1 fonts.tar.gz .gtkrc-2.0 linux.jpg report.odt ubuntu.jpg template .filter
Выполним команду ls с опцией -l. Получим подробную информацию о каждом файле.
Команда mkdir предназначена для создания новой директории. Чтобы создать новую директорию, выполните mkdir <имя директории=””>. Для того, чтобы создать сразу несколько директорий, укажите их имена через пробел, например:mkdir mydir1 mydir2 mydir3
cp — копирование файла
Утилита cp используется для создания копии файла. Для обычного копирования используется следующий синтаксис cp <имя файла=”” источника=””> <имя файла=”” назначения=””>.
При использовании cp есть один нюанс, который нужно обязательно помнить. Если файл назначения уже существует, то cp перезапишет его. Поэтому, чтобы избежать случайного уничтожения существующего файла, нужно использовать команду cp с опцией -i. Перед перезаписью файла будет выдан запрос на ваше согласие. Например, если мы копируем файл linux.jpg в файл windows.jpg и windows.jpg уже существует, то будет выдан запрос на перезапись файла:
admin@pingvinus:~/information$ cp -i linux.jpg windows.jpg cp: переписать `windows.jpg’? y
Опция -r (или -R) используется для копирования одной директории в другую.
mv — перемещение, переименование файла
Утилита mv предназначена для перемещения, переименования файла. Для переименования файла используется синтаксис mv <имя файла=””> <новое имя=”” файла=””>. Для перемещения файла в другую директорию используется синтаксис mv <имя файла=””> <директория>. С mv можно также использовать опцию -i, чтобы случайно не перезаписать существующий файл.
rm — удаление файла
Команда rm предназначена для удаления файлов. Основные опции команды:
-i — выводить запрос перед удалением каждого файла. -r (или -R) — удалить директории и их содержимое.
cd — смена текущего каталога
Команда cd предназначена для смены каталога, в котором вы сейчас находитесь. Например, вы сейчас находитесь в своем домашнем каталоге ~ и хотите перейти в каталог ~/information, тогда нужно просто выполнить команду cd information.
admin@pingvinus:~$ cd information/ admin@pingvinus:~/information$
Если выполнить команду cd без параметров, то вы перейдете в свой домашний каталог ~.
admin@pingvinus:~/information$ cd admin@pingvinus:~$
Чтобы перейти в каталог на уровень выше (в родительский каталог) можно использовать синоним «две точки» — .., которые в Linux служат синонимом пути родительского каталога. Например, находясь в каталоге ~/information мы можем перейти в каталог ~ следующим образом:
admin@pingvinus:~/information$ cd .. admin@pingvinus:~$
cat — вывод содержимого файла
Утилита cat выводит содержимое текстового файла. Простейший синтаксис команды cat <имя файла=””>. Утилита cat может использоваться для соединения конкатенации двух текстовых файлов, собственно от этого и происходит название утилиты (catenation, concatenation). Например, у нас есть два файла download и ubuntu и в каждом по две строки. Сначала мы выведем содержимое файлов по отдельности, а затем сделаем конкатенацию двух файлов.admin@pingvinus:~/information$ cat download first line of file download second line of file download admin@pingvinus:~/information$ cat ubuntu first line of file ubuntu second line of file ubuntu admin@pingvinus:~/information$ cat download ubuntu first line of file download second line of file download first line of file ubuntu second line of file ubuntu
pwd — вывод полного пути текущего каталога
Команда pwd используется, чтобы вывести полный путь текущего каталога.
Системная утилита man выводит страницы системной документации. С ее помощью можно получить информацию по любым командам Linux. Для этого используется синтаксис man <имя утилиты=””>. Например, чтобы вывести руководство по утилите ls, используйте команду man ls. Войдите, чтобы ставить лайкимне нравитсяЛайков: +1 войдите, чтобы ставить лайки
Промежуточные команды
1. echo – команда “echo” помогает нам перемещать некоторые данные, обычно текст, в файл. Например, если вы хотите создать новый текстовый файл или добавить в уже созданный текстовый файл, вам просто нужно ввести «echo hello, меня зовут hich >> new.txt». Вам не нужно разделять пробелы с помощью обратной косой черты здесь, потому что мы заключаем в две треугольные скобки, когда мы заканчиваем то, что нам нужно написать.
результат команды echo в linux
2. cat – Используйте команду cat для отображения содержимого файла. Обычно используется для удобного просмотра программ.
результат команды echo в linux
3. nano, vi, jed – nano и vi уже установлены текстовые редакторы в командной строке Linux. Команда nano – хороший текстовый редактор, который помечает ключевые слова цветом и может распознавать большинство языков. И vi проще, чем nano. Вы можете создать новый файл или изменить файл с помощью этого редактора. Например, если вам нужно создать новый файл с именем «check.txt», вы можете создать его с помощью команды «nano check.txt». Вы можете сохранить ваши файлы после редактирования, используя последовательность Ctrl + X, затем Y (или N для no). По моему опыту, использование nano для редактирования HTML выглядит не очень хорошо из-за его цвета, поэтому я рекомендую jed текстовый редактор. Мы скоро приступим к установке пакетов.
4. sudo – широко используемая команда в командной строке Linux, sudo означает «SuperUser Do». Поэтому, если вы хотите, чтобы любая команда выполнялась с правами администратора или root, вы можете использовать команду sudo. Например, если вы хотите отредактировать файл, такой как viz. alsa-base.conf, для которого требуются права root, вы можете использовать команду – sudo nano alsa-base.conf. Вы можете ввести корневую командную строку с помощью команды «sudo bash», а затем ввести свой пароль пользователя. Вы также можете использовать команду «su», но перед этим вам нужно установить пароль root. Для этого вы можете использовать команду «sudo passwd» (не с орфографической ошибкой, это passwd). Затем введите новый пароль root.
5. df – используйте команду df, чтобы увидеть доступное дисковое пространство в каждом из разделов вашей системы. Вы можете просто ввести df в командной строке и увидеть каждый смонтированный раздел и его использованное / доступное пространство в % и в килобайтах. Если вы хотите, чтобы оно отображалось в мегабайтах, вы можете использовать команду «df -m».
результат команды df -m в linux
6. du – Используйте du, чтобы узнать, как файл используется в вашей системе. Если вы хотите узнать размер занимаемого места на диске для конкретной папки или файла в Linux, вы можете ввести команду df и имя папки или файла. Например, если вы хотите узнать размер дискового пространства, используемое папкой документов в Linux, вы можете использовать команду «du Documents». Вы также можете использовать команду «ls -lah», чтобы просмотреть размеры всех файлов в папке.
7. tar – Используйте tar для работы с tarballs (или файлами, сжатыми в архиве tarball) в командной строке Linux. У него длинный список применений. Он может использоваться для сжатия и распаковки различных типов архивов tar, таких как .tar, .tar.gz, .tar.bz2 и т. д. Это работает на основе аргументов, данных ему. К примеру, “tar -cvf” для создания .tar архива, –xvf для распаковки .tar архива, –tvf для просмотра содержимого архива и т.д.
8. zip, unzip – используйте zip для сжатия файлов в zip-архив и unzip для извлечения файлов из zip-архива.
9. uname – используйте uname, чтобы показать информацию о системе, в которой работает ваш дистрибутив Linux. Использование команды «uname -a» выводит большую часть информации о системе: дату выпуска ядра, версию, тип процессора и т. д.
результат команды uname -a в linux
10. apt-get – используйте apt для работы с пакетами в командной строке Linux. Используйте apt-get для установки пакетов. Это команда требует прав суперпользователя, поэтому используйте команду sudo с ним. Например, если вы хотите установить текстовый редактор jed (как я упоминал ранее), мы можем ввести команду «sudo apt-get install jed». Точно так же любые пакеты могут быть установлены следующим образом. Рекомендуется обновлять ваш репозиторий каждый раз, когда вы пытаетесь установить новый пакет. Вы можете сделать это, набрав «sudo apt-get update». Вы можете обновить систему, набрав «sudo apt-get upgrade». Мы также можем обновить дистрибутив, набрав «sudo apt-get dist-upgrade». Команда «apt-cache search» используется для поиска пакета. Если вы хотите найти его, вы можете ввести «apt-cache search jed» (для этого не требуется root).
11. chmod – используйте chmod, чтобы сделать файл исполняемым и изменить разрешения, предоставленные ему в Linux. Представьте, что на вашем компьютере есть код Python с именем numbers.py. Вам нужно будет запускать «python numbers.py» каждый раз, когда вам нужно его запустить. Вместо этого, когда вы делаете его исполняемым, вам просто нужно запустить «numbers.py» в терминале, чтобы запустить файл. Чтобы сделать файл исполняемым, вы можете использовать команду «chmod + x numbers.py» в этом случае. Вы можете использовать «chmod 755 numbers.py», чтобы дать ему права root, или «sudo chmod + x numbers.py» для исполняемого файла root. Вот еще немного информации о команде chmod.
12. hostname – Используйте команду hostname, чтобы узнать ваше имя в вашем хосте или сети. По сути, он отображает ваше имя хоста и IP-адрес. Просто набрав «hostname», вы получите имя хоста. Набрав «hostname -I», вы получите свой IP-адрес в сети.
13. ping – используйте ping для проверки вашего соединения с сервером. Википедия говорит: «Ping – это утилита для администрирования компьютерной сети, используемая для проверки доступности хоста в сети Интернет-протокола (IP)». Например, когда вы набираете, , «ping google.com», он проверяет, может ли он подключиться к серверу и вернуться обратно. Он измеряет это время в оба конца и дает вам подробную информацию о нем. Использовать эту команду можно и для проверки интернет-соединения. Если он пингует сервер Google (в данном случае) – интернет-соединение активно!
результат команды ping в linux
Советы и рекомендации по использованию командной строки Linux
Вы можете использовать команду clear, чтобы очистить терминал, если он там скопилось слишком много команд.
TAB можно использовать для заполнения в терминале. Например, вам просто нужно набрать «cd Doc», а затем TAB, и терминал заполняет все остальное и делает его «cd Documents».
Ctrl + C может использоваться для безопасной остановки любой команды в терминале. Если Crtl+C не сработал, то можно использовать Ctrl + Z чтобы остановить процесс, запущенный в терминале.
Вы можете выйти из терминала, используя команду exit. Выключить или перезагрузить компьютер можно с помощью команд sudo halt и sudo reboot.
<хедер class=”read-next-card-хедер”>
5 инструментов, чтобы запомнить команды Linux навсегда
Semen Lobachevskiy
Semen Lobachevskiy 7 янв. 2019• 3 мин. чтения
Команда chmod используется для изменения прав доступа к файлам или каталогам.
DNS расшифровывается как Domain Name System. Это глобальное распределенное хранилище ключей и значений. Сервера по всему миру могут предоставить вам значение по ключу, а если им неизвестен ключ, то они попросят помощи у другого сервера.
Вот и все. Правда. Вы или ваш браузер запрашивает значение для ключа www.example.com, и получает в ответ 1.2.3.4.
Как изменить DNS
Чтобы переопределить DNS заходим в раздел «Центр управления сетями» классической панели управления.
Далее кликаем пункт «Изменение параметров адаптера» и щелкаем активное подключение. Щелкаем его правой кнопкой, переходим к пункту «Свойства».
Выбираем протокол TCP/IPv4, снова щелкаем «Свойства».
Выбираем альтернативный адрес DNS.
Базовые штуки
Большой плюс DNS в том, что это публичная услуга, и можно потыкать в сервера если хочется разобраться. Давайте попробуем. У меня есть домен petekeen.net, который хостится на машине web01.bugsplat.info. Команды, используемые ниже, можно запустить из командной строки OS X (ой, то есть macOS, — прим. пер.).
Давайте взглянем на маппинг между именем и адресом:
$ dig web01.bugsplat.info
Команда dig это такой швейцарский армейский нож для DNS-запросов. Крутой, многофункциональный инструмент. Вот первая часть ответа:
Здесь есть только одна интересная деталь: информация о самом запросе. Говорится, что мы запросили запись и получили ровно один ответ. Вот:
>;; QUESTION SECTION: ;web01.bugsplat.info. IN A
dig по-умолчанию запрашивает A-записи. A это address (адрес), и это один из фундаментальных видов записей в DNS. A содержит один IPv4-адрес. Есть эквивалент для IPv6-адресов — AAAA. Давайте взглянем на ответ:
>;; ANSWER SECTION: web01.bugsplat.info. 300 IN A 192.241.250.244
Тут говорится, что у хоста web01.bugsplat.info. есть один адрес A: 192.241.250.244. Число 300 это TTL, или time to live (время жизни). Столько секунд можно держать значение в кэше до повторной проверки. Слово IN означает Internet. Так сложилось исторически, это нужно для разделения типов сетей. Подробнее об этом можно почитать в документе IANA’s DNS Parameters.
В частности, здесь говорится, как долго сервер откликался, какой у сервера IP-адрес (192.168.1.1), на какой порт стучался dig (53, DNS-порт по-умолчанию), когда запрос был завершен и сколько байтов было в ответе.
Как видите, при обычном DNS-запросе происходит куча всего. Каждый раз, когда вы открываете веб-страницу, браузер делает десятки таких запросов, в том числе для загрузки всех внешних ресурсов вроде картинок и скриптов. Каждый ресурс отвечает за минимум один новый DNS-запрос, и если бы DNS не был рассчитан на сильное кэширование, то трафика генерировалось бы очень много.
Но в этом примере не видно, что DNS-сервер 192.168.1.1 связался с кучей других серверов чтобы ответить на простой вопрос: «куда указывает адрес web01.bugsplat.info?». Давайте запустим трейс чтобы узнать о всей возможной цепочке, которую пришлось бы пройти dig’у, если бы информация не был закэширована:
$ dig +trace web01.bugsplat.info ; <<>> DiG 9.7.6-P1 <<>> +trace web01.bugsplat.info ;; global options: +cmd . 137375 IN NS l.root-servers.net. . 137375 IN NS m.root-servers.net. . 137375 IN NS a.root-servers.net. . 137375 IN NS b.root-servers.net. . 137375 IN NS c.root-servers.net. . 137375 IN NS d.root-servers.net. . 137375 IN NS e.root-servers.net. . 137375 IN NS f.root-servers.net. . 137375 IN NS g.root-servers.net. . 137375 IN NS h.root-servers.net. . 137375 IN NS i.root-servers.net. . 137375 IN NS j.root-servers.net. . 137375 IN NS k.root-servers.net. ;; Received 512 bytes from 192.168.1.1#53(192.168.1.1) in 189 ms info. 172800 IN NS c0.info.afilias-nst.info. info. 172800 IN NS a2.info.afilias-nst.info. info. 172800 IN NS d0.info.afilias-nst.org. info. 172800 IN NS b2.info.afilias-nst.org. info. 172800 IN NS b0.info.afilias-nst.org. info. 172800 IN NS a0.info.afilias-nst.info. ;; Received 443 bytes from 192.5.5.241#53(192.5.5.241) in 1224 ms bugsplat.info. 86400 IN NS ns-1356.awsdns-41.org. bugsplat.info. 86400 IN NS ns-212.awsdns-26.com. bugsplat.info. 86400 IN NS ns-1580.awsdns-05.co.uk. bugsplat.info. 86400 IN NS ns-911.awsdns-49.net. ;; Received 180 bytes from 199.254.48.1#53(199.254.48.1) in 239 ms web01.bugsplat.info. 300 IN A 192.241.250.244 bugsplat.info. 172800 IN NS ns-1356.awsdns-41.org. bugsplat.info. 172800 IN NS ns-1580.awsdns-05.co.uk. bugsplat.info. 172800 IN NS ns-212.awsdns-26.com. bugsplat.info. 172800 IN NS ns-911.awsdns-49.net. ;; Received 196 bytes from 205.251.195.143#53(205.251.195.143) in 15 ms
Информация выводится в иерархической последовательности. Помните как dig вставил точку . после хоста, web01.bugsplat.info? Так вот, точка . это важная деталь, и она означает корень иерархии.
Корневые DNS-сервера обслуживаются различными компаниями и государствами по всему миру. Изначально их было мало, но интернет рос, и сейчас их 13 штук. Но у каждого из серверов есть десятки или сотни физических машин, которые прячутся за одним IP.
Итак, в самом верху трейса находятся корневые сервера, каждый определен с помощью NS-записи. NS-запись связывает доменное имя (в данном случае, корневой домен) с DNS-сервером. Когда вы регистрируете доменное имя у регистратора типа Namecheap или Godaddy, они создают NS-записи для вас.
В следующем блоке видно, как dig выбрал случайный корневой сервер, и запросил у него A-запись для web01.bugsplat.info. Видно только IP-адрес корневого сервера (192.5.5.241). Так какой именно корневой сервер это был? Давайте узнаем!
Флаг -x заставляет dig провести обратный поиск по IP-адресу. DNS отвечает записью PTR, которая соединяет IP и хост, в данном случае — f.root-servers.net.
Возвращаясь к нашему начальному запросу: корневой сервер F вернул другой набор NS-серверов. Он отвечает за домен верхнего уровня info. dig запрашивает у одного из этих серверов запись A для web01.bugsplat.info, и получает в ответ еще один набор NS-серверов, и потом запрашивает у одного из этих серверов запись A для web01.bugsplat.info.. И, наконец, получает ответ!
Уф! Сгенерировалось бы много трафика, но почти все эти записи были надолго закэшированы каждым сервером в цепочке. Ваш компьютер тоже кэширует эти данные, как и ваш браузер. Чаще всего DNS-запросы никогда не доходят до корневых серверов, потому что их IP-адреса почти никогда не изменяются («Наверно все таки речь идет о большом TTL для записей в их базе. Если у DNS сервера IP адрес вообще ни разу не изменялся, то это не означает, что его база навечно закеширована» — прим. от rrrav). Домены верхнего уровня com, net, org, и т.д. тоже обычно сильно закэшированы.
Другие типы
Есть еще несколько типов, о которых стоит знать. Первый это MX. Он соединяет доменное имя с одним или несколькими почтовыми серверами. Электронная почта настолько важна, что у нее есть свой тип DNS-записи. Вот значения MX для petekeen.net:
Заметьте, что MX-запись указывает на имя, а не на IP-адрес.
Еще один тип, который вам скорее всего знаком, это CNAME. Расшифровываетя как Canonical Name (каноническое имя). Он связывает одно имя с другим. Давайте посмотрим на ответ:
Сразу видно, что мы получили два ответа. Первый говорит, что www.petekeen.net указывает на web01.bugsplat.info. Второй возвращает запись A для того сервера. Можно считать, что CNAME это псевдоним (или алиас) для другого сервера.
Зачем нужны DNS-серверы
Система доменных имен функционирует не в виртуальном пространстве, а установлена и работает на определенных физических устройствах. Информация о доменах хранится в форме DNS-записей на множестве специальных компьютерах с соответствующим программным обеспечением. Каждое такое устройство называется сервер доменных имен, а также NS-сервер или DNS-сервер.
Назначение DNS-сервера
Хранение информации о доменах и предоставление ее по запросам;
Кэширования DNS-записей из остальных DNS-серверов.
Классификация серверов
Учитывая функции DNS-сервера, их можно поделить на несколько видов. При этом, сервер-преобразователь или «резолвер» (от англ. Resolver, «преобразователь»), непосредственно конвертирующий доменные имена в IP-адреса, может одновременно принадлежать к двум и более типам.
Ниже представлены определения основных типов DNS-серверов.
Авторитативный — DNS-сервер, который отвечает за определенную зону.
Первичный (Мастер) — сервер, уполномоченный вносить изменения в зону. Как правило, в зоне находится только один первичный сервер.
Вторичный (Слейв) — сервер без права применять изменения в зоны, получающий от «мастера» только уведомления об изменениях. В зоне может находиться неограниченное количество слейвов.
Кэширующий — отвечает за обслуживание пользователей. Он принимает рекурсивные запросы, а затем обрабатывает их с использованием нерекурсивных запросов или передает на вышестоящий сервер. Большинство серверов, работающих непосредственно с пользователями, является именно кэширующими.
Перенаправляющий (Прокси, Балансирующий) — кэширующий сервер, который не отдает данные напрямую, а перенаправляет запросы на связанную с ним цепь кэширующих серверов. Благодаря этому перераспределяется общая нагрузка и уменьшается вероятность даунтайма.
Корневой (Рут) — авторитативный сервер в корневой зоне. В мире расположено 13 таких серверов, их домены находятся в зоне root-servers.net.
Регистрирующий — принимает информацию об обновлениях от пользователей.
Кэширование
Чтобы понимать, как работает DNS-сервер, нужно детально рассмотреть, как в нем происходит процесс кэширования.
При обращениях к любому сайту (даже при переходе на внутренние страницы), серверам необходимо проверять связь домена и IP-адреса. Однако, посещаемый ресурс может храниться довольно далеко, поэтому постоянные запросы на первичный DNS-сервер могут сильно снизить скорость загрузки страниц.
Решить проблему со скоростью обработки запросов позволяет ближайший к компьютеру пользователя DNS-сервер, который становится кэширующим. На нем сохраняется информация о ранее отправленных запросах на IP-адреса. При следующем обращении на один и тот же сайт, данные по его адресу будут поступать оперативно, за счет их наличия в кэше.
Однако, для кэширования нужен источник, с которого будут поступать данные о сайте. Им являются первичные и вторичные DNS-сервера. Это означает, что при регистрации домена владелец сайта должен указывать адрес DNS-сервера, где будет сохранена информация о домене.
Как правило, для работы домена достаточно сохранить свои данные на двух DNS-серверах — первичном и вторичном. Хотя, гораздо лучше указывать большее их количество. Это повысит надежность работы веб-адреса, поскольку при отсутствии доступа к одному DNS-серверу, можно будет обработать запрос на следующем.
Когда и зачем возникает необходимость менять DNS-сервер
По умолчанию DNS-сервер назначается вашим провайдером, но бывают случаи перегрузки, когда конкретному сервису обращается слишком много клиентов. Из-за этого скорость загрузки и передачи пакетов данных может существенно падать. Также некоторые DNS-серверы имеют ограничения в связи с законодательством государства, в котором ведут свою деятельность. Случается, что правительства блокируют даже мировые социальные сети и мессенджеры. В отдельных случаях смена DNS может разрешить доступ к заблокированным ресурсам, а также увеличить скорость загрузки файлов и контента.
Принцип работы DNS-сервера — направить пользователя по правильному адресу интернета
Режим работы DNS
Серверы DNS могут работать в двух режимах:
Итеративный, если сервер отвечает за ту зону для который пришел запрос он присылает ответ, а если нет то он присылает адрес другого сервера, к которому нужно обратиться с запросом.
Рекурсивный, в этом режиме DNS-сервер сам отправляет необходимые запросы всем DNS серверам пока не найдет необходимый сервер, получит от него ответ и этот ответ возвращается к клиенту.
Инфраструктура DNS
Два режима работы необходимы, потому что в системе DNS используются два типа серверов. DNS серверы, которые хранят информацию об отображении доменных имен в ip-адресах, работают в интеративном режиме, так как к этим серверам, особенно к корневым серверам или серверам первого уровня, приходит большое количество запросов, и у них не хватит производительности для работы в рекурсивном режиме.
И есть серверы, которые занимаются разрешением имен для клиентов Эти серверы работают в рекурсивном режиме, получают запрос от клиента, выполняют поиск в дереве серверов DNS, получают ответ и возвращают его клиенту.
Сервер разрешения имен DNS
Сервер разрешения имен находится в локальной сети, он предоставляется либо вашим провайдером, либо вашей организации. Часто адреса таких серверов компьютеры получают автоматически, вместе с ip- адресом по протоколу DHCP.
Другой вариант это использовать открытый сервер разрешения имен, которые предоставляют некоторые компании. Например, широко известен общедоступный DNS сервер компании Google с адресом 8.8.8.8, который может использовать кто угодно. Зачем может понадобиться использовать открытый сервер, вместо серверов вашей локальной сети? Некоторые такие серверы, например, сервер компании Яндекс с таким адресом 77.88.8.7 блокирует контент для взрослых.
Кэширование
После того, как DNS resolver нашел ip-адрес для некоторого доменного имени, он записывает его в кэш, с одной стороны это хорошо так как повышают производительность работы, с другой стороны администратор зоны может поменять ip-адрес для некоторого компьютера, и если он у нас сохранен в кэше, то об изменении мы узнаем только через некоторое время.
Иногда, это время может составлять несколько дней или даже недель в зависимости от настроек DNS resolver. Поэтому не удивляйтесь, если вы внесли изменения в DNS записи, но они пока не видны.
Типы ответов DNS
В DNS есть два типа ответов:
Авторитетный или как пишется в утилите nslookup windows — authoritative «заслуживающий доверие», это ответ, который получен от DNS сервера, который ответственный за данную зону. Ответ получен из конфигурационных файлов на диске сервера, и точно является актуальным.
Неавторитетный (non-authoritative) или «не заслуживающий доверия ответ», это ответ который получен от сервера, который не является ответственным за эту зону. Как правило, это DNS resolver, который закэшировал полученный ранее ответ. С момента создания записи в кэше данные могли измениться, поэтому ответ называется не заслуживающим доверия, но как правило в кэше находятся верные данные.
Протокол DNS
Протокол DNS использует модель клиент-сервер, причем в качестве клиента может выступать, как клиент DNS, так и сервер DNS, которые работают в рекурсивном режиме. В этом случае сервер DNS пересылают запросы другим серверам DNS и выступает в качестве клиента. Взаимодействие ведется в режиме запрос-ответ, соединение не устанавливается, используется протокол UDP, номер порта 53.
Формат пакета DNS
Пакет DNS состоит из двух частей заголовок и данные. Заголовок свою очередь состоит из шести полей.
Первое поле это идентификатор запроса, любое целое число должно быть одинаково в запросе и ответе.
Поле флаги мы его рассмотрим подробнее.
И четыре поля, которые указывают сколько у нас данных в пакете. Количество DNS запросов, количество DNS ответов, количество ответов об авторитетных серверах и количество дополнительных ответов.
В поле данных у нас содержится информация о запросах DNS, где мы указываем доменное имя компьютера для которого хотим узнать ip-адрес.
Ответов DNS в которых содержится ip-адрес необходимого нам компьютера.
Поле авторитетные серверы используется ветеративном режиме работы, здесь указываются ip-адреса серверов, которые отвечают за интересующую нас DNS зону.
И в поле дополнительной информации указываются некоторые дополнительные записи, которые могут быть нам полезны.
В одном и том же DNS пакете может быть несколько запросов DNS и несколько ответов, в том числе несколько ответов на один запрос, если одному доменному имени соответствует несколько ip-адресов.
Флаги
Поле флаги состоит из нескольких полей:
Поле QR — тип операции запрос (0) или ответ (1).
Поле OPCODE (4 бита) — тип запроса, но на практике используются только 0-стандартный запрос.
Флаг AA указывает, является полученный ответ авторитетным (1) или нет (0).
Флаг TC говорит о том был пакет обрезан (1) или не был (0).
Флаг RD указывается только в запросах, если этот флаг установлен, клиент просит сервер работать в рекурсивном режиме.
Флаг RA используется только в ответах, с помощью этого флага сервер сообщает, что он может работать в рекурсивном режиме.
Флаг Z зарезервирован для будущего использования.
RCODE (4 бита) последние четыре бита это статус выполнение операции, статус 0 говорит о том что операция прошла успешно, любые другие коды говорят о том что произошла какая-то ошибка.
Формат запроса DNS
Формат DNS запроса очень простой, содержит имя, тип и класс записи.
Например, имя www.yandex.ru, тип записи 1, (запись типа A) отображение доменного имени в ip- адрес. В системе DNS также используются другие типы записей. Класс записи 1 (IN, Интернет) код единица, других классов записей в системе DNS сейчас не используется.
Формат ответа DNS
Формат DNS ответа более сложный, первые три поля точно такие же имя, тип записи и класс записи. Затем указывается время жизни, это время на которые запись может сохранить в кэше DNS resolver, затем указывается длина данных и собственно данные ответа.
Пример, ответа DNS имя www.yandex.ru, запись типа A, класс записи интернет, время жизни 90 секунд, однако администратор DNS resolver может принудительно установить другое время жизни. Длина данных измеряется в байтах, 4 байта и ip-адрес сервера www.yandex.ru.
Типы записей DNS
До сих пор мы рассматривали единственное применение системы dns это определение IP-адреса по доменному имени компьютера, но кроме этого DNS выполняет много других функций, которые необходимы для работы сети интернет. Для их реализации используются разные типы записей DNS.
Каждая запись dns по-английский (Resource Record, RR) имеет тип записи и класс записи. Тип записей говорит о том для чего эта запись предназначена, а класс указывает в каких сетях эта запись может использоваться. Сейчас DNS применяется только в сетях интернет, поэтому в классе записи вы почти всегда увидите IN, сокращение от интернета.
Записи, которые используются для определения ip адреса компьютера (IPv4) по доменному имени имеют тип A, для адресов IPv6 используется тип запись 4 раза (AAAA ).
Запрос записей разных типов
В утилите nslookup можно указать тип записи, который вы запрашиваете с помощью ключа минус type, например если вы укажете -type=A, нужно узнать Ipv4 адрес для доменного имени www.yandex.ru, то получите адреса ip версии 4.
А если указать тип записей четыре раза A, то получим адрес IPv6 для того же самого доменного имени.
DNS псевдонимы
Для одного и того же IP-адреса можно задавать несколько доменных имен. Есть два варианта, как это можно сделать.
Первый вариант использовать DNS запись типов CNAME (Canonical Name каноническое имя) эта запись определяет псевдоним для доменного имени. Например, доменное имя ftp.zvondozvon.ru является псевдонимом www.zvondozvon.ru, то есть два этих имени указывают на один и тот же IP-адрес. Канонических имен для одного и того же доменного имени можно создавать очень много. Для того чтобы такие имена работали необходимо, чтобы для доменного имени на которые они указывают существовала запись, которая определяет IP-адрес для этого доменного имени.
Альтернативный способ, создать большое количество A записей, которые указывают на один и тот же ip адрес. Но это не всегда удобно, например если вы хотите поменять IP адрес, то вам придется менять его в разных местах. С другой стороны на применение записей типа CNAME есть ряд технических ограничений со стороны системы DNS например, нельзя определять цепочки из канонических имен, которые ссылаются друг на друга, о других ограничениях можно подробно посмотреть в документах RFC, которые описывают работу DNS.
Адрес почтового сервера
Система DNS активно используются при работе электронной почты предположим, что мы хотим отправить электронное письмо на некоторый адрес в домене gmail.com, но как мы узнаем адрес почтового сервера, который принимает почту для этого домена?
Это можно сделать с помощью DNS. Для этого в DNS есть запись специального типа MX (Mail eXechange), например для домена gmail.com есть целых пять записей типа MX, которые задают пять серверов, принимающие почту в домене Google.
Запись MX содержит два поля. Первое поле это приоритет, а второе это адрес сервера принимающего почту для данного домена. Чем ниже значение, тем более высокий приоритет. Самый высокий приоритет у сервера, у которого значение приоритета пять и самый низкий приоритет у сервера со значением 40. Таким образом, при отправке электронной почты сначала будет выбираться сервер с наименьшим приоритетом, если по каким-либо причинам он будет недоступен, следующий сервер и так далее.
Адреса сетевых сервисов
Для некоторых типов сервисов интернет, можно указывать не только IP адрес, но и порт на котором этот сервис работает. Для этого используются DNS записи типа SRV (Service record). Структуры этой записи достаточно сложны, вместо доменного имени указывается строка с описанием сервисов в специальном формате (_сервис._протокол.имя.-˃ приоритет вес порт имя).
Например, если мы хотим узнать на каком компьютере и на каком порту работает jabber сервер работающий по протоколу tcp в домене example.com мы получим вот такую запись (0 5 5269 xmpp.example.com). Проще всего разбирать её с конца. Сервис работает на компьютере с доменным именем xmpp.example.com порт 5269, приоритет 0, вес 5. Так же как и с почтовыми серверами, чем меньше значение приоритета, тем более высокий приоритет у сервера.
Резервный jabber сервер для этого домена работает на компьютере backup_xmpp.xample.com порт 5269 приоритет 20, вес 0. Вес используются для распределения нагрузки между разными серверами, которые имеют один и тот же приоритет.
Делегирование ответственности
В DNS важным понятием является делегирование ответственности. Информация о компьютерах входящая в ту или иную доменную зону хранится на DNS сервере, который отвечает за работу этой зоны. Но нам необходимо знать, какие серверы отвечают за ту или иную зону.
Записи серверов имен
Для этого используются dns-записи типа NS (Name Server). Например, за доменную зону yandex.ru отвечают серверы ns1.yandex.ru и ns2.yandex.ru, а за доменную зону urfu.ru отвечает целых 3 сервера. Записи типа ns задаются на домене более высокого уровня в нашем случае на сервере, который отвечает за зону ru. Именно этот сервер содержит записи ns для домена yandex.ru и для домена urfu.ru.
Но нам недостаточно знать только доменные имена dns-серверов, необходимо знать их IP адреса. Для этого используются «приклеенные» записи А, которые указывают IP-адреса. Вся остальная информация о делегированных доменных зонах хранится на этих dns серверах.
Определение имени по IP-адресу
Кроме определения ip адреса по компьютеру, по доменному имени, система dns может использоваться для обратной задачи определения доменного имени компьютера по его IP адресу. Для этого используются специальные зоны, называются обратные (reverse) или реверсивные.
Реверсивная зона содержит записи типа PTR (Pointer), которые ставят в соответствии IP-адрес компьютера доменному имени. Однако из-за технических ограничений DNS не может работать напрямую с IP адресами, поэтому для обратных зон был придуман обходной путь, представлять IP адрес в виде доменного имени. Для этих целей создан специальный домен in-addr.arpa и в этом домене IP адреса записываются в обратном порядке, например адрес 77.88.55.66 в обратной зоне будет записан следующим образом 66.55.88.77.in-addr.arpa.
Видео про типы записей DNS
Настройка сетевого адаптера для DNS-сервера
Установка DNS-сервера предполагает наличие доменной зоны, поэтому необходимо создать частную сеть в личном кабинете и подключить к ней виртуальные машины.
После того, как машина будет присоединена к двум сетям, важно не перепутать, какое из подключений требует настройки. Первичный сетевой адаптер настроен автоматически с самого начала, через него открыт доступ к интернету, в то время как на дополнительно подключенных сетевых адаптерах доступа в интернет нет, пока не будет произведена ручная настройка:
Наведя курсор на значок сети в системном трее, можно вызвать всплывающую подсказку с краткими сведениями о сетях. Из примера выше видно, что присоединённая сеть это Network 3.
Далее предстоит проделать цепочку действий:
Нажать правой клавишей мыши Пуск, в выпадающем меню выбрать пункт Сетевые подключения;
Правой кнопкой мыши нажать на необходимый сетевой адаптер, в меню выбрать Свойства;
В окне свойств выбрать IPv4 и нажать на кнопку Свойства;
Заполнить соответствующие поля необходимыми данными:
Здесь в качестве предпочитаемого DNS-сервера машина назначена сама себе, альтернативным назначен dns.google [8.8.8.8].
Установка роли DNS-сервера
Для установки дополнительных ролей на сервер используется Мастер Добавления Ролей и Компонентов, который можно найти в Диспетчере Сервера.
На верхней навигационной панели Диспетчера сервера справа откройте меню Управление, выберите опцию Добавить Роли и Компоненты:
Откроется окно Мастера, в котором рекомендуют убедиться что:
1. Учётная запись администратора защищена надёжным паролем.
2. Настроены сетевые параметры, такие как статические IP-адреса.
3. Установлены новейшие обновления безопасности из центра обновления Windows.
Убедившись, что все условия выполнены, нажимайте Далее;
Выберите Установку ролей и компонентов и нажмите Далее:
Выберите необходимый сервер из пула серверов и нажмите Далее:
Отметьте чек-боксом роль DNS-сервер и перейдите Далее:
Проверьте список компонентов для установки, подтвердите нажатием кнопки Добавить компоненты:
Оставьте список компонентов без изменений, нажмите Далее:
Прочитайте информацию и нажмите Далее:
В последний раз проверьте конфигурацию установки и подтвердите решение нажатием кнопки Установить:
Финальное окно Мастера сообщит, что установка прошла успешно, Мастер установки можно закрыть:
Создание зон прямого и обратного просмотра
Доменная зона — совокупность доменных имён в пределах конкретного домена.
Зоны прямого просмотра предназначены для сопоставления доменного имени с IP-адресом.
Зоны обратного просмотра работают в противоположную сторону и сопоставляют IP-адрес с доменным именем.
Создание зон и управление ими осуществляется при помощи Диспетчера DNS.
Перейти к нему можно в правой части верхней навигационной панели, выбрав меню Средства и в выпадающем списке пункт DNS:
Создание зоны прямого просмотра
Выделите каталог Зоны Прямого Просмотра, запустите Мастер Создания Новой Зоны с помощью кнопки Новая зона на панели инструментов сверху:
Откроется окно Мастера с приветствием, нажмите Далее:
Из предложенных вариантов выберите Основная зона и перейдите Далее:
Укажите имя зоны и нажмите Далее:
При необходимости поменяйте название будущего файла зоны и перейдите Далее:
Выберите, разрешить динамические обновления или нет. Разрешать не рекомендуется в силу значимой уязвимости. Перейдите Далее:
Проверьте правильность выбранной конфигурации и завершите настройку, нажав кнопку Готово:
Создание зоны обратного просмотра
Выделите в Диспетчере DNS каталог Зоны Обратного Просмотра и нажатием кнопки Новая зона на панели инструментов сверху запустите Мастер Создания Новой Зоны:
Выберите тип Основная Зона, перейдите Далее:
Выберите назначение для адресов IPv4, нажмите Далее:
Укажите идентификатор сети (первые три октета сетевого адреса) и следуйте Далее:
При необходимости поменяйте название будущего файла зоны и перейдите Далее:
Выберите, разрешить динамические обновления или нет. Разрешать не рекомендуется в силу значимой уязвимости. Перейдите Далее:
Проверьте правильность выбранной конфигурации и завершите настройку, нажав кнопку Готово:
Создание A-записи
Данный раздел инструкции в большей степени предназначен для проверки ранее проделанных шагов.
Ресурсная запись — единица хранения и передачи информации в DNS, заключает в себе сведения о соответствии какого-либо имени с определёнными служебными данными.
Запись A — запись, позволяющая по доменному имени узнать IP-адрес.
Запись PTR — запись, обратная A записи.
В Диспетчере DNS выберите каталог созданной ранее зоны внутри каталога Зон Прямого Просмотра. В правой части Диспетчера, где отображается содержимое каталогов, правой кнопки мыши вызовите выпадающее меню и запустите команду «Создать узел (A или AAAA)…»:
Откроется окно создания Нового Узла, где понадобится вписать в соответствующие поля имя узла (без доменной части, в качестве доменной части используется название настраиваемой зоны) и IP-адрес. Здесь же имеется чек-бокс Создать соответствующую PTR-запись — чтобы проверить работу обеих зон (прямой и обратной), чек-бокс должен быть активирован:
Если поле имени остается пустым, указанный адрес будет связан с именем доменной зоны.
Также можно добавить записи для других серверов:
Добавив все необходимые узлы, нажмите Готово.
Проверка
Проверьте изменения в каталогах обеих зон (на примере ниже в обеих зонах появилось по 2 новых записи):
Откройте командную строку (cmd) или PowerShell и запустите команду nslookup:
Из вывода команды видно, что по умолчанию используется DNS-сервер example-2012.com с адресом 10.0.1.6.
Чтобы окончательно убедиться, что прямая и обратная зоны работают как положено, можно отправить два запроса:
Запрос по домену;
Запрос по IP-адресу:
В примере получены подходящие ответы по обоим запросам.
Можно попробовать отправить запрос на какой-нибудь внешний ресурс:
В дополнение к имени домена и адресам появилась строчка «Non-authoritative answer», это значит, что наш DNS-сервер не обладает необходимой полнотой информации по запрашиваемой зоне, а информация выведенная ниже, хоть и получена от авторитетного сервера, но сама в таком случае не является авторитетной.
Для сравнения все те же запросы выполнены на сервере, где не были настроены прямая и обратная зоны:
Здесь машина сама себе назначена предпочитаемым DNS-сервером. Доменное имя DNS-сервера отображается как неопознанное, поскольку нигде нет ресурсных записей для IP-адреса (10.0.1.7). По этой же причине запрос 2 возвращает ошибку (Non-existent domain).
Как настроить/изменить DNS
Почему DNS-сервер недоступен: как решить проблему
При изменении или дополнительной настройке не потребуется совершать много действий. Необходимо использовать окно, открытое ранее, зайти в пункт «Дополнительно». Здесь производится детальная наладка обращения к DNS-серверам. В Windows 7 это все возможно настроить самостоятельно. Поэтому вопрос, как самим изменить dns-сервер, не вызовет проблем.
Еще для управления доступны DNS-суффиксы. Рядовому пользователю они не требуются. Эта настройка, помогающая удобно разделять ресурсы, создана для провайдеров.
На wi-fi роутере
При использовании роутера в опциях ДНС необходимо выставить его IP-адрес. Чтобы выполнить эти манипуляции, потребуются включенные DNS-relay и DHCP-server.
Интерфейс роутера предназначен для проверки и последующих детальных настроек. Сначала необходимо проверить ДНС в WAN-порте. DNS-relay активируется в параметрах LAN-порта.
На компьютере
Настройка ДНС-сервера в Windows 10 схожа с аналогичной ситуацией в ранних версиях ОС. Сначала нужно выбрать свойства «Протокола интернета версии 4 (TCP/IPv4)». Перейти в дополнительные опции и настроить список серверов.
Настройка сервера ДНС на компьютере и на ноутбуке одинаковая.
На планшете
В зависимости от установленной «операционки» действия несколько различаются, но их все объединяют следующие моменты:
Открыть меню «Wi-Fi», находящееся в «Настройках».
Зайти в свойства текущего подключения к интернету.
Кликнуть «Изменить сеть», после – «Показать дополнительные параметры».
Пролистать до пункта ДНС-серверов, потом их прописать.
На смартфоне
Так как сейчас особой разницы между операционными системами телефона и планшета нет, чтобы настроить нужные dns-серверы, достаточно знать инструкции, описанные выше.
Как узнать прописанный адрес DNS-сервера и как его изменить
Сейчас мировой тренд провайдеров заключается в автоматическом определении DNS-сервера, то есть, его не нужно изначально. Но все же узнать его довольно просто, всего в несколько кликов мышкой.
Windows
Узнать свой DNS-сервер и заменить его можно в соответствующей графе «Панели управления».
Нажимаем комбинацию клавиш Win+R, в поле «Выполнить» прописываем control и запускаем команду в действие кнопкой OK или Enter на клавиатуре.
Запускаем «Панель управления» через исполняющую программу
Меняем вид с «Категории» на «Значки» и щёлкаем по пункту «Центр управления сетями и общим доступом».
Выбираем элемент «Центр управления сетями и общим доступом»
Откроется окно с активными (действующими, подключёнными) сетями. Нажимаем на ссылку напротив той, которая имеет доступ к интернету.
Просматриваем список активных сетей в «Центре управления сетями и общим доступом»
Откроется окно состояния сети. Кликаем кнопку «Сведения…».
В окне «Состояние» нажимаем кнопку «Сведения»
Появится ещё одно окно со всеми данными подключённой сети. В графе «DNS-серверы IPv4» знакомимся с действующими адресами сервисов, которые использует подключение в данный момент.
Просматриваем подключенные DNS-серверы
Заменить DNS-сервер также просто. Для начала возвращаемся в окно «Состояние».
Нажимаем кнопку «Свойства», что в графе «Активность».
Нажимаем кнопку «Свойства», что в графе «Активность»
В окне компонентов выделяем пункт «IP версии 4», после чего нажимаем кнопку «Свойства».
Открываем протокол «IP версии 4»
Откроется последнее окно настроек. Ставим галочку у пункта «Использовать следующие адреса DNS-серверов», прописываем IP-адреса сервисов, которые вы хотите использовать. Затем сохраняем все изменения во всех окнах кнопкой OK.
Чтобы прописать адрес DNS-сервера, ставим галочку на «Использовать следующие адреса DNS-серверов»
В итоге мы имеем доступ к заданному сервису преобразования доменных имён.
Ubuntuк
Чтобы изменить настройки DNS в операционных системах Ubuntu можно пользоваться разными способами. Самый простой — при помощи интерфейса.
В правом верхнем углу выпадающее меню сети. Нажимаем на соответствующий значок, выбираем пункт «Изменить соединение…».
Открываем выпадающее меню сети и нажимаем «Изменить соединение…»
Выбираем активное соединение с интернетом и нажимаем «Изменить».
Выбираем подключение к интернету и нажимаем кнопку «Изменить»
Переходим во вкладку «Параметры IPv4».
Переходим во вкладку «Параметры IPv4»
Меняем фильтр «Способ настройки» на «Автоматически (DHCP, только адрес)».
Меняем фильтр «Способ настройки» на «Автоматически (DHCP, только адрес)»
В графе «Серверы DNS» прописываем нужные адреса через запятую. Затем нажимаем кнопку «Сохранить» и закрываем окно.
В поле «Серверы DNS» прописываем соответствующие адреса
Чтобы узнать нынешний DNS-сервер в ОС Ubuntu, необходимо в терминале ввести команду $ cat /etc/resolv.conf. Это выдаст всю информацию по сети: графа nameserver и содержит доменный адрес.
На роутере
Сразу стоит отметить, что не все модели роутеров дают возможность изменять в своих настройках адрес DNS-серверов. Некоторые устройства позволяют заменить на известные сервисы, к примеру «Яндекс-DNS» или DNS Google.
Для начала необходимо перейти на страницу управления роутером. Для этого в адресной строке любого браузера вводим 192.168.1.1 и нажимаем клавишу Enter.
В зависимости от марки роутера дальнейшие инструкции имеют варианты. В некоторых случаях дополнительные настройки и сведения могут находиться уже на основной странице. Но чаще всего необходимо нажать некую кнопку для перехода в сопутствующее меню. Кнопка может называться Advansed, Setup, «Настройки» и так далее. Нажимаем на эту кнопку, чтобы перейти в дополнительное меню.
На главной странице управления роутером переходим в дополнительные настройки
Зачастую в первой графе сведений уже виден DNS-адрес.
Среди сведений знакомимся с адресом DNS-сервера
Для смены сервиса есть несколько вариантов:
среди пунктов меню может быть «Динамический DNS». Включение этой функции запустит автоматическую смену сервера, если работающий в данный момент по какой-либо причине перестанет отвечать на запросы пользователя. Переставляем галочку в активное состояние или пункт «Включить» и сохраняем изменения;
В некоторых роутерах есть возможность настройки динамического доменного сервиса
В некоторых роутерах уже вписан качественный DNS-сервер от корпораций гигантов, таких как Яндекс или Google. Эти сервисы работают практически без сбоев.
В некоторых роутерах уже вписан качественный DNS-сервер от Яндекс и/или Google
Основные причины возникновения ошибки
Причиной закрытого доступа в Интернет может быть оборудование пользователя или неисправности на другом конце «провода». Рекомендуется провести первичную диагностику, чтобы определить план дальнейших действий. Здесь возможны несколько вариантов:
Доступа нет только к конкретному сайту. Проблема на стороне этого интернет-ресурса. Рекомендуем подождать, пока сервер не восстановит свою работу.
Не работают все сайты на персональном компьютере и мобильных устройствах, подключённых через Wi-Fi. Попробуйте подключить Интернет к ПК напрямую, минуя маршрутизатор. Если доступа не появилось, проблемы могут быть у провайдера. Звоните в техподдержку.
Сайт не работает только на компьютере, а с мобильного и планшета все ресурсы открываются. Здесь уже придется диагностировать ПК с помощью советов, о которых будет рассказано далее.
Способы устранения
Представленные рекомендации актуальны для последних операционных систем Windows 7, 8 и 10.
Общие советы
Прежде чем лезть в настройки операционной системы или роутера, рекомендуем попробовать стандартный «минимум». Используйте другой браузер. Рекомендуем иметь на компьютере стандартный набор из Google Chrome, Opera и Firefox. Это позволит исключить некорректные настройки самого браузера. Попробуйте очистить кэш в настройках. Подробную инструкцию вы можете получить в справке к каждому браузеру.
Следующими шагами идет перезагрузка роутера (при его наличии) и компьютера. Мелкие сбои могут возникать в ходе работы ОС. При перезагрузке многие параметры сбрасываются, устраняя различные сбои. Проверьте свой фаервол или антивирус. Эти программы способны автоматически блокировать доступ к ресурсам, которые они считают потенциально опасными. Если вы уверены, что сайт безопасен (например, вы пытаетесь войти в свой профиль социальной сети), то отключите на время антивирус, а затем попробуйте зайти повторно.
Проблемы на стороне провайдера
Это самый простой вариант, ведь со стороны пользователя никаких действий делать не нужно. Повлиять на ситуацию можно только регулярными звонками в техподдержку. Многие провайдеры предлагают фирменное ПО для диагностики сети, где показывается наличие сигнала и исходящий/входящий трафик. Если у вас имеется такой софт, проверьте через него работоспособность всей сети. При отсутствии трафика, естественно, звоните операторам.
Смена DNS-адресов
Следует сделать небольшой экскурс в тему DNS-сервера для понимания методики исправления ошибки. Когда человек пытается получить доступ к сайту, он вводит его название в поисковой строке или просто нажимает на ссылку из Google или «Яндекс». При этом в сети каждый сайт имеет цифровое обозначение (применяется IP-адресация). Для сопоставления названия сайта с его уникальным IP-адресом используются DNS-сервера. В них хранятся многострочные таблицы, где каждому адресу соответствует IP.
Когда вы пытаетесь зайти на сайт, происходит запрос к такому серверу на выявление соответствия. Если система по каким-либо причинам не получила ответа, появляется уже знакомая вам ошибка. К какому DNS-серверу обратиться, система выбирает самостоятельно, но не всегда корректно. Попробуйте выполнить ручную настройку, четко прописав нужный IP.
В свойствах подключения
Сменить адрес DNS можно через интерфейс Windows. Для этого проделайте ряд действий:
Зайдите в «Центр управления сетями» через иконку Интернета в трее (правый нижний гол).
Кликните по активному адаптеру правой кнопкой мыши, а затем нажмите по строке «Свойства».
Из списка выделите строку IPv4. Нажмите на кнопку «Свойства». Установите активным пункт для ввода адресов вручную и запишите цифры, как это показано на изображении.
Не забудьте подтвердить свои действия, нажав ОК. Это стандартные DNS компании Google. Рекомендуется после выполнения действий перезагрузить компьютер. Если положительного эффекта установка не дала, попробуйте установить DNS в маршрутизаторе.
В настройках роутера
Аналогично интерфейсу «Виндовс» в модеме имеется раздел для ручной установки адресов DNS. Мы приведем инструкцию на примере роутера компании TP-Link:
Зайдите в веб-интерфейс устройства (нужно узнать IP-адрес роутера, логин и пароль для входа на этикетке, прикрепленной к корпусу).
Найдите раздел «Сеть», подраздел WAN. Установите галочку у строки «Использовать следующие настройки DNS». Пропишите адреса, описанные в предыдущем подпункте.
Нажмите кнопку «Сохранить» и перезапустите маршрутизатор.
В этом случае выполнять настройки в ОС не нужно.
Перезапуск службы «DNS-клиент»
В «Виндовс» за работу ДНС отвечает специальная служба. При появлении ошибки поиска сервера рекомендуется перезапустить ее. Делается это в соответствующем разделе по инструкции:
Нажмите ПКМ по иконке вашего Компьютера. Кликните по строке «Управление».
Откройте раздел «Службы».
Найдите в списке DNS-клиент.
Выделите строку и нажмите «Перезапустить».
Убедитесь, что активация службы установлена «автоматически».
Очистка кэша DNS
Многие службы в ходе функционирования создают различные временные файлы – кэш. Как и в браузере, у ДНС его можно почистить. Это выполняется через командную строку. Запустите ее через «выполнить». Вам необходимо ввести cmd, а затем нажать Enter. После этого для очистки кэша DNS введите команду, показанную на изображении.
Если процедура будет выполнена успешно, вы увидите соответствующее сообщение в окне.
Сброс параметров TCP/IP
В редких случаях происходят сбои стека TCP/IP, которые влияют на доступ к Интернету. Через консоль пользователи Windows могут выполнить сброс параметров. Включив командную строку от имени администратора, выполните последовательно две команды:
Если они прошли без сбоя, выполните перезагрузку компьютера, а затем попробуйте заново получить доступ к необходимому сайту.
Отключение антивируса и фаервола
Ранее был предложен вариант с отключением антивируса или фаервола. Рекомендуем попробовать его, но при отключении защиты не посещайте посторонних и сомнительных ресурсов. Встроенная защита Windows не убережет компьютер от заражения. Для деактивации антивируса достаточно зайти в его настройки, а затем отключить все уровни защиты. На изображении пример переключателей для Eset Smart Security.
Отключение стандартного Firewall выполняется через настройки Windows:
перейдите через пуск в «Панель управления»;
найдите раздел брандмауэр Windows;
нажмите на строку «Включение и отключение…»;
деактивируйте пункты, как это показано на картинке.
При наличии антивируса firewall можно отключить навсегда.
Удаление вирусов
Вредоносное программное обеспечение может заблокировать доступ к Интернету и даже вымогать средства. Рекомендуется проверить всю систему на наличие вирусов. Справиться с этой задачей способна бесплатная утилита Dr. Web Cure It. Скачать ее можно на официальном сайте разработчиков антивируса «Доктор Веб». Софт обладает несколькими преимуществами:
портативность (не требует инсталляции, можно использовать прямо с флешки);
проводит анализ, сравнивая подозрительные файлы с многомиллионной базой вирусов;
есть выбор области проверки (оперативная память, временные или системные файлы, конкретный логический диск или весь компьютер).
Будьте готовы, что сканирование большого объема данных может занять сутки или больше. Предварительно закройте все приложения и окна, чтобы не создавать дополнительную нагрузку на систему.
Проверка файла hosts
Некоторые вирусы блокируют доступ или подменяют адреса на ложные через системный файл hosts. Рекомендуем проверить его на наличие посторонних записей. Для этого перейдите по пути, указанном на скриншоте, и откройте файл через текстовый редактор (используйте стандартный «блокнот» или другой).
Стандартный файл без стороннего вмешательства выглядит следующим образом:
Если вы заметили другие строки, то удалите их, а затем сохраните файл.
Удаление недавних обновлений
Последние версии ОС Windows регулярно получают различные обновления, которые улучшают стабильность и безопасность системы. Некоторые из них работают некорректно на определенном «железе». Это приводит к широкому спектру проблем. Если вы точно знаете, какое обновление вызывает неполадки, то можно его удалить следующим образом:
Перейдите в центр управления Windows. Нажмите на гиперссылку журнала обновлений.
В открывшемся окне нажмите строку «Удалить обновления».
Выделите нужное обновление и кликните по «Удалить».
Будьте крайне осторожны, так как без некоторых обновлений у вас не будут работать программы. Также настоятельно не рекомендуется стирать обновления безопасности.
Восстановление системы
Крайние меры, когда ничего не помогает, – выполнить восстановление системы. Эта процедура откатывает состояние ОС до определенного числа (в зависимости от того, когда создавались «точки восстановления»). Все настройки и параметры будут возвращены к той дате, которая будет указана в точке восстановления. Чтобы запустить процесс, вам необходимо сделать следующее:
Перейдите к мастеру восстановления.
Жмите далее до выбора точки. После этого кликните по нужной.
Подтвердите запуск и дождитесь окончания, нажав «Далее» и «Готово».
Пользовательские данные при этом затронуты не будут, однако рекомендуется перед стартом сделать резервную копию важных документов.
Рекомендуется также регулярно раз в месяц или раз в неделю создавать контрольные точки. Это необходимо, чтобы вы имели разброс по времени. Создавать точки можно как автоматически через заданный период, так и вручную. Также пользователь может выбрать логические диски для восстановления. По умолчанию это системный диск (C), но допускается добавить в список и любые другие носители. Дополнительно настройте объем пространства, доступного для утилиты восстановления. В «Виндовс» 10 рекомендуется устанавливать бегунок на уровне не меньше 20 гигабайт.
Если проблема DNS-сервера не связана с провайдером, рекомендуем последовательно опробовать каждый из методов. Все инструкции выполнить в домашних условиях смогут даже неопытные пользователи. Если доступ к Интернет не появился, рекомендуем вызвать специалиста.
Видео: как исправить ошибки, связанные с DNS-сервером
Изменить DNS-сервер просто. В случае необходимости вы сможете без труда восстановить скорость работы любимых сайтов. Пользуйтесь инструкциями выше, и у вас не возникнет никаких проблем с сёрфингом в сети.
Google Public DNS
Пожалуй, самый популярный сервер, работающий уже почти 8 лет. Его адреса известны всем – 8.8.8.8 и 8.8.4.4. Вместе с Google Public DNS ваша безопасность в Сети будет высокой, а скорость серфинга – оптимальной, так как ближайший к вам сервер будет определен с помощью технологии Anycast. Кроме того, этот сервис от Google обладает повышенной устойчивостью к хакерским атакам.
OpenDNS
Служба DNS-серверов, работающая с 2006 года. Имеет платный (корпоративный) и бесплатный (домашний) режимы работы. Домашняя версия также обеспечит родительский контроль и защитит от фишинга. Адреса серверов следующие:
67.222.222;
67.220.220;
67.222.220;
67.220.222.
DNS.WATCH
Очень быстрый и минималистичный сервис DNS, с основным акцентом на скорость работы и на просмотр заблокированных цензурой сайтов. Адреса серверов — 82.200.69.80 и 84.200.70.40.
Level3 DNS
Надежная и производительная DNS-служба. Конечно же, он намного меньше Google, тем не менее, с развитой инфраструктурой серверов скорость вашего серфинга будет максимальной. Level3 доступен по адресам 209.244.0.3 и 209.244.0.4.
Comodo Secure DNS
Эта служба предлагается известным разработчиком программ для защиты компьютера. Система выберет наиболее близкий к вам сервер так, чтобы обеспечить максимально быстрый и безопасный серфинг. Адреса Comodo Secure DNS – 8.26.56.26 и 8.20.247.20.
OpenNIC DNS
Если ваш провайдер ограничивает доступ к сайтам, отличным решением станет установка OpenNIC DNS. Сервис имеет очень большую инфраструктуру, и поэтому перед его использованием вам сначала нужно будет зайти на проекта. Там система подберет наилучшие сервера в зависимости от вашего текущего местоположения.
Yandex DNS
Своя служба DNS есть и у Яндекса. География размещения серверов достаточно широкая, что обеспечивает высокую скорость работы. Имеется три варианта:
Базовый (77.88.8.8 и 77.88.8.1)
Безопасный (88.8.88 и 77.88.8.1) обеспечит дополнительную защиту от вредоносных сайтов;
Семейный (77.88.8.7 и 77.88.8.3)предоставит дополнительную защиту от «взрослых» сайтов.
Norton ConnectSafe
Адреса: 199.85.126.10; 199.85.127.10
Тоже не «просит» предварительную регистрацию, надежно хранит данные пользователя. Создан разработчиками антивируса Norton, не требуя себе дополнительной рекламы.
Вместо послесловия
Каждый из рассмотренных нами DNS-серверов имеет свои плюсы и минусы, и наверняка какой-нибудь вам понравится, и вы будете его использовать. И, напоследок, самое главное – изменив настройки DNS в Windows, обязательно очистите DNS-кэш, иначе вы можете не ощутить сделанных изменений.
Какую бы методологию процессов разработки вы не использовали (водопадную, гибкую или их производные), GitLab эффективно поддержит любую модель коллективной работы. Делайте наглядным, используйте приоритеты, координируйте и отслеживайте ваш прогресс с помощью гибких инструментов управления проектами GitLab.
Разработка: Эффективно и безопасно пишите код в команде.
Консолидируйте исходный код в одной распределеной среде контроля версий, которой просто и эффективно управлять и поддерживать, не нарушая процессы разработки. Git репозиторий GitLab поставляется с полным набором инструментов для управления ветками и доступом к проектам, предоставляя единую надежную достоверную среду совместного доступа к коду и проектам.
Тестирование: Поставляйте софт качественнее и быстрее.
Находите ошибки раньше и сокращайте цикл исправлений с помощью инструментов ревью кода, тестирования кода, оценки качества кода и ревью приложений. Настраивайте свою собственную модель приемки качества, автоматически тестируйте код и устанавливайте изменения в среды тестирования с каждой модификацией кода. Компонента непрерывной интеграции GitLab – это самая популярная система тестирования нового поколения с автоматическим масштабированием для поддержки высокой проивзодительности тестирования.
Сборка: Управляйте различными образами контейнеров с легкостью.
Репозиторий контейнеров GitLab CI позволяет организовать безопасное хранилище кастомных образов контейнеров Docker без необходимости использования каких-либо дополнительных инструментов. Функции загрузки и скачивания образов GitLab CI интегрированы среду управления репозиторием Git.
Релиз: Минимизируйте сложность установки релиза со встроенными возможностями непрерывной доставки.
Не тратьте драгоценное время на конфигурацию и подготовку релиза поставки. Не важно, устанавливаете ли вы свой релиз на один сервер или на тысячу, встроенные компоненты GitLab поддержки технологий непрерывной доставки и развертывания помогут вам автоматизировать действия по сборке, автотестированию и установке релизов.
Конфигурация: Автоматизируйте управление конфигурацией
Автоматизируйте полный цикл разработки приложения от сборки до установки и мониторинга. Готовые шаблоны моделей с лучшими практиками AutoDevOps помогут вам сразу же начать работу без длительной конфигурации GitLab. Затем добавьте специфику вашего приложения в настройки каждого шага по сборке и развертыванию.
Мониторинг: Анализируйте свои мощности по разработке и мониторьте производительность приложений.
Измеряйте сколько времени у вас уходит на каждый этап разработки. Проверяйте, что ваше приложение всегда доступно и штатно функционирует. GitLab собирает и показывает множество метрик по вашим приложениям с использованием известного сервиса Prometheus, что позволяет реально увидеть как изменения в коде отразились на производительности промышленной среды.
1. Создание аккаунта
Для начала, зарегистрируемся на сайте GitLab. Для этого нужно перейти на вкладку Register, которая находится в правой части экрана. Появится форма, где нужно будет ввести имя, логин, электронную почту.
Далее вы получите на почту сообщение, где будет находиться ссылка для подтверждения аккаунта. После перехода по ней появится форма авторизации.
Путём ввода пароля и логина вы окажетесь на главной странице вашего профиля на GitLab. Сначала это будет страница приветствия, но позже здесь появится перечень ваших Git-репозиториев.
2. Создание репозитория
Чтобы добавить проект GitLab кликните по значку + по центру верхней панели и выберите New Project:
Здесь вам нужно ввести имя репозитория, его описание, а также выбрать уровень доступа:
Private – доступен только вам;
Internal – доступен всем зарегистрированным пользователям;
Public – доступен абсолютно всем.
Ещё вы можете установить галочку напротив Инициализировать репозиторий файлом README, но если вы хотите залить сюда файлы из уже существующего репозитория, делать этого не следует:
После нажатия на кнопку Create repo вы попадаете на страницу репозитория. Здесь GitLab уже предлагает первоначальный набор действий, чтобы проиниализировать ваш репозиторий. Например, вы можете создать здесь файлы или загрузить сюда файлы из вашего компьютера.
4. Загрузка файлов проекта
Давайте создадим новый локальный репозиторий на компьютере и загрузим его содержимое на GitLab. Для этого создайте папку репозитория, например, test-repo и инициализируйте в ней новый репозиторий командой git:
mkdir test-repo && cd test-repo
git init
Затем давайте создадим файл test.txt:
vi test.txt
This is test losst repo
И зафиксируем изменения:
git add test.txt git commit -m “Inital commit”
Дальше нам нужно добавить наш удаленный репозиторий с GitLab к нашему локальному. Для этого выполните:
Затем отправляем изменения в удаленный репозиторий:
git push origin master
Для отправки данных нужно ввести ваш логин и пароль на GitLab. Теперь, если вы обновите страницу репозитория на GitLab, то увидите там наш файл:
Важно отметить, что если удаленный репозиторий не пуст, то у вас не получиться так сделать. Вам нужно будет сначала скачать удаленный репозиторий, слить локальные изменения с ним, а потом уже отправить всё назад.
5. SSH ключи
Во время загрузки данных репозитория на GitLab нам нужно было ввести логин и пароль на сервере. Чтобы этого избежать можно использовать SSH ключи для авторизации. Сначала вам нужно создать такой ключ. Для этого откройте терминал и выполните:
ssh-keygen
Введите путь к файлу, куда нужно сохранить ключ, а пароль оставьте пустым. Будут созданы два файла – открытый ключ с расширением .pub и закрытый. Вам нужен открытый. Откройте его в текстовом редакторе и скопируйте его содержимое в буфер обмена:
vi /home/sergiy/.ssh/id-gitlab
Далее возвращайтесь к интерфейсу GitLab кликните по иконке профиля и выберите Settings:
Здесь на левой панели найдите пункт SSH Keys. В этом окне найдите поле Key и вставьте туда скопированный ключ. Далее сохраните изменения. Теперь ваш ключ добавлен:
Далее вернитесь в ваш репозиторий, найдите в правом верхнем углу кнопку Clone и кликните по ней. Нас интересует адрес Clone with SSH:
Возвращаемся к нашему локальному репозиторию, удаляем адрес https и добавляем ssh:
Настройка ssh GitLab завершена. Теперь все действия будут выполняться по SSH и у вас не будет необходимости вводить логин и пароль.
6. Ветки репозитория
Разберем использование gitlab для работы с ветками. По умолчанию у репозитория есть только одна ветка – это master. Но для реализации дополнительных функций разработку можно выносить в отдельные ветки. В интерфейсе GitLab ветки отображаются слева. Здесь можно выбрать нужную ветку:
Создать новую ветку можно кликнув по значку плюс и выбрав New branch. Но это не обязательно, так как если вы создадите ветку в git и зальете изменения в репозиторий, то ветка появится там автоматически.
Чтобы изменить ветку по умолчанию откройте Settings -> Repository, а потом просто выберите нужную ветку в разделе Default branch:
6. Слияние веток
Поскольку у нас есть ветки и в них разрабатывается функциональность может возникнуть необходимость перенести её из одной ветки в другую. Для этого используются запросы слияния (Merge request gitlab). Давайте добавим ветку new-feature, а в ней создадим файл new-feature с текстом:
Теперь, когда мы перейдем в новую ветку через интерфейс GitLab появится кнопка Create merge request. Нажмите на неё:
Здесь нужно написать описание Merge Request, который вы создаете, выбрать ветку источник и ветку цель. Также можно выбрать пользователя, которому будет оправлено уведомление о созданном запросе:
Далее запрос на слияние нужно одобрить. Вы можете посмотреть изменения нажав кнопку Open IDE или через терминал:
Далее просто нажмите кнопку Merge, если хотите слить ветки. Файлы ветки источника заменят файлы в ветке преемника, поэтому будьте осторожны, чтобы не потерять важные данные.
8. Добавление пользователей
Несмотря на то, что репозитории приватные, возможна работа с gitlab командой. Вы можете добавить к ним неограниченное количество разработчиков. Для этого откройте пункт Settings -> Members. Здесь в поле Select members to invite введите никнеймы или адреса электронной почты пользователей, которых надо пригласить, а в поле Choose a role permission выберите их уровень доступа:
Затем нажмите кнопку Add to project.
9. Удаление проекта
Чтобы удалить проект с Gitlab надо открыть Settings -> General -> Advanced и выбрать Remove Project в самом низу страницы:
После нажатия на кнопку вам нужно будет ввести имя проекта, после чего он будет удален:
GitLab CI
GitLab.com — это сервис, основанный на SAAS — одной из форм облачных вычислений, где вы без труда сможете разместить свои Git-репозиторий, отслеживать возможные проблемы и писать wiki с помощью языка разметки markdown. GitLab CI также позволяет вам настраивать непрерывную интеграцию с использованием любого из образов Docker, доступного на Docker Hub. Давайте рассмотрим это на примере!
GitLab CI YML
GitLab CI использует YAML файл .gitlab-ci.yml для определения конфигураций проекта, включающих в себя определение всех этапов, которые будут выполняться после того, как конвейер CI/CD запускается в ответ на git push/merge. В этом примере нам нужно провести unit-тест над простым Node.js проектом, чтобы убедиться, что в коде нет ошибок. Чтобы вым стало понятнее, попробуйте сами запустить данный репозиторий.
В вышеприведенном конфигурационном файле YAML мы все разбили на 3 этапа. Каждый из этапов это просто gulp.task, заданный в gulpfile.js . Так как у нас установлен Node.js, пользователь может по отдельности запускать любой из этапов. Но в GitLab CI требуется указать, какой из образов Docker вам нужен. В нашем случае, это узел:6.11.2. Кроме того, данный Docker-атрибут можно задать внутри определенного этапа, поэтому вы сможете использовать различные инструменты для любого из этапов.
Определение этапа
Глубже взглянем на этот этап.
Атрибуты before_script и script могут иметь несколько значений (array в .yml).Если выполнение скрипта завершится неудачей, весь этап будет классифицирован как неправильный.
Запуск Pipeline (процесс разработки)
В настройках, обратите внимание на вкладку Pipeline в меню CI/CD. Там вы сможете увидеть всю историю процесса разработки.
Детальнее разберем этот этап
Нажав на определенный Pipeline, вы можете прочитать подробный консольный вывод любого из этапов. Это полезно, когда появляются сбои в работе.
Преимущества использования GitLab CI совместно с Docker
Для различных проектов могут потребоваться различные платформы, такие как Node.js, Ant, Maven. Раньше, используя инструмент Jenkins, я должен был убедиться, что все платформы установлены на сервере. Используя Docker, вы можете ссылаться на зависимости, доступные на Docker Hub без запроса администратора сервера, для установки этих зависимостей на самом сервере. На самом деле, в Jenkins есть плагин для создания Pipeline и он также может работать с Docker. Но как я и утверждал ранее, вам постоянно придется следить за его обновлениями, что не так уж и хорошо с точки зрения затрат дополнительных усилий и времени.
Хоть я и предпочитаю использовать GitLab CI, это не значит, что он может полностью заменить инструмент Jenkins. Ведь в Jenkins есть одно огромное преимущество — это удобный и легконастраиваемый пользовательский интерфейс, который будет удобен не только для разработчиков, но и для QA (специалист по обеспечению качества), для выполнения определенных задач, таких как развертывание и проведение интеграционных тестов.
Выбирая подходящий инструмент, знайте, что он не должен быть идеальным
Ключ к успеху лежит не в выборе идеального инструмента. Главным элементом успеха являются люди, которые его используют. Поэтому перед тем как искать для себя новый инструмент или программу, попытайтесь сначала определить проблему, которую вы бы хотели решить в первую очередь.