Blender – профессиональное cвободное и открытое программное обеспечение для создания трёхмерной компьютерной графики, включающее в себя средства моделирования, скульптинга, анимации, симуляции, рендеринга, постобработки и монтажа видео со звуком, компоновки с помощью «узлов» (Node Compositing), а также создания 2D-анимаций. В настоящее время пользуется большой популярностью среди бесплатных 3D-редакторов в связи с его быстрым стабильным развитием и технической поддержкой. Характерной особенностью пакета Blender является его небольшой размер по сравнению с другими популярными пакетами для 3D-моделирования
Краткий перечень возможностей Blender
3D моделирование — пользователи могут создавать трехмерные элементы с обычных моделей. Большой набор инструментов позволяет создавать реалистичные персонажи для компьютерных игр и иных целей. Читайте так же: “Где учиться на 3D – художника.”
Анимации — с помощью программы можно анимировать как простые, так и сложные движения. Также можно реализовать динамические объекты, их взаимодействие друг с другом.
Эффекты — пользователи имеют возможность использовать разнообразные эффекты, которые максимально приближены к реальным, к примеру, как льется вода, развевается флаг на ветру.
Опция рисования — в данной программе можно даже делать наброски с помощью разных видов кистей. Дальше рисунки можно использовать для создания анимации.
Горячие клавиши Blender
Правая кнопка мыши — выделить;
Shift + A — добавить объект;
Х — удалить;
Пробел — выполнить поиск по функциям;
Ctrl + S — сохранить файл;
F12 — сделать рендеринг;
Esc — остановить рендеринг;
F3 — сохранить рендеринг;
Ctrl +Z — отменить;
Ctrl + Shift + Z — вернуть действие;
Shift + D — дублировать;
M — переместить на слой;
Ctrl + M — отзеркалить;
Alt + A — проиграть анимацию.
Достоинства
Большой набор инструментов для создания моделей в 3Д;
Возможность настроить программу под себя, чтобы все нужное было в быстром доступе;
Создание сложной анимации;
Бесплатное использование.
Недостатки
Непривычный интерфейс, для адаптации понадобится некоторое время.
Программа Блендер: функции
Программа Блендер 3Д будет интересна и полезна не только профессионалам, но и новичкам. Какие же функции есть у этого редактора?
Кроссплатформенная русская версия.
Большое количество встроенных примитивов: кривые Безье, полигональные модели, векторные шрифты, система быстрого моделирования в subdivision surface режиме, NURBS поверхности, метасферы, скульптурное моделирование.
Встроенные инструменты рендеринга и интеграция с YafRay, LuxRender и пр.
Набор инструментов анимации: инверсная кинематика, динамика мягких и твёрдых тел (на базе Bullet), нелинейная анимация, скелетная анимация и сеточная деформация, редактирование весовых коэффициентов вершин, ограничители и т. д.
Blender 3D использует Python для создания инструментов и прототипов, системы логики в играх, движения файлов, автоматизации.
Базовое комбинирование видео.
В редакторе есть Game Blender, реализующий интерактивные функции (определение коллизий, движок динамики, программируемая логика).
Создание дополнительных real-time приложений.
Интерфейс, которым обладает 3D редактор, нельзя назвать простым. Он далек от стандартного, поэтому вам придется разобраться, как пользоваться. Есть специальные уроки, которые также можно скачать через торрент или просмотреть онлайн.
Горячие клавиши соответствуют определенным функциям. Есть объектный режим (отдельные объекты) и Режим редактирования (работа с данными объекта). Практически все манипуляции выполняются с помощью клавиатуры.
1. Главное окно программы
Главное окно можно поделить на несколько условных областей, которыми вам предстоит пользоваться. Вот они:
Основное меню программы;
Меню переключения вида;
Левая панель навигации;
Панель инструментов справа;
Основная рабочая область;
Строка времени внизу.
Все эти области были подчеркнуты на снимке экрана. По умолчанию в рабочей области отображается 3D фигура – куб. Дальше мы рассмотрим основные действия, которые можно с ней сделать.
Дополнительные возможности Blender 3D
Перечислим еще несколько важных особенностей программы:
Объекты и их данные разделены.
Внутренняя файловая система.
Различные элементы, объекты, плагины, материалы, шаблоны, текстуры, звуки, изображения сохраняются в единый «.blend» файл.
Возможность экспорта в такие форматы, как obj, dxf, stl, 3ds и др.
Цветовые схемы, прозрачные плавающие элементы — поспешите обновить ПО, последняя версия может вас удивить своими новшествами.
Загрузите программу прямо сейчас для Windows 7 или других версий, а также для Linux, OS X, Solaris и BSD. Создавайте собственные 3D модели, рисуйте, наделяйте персонажи оснасткой.
Чтобы сохранить результат своей работы откройте меню “File” и выберите опцию “Save”:
Затем вам нужно выбрать место для сохранения и нажать “Save blender file”. Работа будет сохранена в формате Blender, и вы сможете продолжить ее редактировать. Но если вам нужна обычное изображение, в меню “File” выберите пункт “Export”, затем выберите формат нужной картинки:
Наша инструкция как пользоваться Blender 3d для чайников подходит к концу.
Видео к Blender 3D
Уроки по Blender 3D для начинающих
Полезный, интересный курс, состоящий из 28 видео уроков, общей продолжительностью 6 часов 30 минут. За это время, автор подробно расскажет об интерфейсе программы и научит создавать 3D-модели разной сложности.
Из курса вы узнаете, как сделать 3D фотографию и научитесь работать с трекингом камеры. Наглядность видео формата значительно облегчает процесс обучения, и максимально быстро делает из новичков – уверенных пользователей.
{banner_lesson}
Урок 1 – Обзор интерфейса
Урок 2 – Настройка интерфейса
Урок 3 – Создание простого объекта
Урок 4 – Моделирование вазы
Урок 5 – Создание колец
Урок 6 – Создание колец (Материалы, свет, постобработка)
Урок 7 – Создаем мир ящиков
Урок 8 – Мир ящиков (Пост-обработка, материалы, свет)
Начните с основBlender с этим коротким видеоучебником из серии отBlender Foundation, преподносимый сертифицированным преподавателем Джонатаном Уильямсоном.
02.ОсновыBlender-затенениеиосвещение
Перед тем, как приступить к созданию чего-либавBlender, вам нужно освоить азы. В этом20-минутном видео Вы поймете особенности тенейисвета Блендера.
Повышаем уровень сцены внедорожной Создание реалистичной 03.
Blenderурок по созданию реалистичной местностидляраллийного автомобиля
В этом удивительном уроке по Blender, Майк Григгс демонстрирует, как создать реальность пересеченной местности для ралли.
Как создать игровой мир04.
В этом видео уроке, 3DэкспертКристоферПлашпоказал, как создать небольшой игровой мир для ваших будущих игроков.
Реалистичное отображение
Blenderвчашку кофе Как создать05.
В этом полном видео проекте Оливера Вильяравы узнает енекоторые трюки моделирования, и как создавать простые, и не очень материалы с использованием нодов в рендере Cycles.
06.Как создать реалистичную планету Земля
Этот учебник использует несколько текстур из НАСА для создания реалистичной Земли. Освойте создание сложных местностей, океанов, облаков, атмосферыи настройка миматериаловдля создания реалистичных шейдеров.
Это руководство предназначено для опытных пользователейBlender иохватываетпроцесс моделирования и создания простойверсииминьона, как в фильме “Гадкий я”. Послемоделированияминьона, создадимкамеру,фон иосвещение, чтобы завершить визуализацию.
9.Как сделать реалистичный хлеб
В этом уроке узнаете, как сделать вкусно выглядящай хлеб, используя смещение (displacement), Subsurfрассеяние и другое.
11.Создать космический корабль
В этих двух частях видеовы узнаете, как моделировать концептуальный космический корабль; как использовать свои собственные эскизы; и, как сочетание модификаторов может помочь вам в моделировании.
12.Моделированиездание
Это видео руководство поможет Вам смоделировать здание из одной картинки. К концу вы останетесь с моделью, которая может быть легко использована в качестве игрового активаилив качестве базы для гораздо более высоко детализированного здания.
Разрушение! Эндрю Прайс демонстрирует, в занимательной манере, какведут себя твердые телав Blender: как ведет себя цепь,разрушающий мячи твердые кубики при столкновении.
Основы анимации персонажа15.
В этой серии22урока, художник Берн Леонард объясняет все основы анимации персонажейвBlender. Основные моменты включают работу с временем и расстоянием, перекрытие движения, анимации ходьбы и циклов бега и понятьIKиFK.
16. Как создать анимацию цикла ходьбы
Этот учебник от художника Каран Шах объясняет, как создать персонажа, используя RigifyBlender, а также процесс создания циклаанимации ходьбы с помощью ключевых кадров.
17.Как анимироватьпокругувBlender
20.Как создать сцену столкновения огня и воды
Имитируется реальное пламя и эффекты жидкости.
21.Какпоставить3D объект на ребро
Это один изкороткихBlenderуроков в этом списке, где вы можете узнать, как поставить объекты наих краяс помощью редактора кривой. Бассам Курдали покажеттехникув10 простых шагов.
22.Создать крутую симуляцию жидкостей
Эндрю показывает, как создавать реалистичные жидкостные эффектыи сделает это используя новый движок рендеринга Cycles.
Blender технологии частиц волосы из и с CyclesМех23.
Джонатан Лампель демонстрирует, как использовать несколько систем частиц для добавления реалистичных волос животного и, как легко настроить материал меха с помощью Cycles.
29.Моделирование сцены современного интерьера
В этом двух часов уроке, самоучка3Dхудожник истудент Клаудио Делла Не веточно объясняет, как смоделировать внутреннюю интерьер-сцену вBlender.
30. Маскирование зеленого цвета
Добавим немного голливудского талантак вашим проектам! Здесь вы узнаете основы маскировки и цветностной манипуляциивBlender.
Введение вкамерыслежения31.(camera tracking)
Blenderпоставляется в комплекте с удивительной новой функцией под названиемTracking Camera. Этот учебник дает вам введение к тому, что это такое и как начать использовать его прямо сейчас.
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 (специалист по обеспечению качества), для выполнения определенных задач, таких как развертывание и проведение интеграционных тестов.
Выбирая подходящий инструмент, знайте, что он не должен быть идеальным
Ключ к успеху лежит не в выборе идеального инструмента. Главным элементом успеха являются люди, которые его используют. Поэтому перед тем как искать для себя новый инструмент или программу, попытайтесь сначала определить проблему, которую вы бы хотели решить в первую очередь.
Apache HTTP-сервер – это так называемый свободный веб-сервер, представляющий собой кросплатформенное программное обеспечение. Apache поддерживает следующие операционные системы: BSD, Microsoft Windows, Linux, Mac OS, BeOS, Novell NetWare.
Как работает веб-сервер Apache?
Хоть Apache и называется веб-сервер, но в реальном положении вещей он является не сервером, а программой, которая запускается на сервере. Его задача установить соединение между сервером и браузером посетителей (Firefox, Google Chrome, Safari и др.) при доставке файлов туда и обратно между ними (клиент-серверная структура). Apache – это кроссплатформенное программное обеспечение, что значит оно хорошо работает как на Unix, так и на Windows серверах.
Когда посетитель хочет загрузить страницу вашего сайта, например, домашнюю страницу или страницу «О нас», его браузер отправляет запрос на ваш сервер и Apache возвращает ответ со всеми запрошенными файлами (текст, изображение и так далее). Сервер и клиент взаимодействуют по протоколу HTTP и Apache ответственен за гладкое и безопасное соединение между двумя машинами.
Apache хорошо и удобно настраиваемый поскольку имеет модульную структуру. Модули позволяют администраторам сервера включать или выключать дополнительную функциональность. У Apache есть модули безопасности, кэширования, редактирования URL, аутентификации по средством пароля и другие. Вы можете установить свою собственную конфигурацию через файл .htaccess, который является файлом настроек для Apache и поддерживается всеми тарифными планами Hostinger.
Ядро веб-сервера Апач
Ядро этого ПО, разрабатывается фондом Apache Software Foundation, который поддерживает огромное количество разработчиков по всему миру. Его основными функциями являются:
Передача данных по HTTP;
Обработка файлов;
Загрузка и поддержка модулей.
Разумеется, сервер может функционировать без дополнительных модулей, однако в этом случае, его возможности крайне ограниченны.
Обслуживание серверов
от 10 000 руб.
Подбор, сборка и настройка серверов для решения любых задач. Абонентское обслуживание с круглосуточным мониторингом устройств. Настройка удаленного доступа и ограничение доступа к информации сотрудникам. Полное погружение в Вашу сферу.
обслуживание и круглосуточный мониторинг устройств
настройка системы архивации в подарок
бесплатная консультация специалиста
удаленная настройка сервера
Мы свяжемся с Вами и проконсультируем по всем вопросам
Закажите консультацию Вы, как руководитель, столкнулись с вопросом необходимости организации и контроля внутренних процессов своей компании? Хотите настроить удаленный доступ к данным и обеспечить бесперебойную работу программ, контролировать действия сотрудников, предотвратить утечку ценной информации и создать защищенную корпоративную сеть?
Решить эти и другие важные вопросы, а также оптимизировать работу IT-инфраструктуры и деятельности Вашей компании можно с помощью сервера, настроенного индивидуально. Благодаря ему Вы сможете гораздо эффективнее держать руку на пульсе процессов в своей организации на различных этапах, не волнуясь за сохранность важной информации.
Сервер, профессионально настроенный под Ваши потребности позволит мониторить рабочую ситуацию в любое удобное время!
Наша компания занимается установкой и настройкой серверов исходя из индивидуальных потребностей клиента. Мы предоставляем как разовую услугу, так и комплексное сопровождение ИТ-инфраструктуры компании — обслуживание ПК, периферийных устройств, серверов, сетей, сетевого оборудования, а также всех необходимых сервисов, программ и приложений.
Что дает установка сервера
Хранение файлов в одном месте
Файлы хранятся в одном месте. Нет необходимости постоянно передавать их по почте или с помощью флешки.
Ограничение доступа к информации/файлам
Сотрудники не видят файлы, которые под запретом, не могут изменять и удалять файлы, которые доступны только к чтению.
Удобное рабочее пространство
У сотрудника на рабочем столе будут выведены все необходимые для работы ярлыки
Ограничение Интернет-ресурсов
Запрет доступа к социальным сетям, порносайтам, онлайн играм и прочим ресурсам.
Одинаковое ПО
Все сотрудники будут работать с одинаковым ПО (одинаковая программа, одинаковая версия и т.д.).
Полноценная удаленная работа
Сотрудники могут удаленно работать с любой точки земного шара, где есть Интернет (без тим вивера и прочих программ).
Централизованное уведомление пользователей
Уведомление пользователей о необходимости подготовить отчеты, прийти на совещание, а также поздравления с праздниками и прочим для создания корпоративной культуры.
Централизованное подключение принтеров и МФУ
При установке нового оборудование оно появляется у всех сотрудников автоматически: не нужно ходить и подключать его каждому и отвлекать сотрудников от работы.
Использование мощностей сервера, а не компьютера
Даже при слабом компьютере сотрудник может работать с 1С, фотошопом и другими программами, если они стоят на сервере.
Централизованная настройка подписей при отправке
Сотрудники не могут изменить свою подпись в письме: поставить туда свою, некорпоративную почту, изменить номер телефона.
Система внутреннего чата без использования Интернета
Аналог аськи, но внутри компании. Возможна также передача данных.
Блокировка всех почт кроме корпоративной во избежание утечки информации
Полная блокировка использования сторонней почты кроме корпоративной.
Защита файлов
Файлы защищены от полоски компьютера, вирусов, шифрования и других угроз.
Полный контроль над письмами и вложениями
Вся почта хранится у вас – вы защищены от специального или случайного удаления чего-либо из почты своим сотрудником.
Ограничение установки и запуска программ
Сотрудники не смогут установить игрушки и прочее развлекательное или вредоносное ПО на свой компьютер или сервер. На компьютере нельзя запустить скайп, аську и прочее ПО, не связанное с работой или запрещенная по соображениям возможной утечки информации.
Унификация рабочих мест
Пользователь может пересесть за любой другой компьютер и продолжить работу (актуально, если компьютер сгорел или в компании часто любят делать перестанови сотрудников).
Установка Apache
На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:
sudo apt update
$ sudo apt upgrade
Затем установка apache2:
sudo apt install apache2
В других дистрибутивах пакет программы называется либо так, либо httpd и его установка у вас не вызовет трудностей.
После завершения установки нужно добавить веб-сервер в автозагрузку, чтобы не запускать его вручную после включения компьютера:
sudo systemctl enable apache2
Настройка AD (Active Directory)
Процесс настройки active directory является весьма длительным и ответственным, выполнение которого требует наличия высокой квалификации и большого опыта работы в данной сфере. Но своевременная установка, правильная настройка и применение AD открывает широчайшие возможности перед любой компанией. Применение active directory позволяет значительно упростить процесс расширения штата компании, внедрить новые технологии и решения. AD способствует расширению функциональности и обеспечению безопасной работы всей корпоративной сети.
Настройка Apache на Windows
На самом деле, базовая настройка веб-сервера крайне проста – необходимо только правильно указать путь до папки, в которой помещены веб-сайты – этого будет достаточно для запуска веб-сервера.
Кстати, в конфигурационном файле уже прописаны значения многих параметров по умолчанию. К примеру, по умолчанию корневой директорией является c:/Apache24. Поэтому если папку Apache24 из скаченного архива вы разархивируете в корень диска C, то вы можете вообще без настройки запустить веб-сервер следующей командой:
c:Apache24binhttpd.exe -k start
И по адресу http://localhost увидите стандартную страницу веб-сервера, которая сообщает, что он работает:
Кстати, для открытия командной строки в Windows используйте сочетание клавиш Win+x и в открывшемся окне выберите Windows PowerShell (администратор).
Настройка веб-сервера выполняется посредством редактирования текстового файла, который размещён в папке Apache24conf и называется httpd.conf.
Этот файл состоит из директив с определёнными значениями. Эти директивы регулируют поведение веб-сервера. Но больше чем директив в этом файле комментариев – они начинаются с решётки (#) – комментарии нужны для человека, который настраивает веб-сервер. Сам сервер строки начинающиеся с # просто игнорирует. Т.е. вы можете просто удалить их.
Этот файл содержит не все возможные директивы – многие из них здесь отсутствуют, поскольку не требуются для большинства задач. Даже в этой заметки мы рассмотрим не все доступные в файле настройки – если описание чего-то пропущено, значит просто не нужно это трогать.
Как уже было сказано, важно установить путь до папки с веб-сайтами. Если она установлена неправильно (например, отсутствует на компьютере), то веб-сервер не запуститься.
Думаю, вы уже обратили внимание, что веб-сервер отличается от других программ для Windows. Если вы знакомы с Linux или другими аналогичными операционными системами, вам должна быть знакома работа в консоли и редактирование текстовых файлов. Пути до файлов тоже записываются не совсем обычно для Windows. Сейчас главное уяснить два правила:
используйте абсолютные пути до файла (которые начинаются с буквы диска, затем следуют все вложенные папки), а не относительные – у сервера свои правила интерпретации относительных путей, поэтому вы можете не понять друг друга;
всегда используйте прямые слеши, а не обратные (т.е., “c:/apache” вместо “c:apache”).
Итак, откройте файл Apache24confhttpd.conf любым текстовым редактором (хоть Блокнотом) и вот мы уже готовы к настройке веб-сервера.
Первой идёт директива ServerRoot – это верхняя директория дерева, в которой хранятся файлы конфигурации сервера и журналов. Не добавляйте слэш на конец пути папки.
Значение по умолчанию устанавливается двумя директивами:
Первая директива присваивает значение переменной SRVROOT, которое по умолчанию “c:/Apache24”. Вторая директива присваивает значение переменной ${SRVROOT} настройке ServerRoot.
ServerRoot — это та папка, в которой находятся все файлы веб-сервера – поменяйте значение на то, куда вы распаковали файлы веб-сервера. Это можно сделать используя конструкцию из двух переменных:
Либо если вы не планируете снова использовать переменную ${SRVROOT} (а она по умолчанию используется далее!), то можно сократить запись из двух строк до одной строки:
ServerRoot “c:/Server/bin/Apache24”
Директива Listen позволяет вам привязать Apache к определённому IP адресу и/или порту. Значение по умолчанию:
Listen 80
Оно означает, прослушивать 80 порт на любом IP адресе (т.е. любом сетевом интерфейсе), доступном в вашей системе. Вы можете указать конкретный IP адрес, который нужно прослушивать и, следовательно, на запросы с которого отвечать:
Listen 12.34.56.78:80
Можно указать несколько портов:
Listen 80 Listen 8000
Или несколько IP и портов:
Listen 192.170.2.1:80 Listen 192.170.2.5:8000
Вы можете использовать любые сочетания, главное правило – порт на указанном интерфейсе (IP) не должен быть занят другой программой.
Значение по умолчанию вполне подходит для локального веб-сервера – т.е. здесь можно просто ничего не менять.
Далее идёт большой список модулей. Некоторые их них отключены (строки закомментированы, т.е. начинаются с #), а некоторые включены.
На самом деле, всё действительно необходимое уже включено – и для работы большинства веб-сайтов менять ничего не нужно – особенно на локальном веб-сервере. Но есть одно исключение – модуль mod_rewrite по умолчанию отключён. Это очень популярный модуль, например, все ЧПУ (понятные для человека адреса страниц) делаются с помощью него. Вы можете его включить, для этого достаточно найти строку:
#LoadModule rewrite_module modules/mod_rewrite.so
и раскомментировать её, т.е. заменить на:
LoadModule rewrite_module modules/mod_rewrite.so
Директива ServerAdmin содержит e-mail администратора, этот адрес электронной почты пишется на некоторых страницах веб-сервера, которые автоматически генерируются в случае возникновения ошибок. Подразумеваются, что по этому адресу можно связаться с администратором.
Директива ServerName – это то, как сервер сам себя идентифицирует (называет). Для локального веб-сервера поменяйте строку
#ServerName www.example.com:80
на
ServerName localhost
Конструкция
AllowOverride none Require all denied
запрещает доступ к файловой системе веб-сервера (пока это не разрешено явно) и запрещает использовать файлы .htaccess (пока это не разрешено явно).
Далее идёт довольно объёмная конструкция, но если удалить из неё комментарии, то получается следующее:
DocumentRoot “${SRVROOT}/htdocs” Options Indexes FollowSymLinks AllowOverride None Require all granted
DocumentRoot – это директория, где по умолчанию находятся сайты. По умолчанию именно там ищутся все пришедшие на веб-сервер запросы. Укажите здесь путь до корневой папки в веб-документами. Конечный слэш писать не нужно.
Конструкция … нам уже встречалась. Но здесь указывается конкретная папка, для который делаются настройки. Эти настройки перезаписывают общие, которые указаны ранее.
Пути до папок в DocumentRoot и Directory не забудьте поменять на свои!
Обратите внимание, что для установки настроек вновь используется переменная ${SRVROOT}, значение которой было присвоено в самом начале. Если использовать синтаксис с ${SRVROOT}, то корневая папка документов должна обязательно находится в корневой папке сервера. Я настраиваю сервер по-другому — у меня исполнимые файлы отделены от файлов сайтов, поэтому вместо переменной, можно просто прописать пути до нужной папки с сайтами:
DocumentRoot “c:/Server/data/htdocs/” Options Indexes FollowSymLinks AllowOverride None Require all granted
Директива Options включает разные опции. По умолчанию указаны опции Indexes и FollowSymLinks. Первая (Indexes) означает показывать индексные файлы, если запрос не содержит имени файла. Допустим, пользователь открывает адрес http://localhost/site/, то если в этой папке есть индексный файл (например, index.html или index.php), то будет показан этот файл. Понятно, что если сделан запрос на определённый файл, например, http://localhost/site/page.html, то будет показана запрошенная страница.
Вторая опция (FollowSymLinks) означает следовать символьным ссылкам. Это что-то вроде ярлыков в Windows. В Linux с помощью таких ссылок можно собрать в одном сайте файлы, размещённые в различных папках файловой системы. На самом деле, для начинающих администраторов сервера это не очень нужно.
Директива AllowOverride установлена на None, это означает запрет использовать файлы .htaccess. На своём сервере я разрешаю файлы .htaccess (нужны для mod_rewrite, ограничения доступа), поэтому я заменяю её значение на All, получается так:
AllowOverride All
А директива Require all granted открывает посетителям доступ для веб-документов.
Я уже упомянул индексные файлы, перечень индексных файлов устанавливается конструкцией:
DirectoryIndex index.html
Там всего один файл – index.html. Можно дописать любое количество своих собственных. Я меняю:
DirectoryIndex index.html
на
DirectoryIndex index.php index.html index.htm
Другие настройки обычно не требуется менять для локального веб-сервера.
Смотрите также:
Как подключить PHP к Apache на Windows
Как подключить MySQL к Apache на Windows
Преимущества веб-сервера Апач
Разумеется, главным достоинством данного веб-сервера, является не возможность свободно его использовать. К преимуществам http сервера Apache, необходимо отнести высокий уровень надежности и гибкие настройки. В частности, к нему можно подключать большое количество внешних модулей, систем управления базами данных и т.п. Также он поддерживает интернет-протокол IPv6.
Также к несомненным достоинствам Apache, необходимо отнести большое количество, регулярно выпускаемых обновлений и патчей, которые позволяют быстро устранить различные проблемы с работой или безопасностью.
Удобство и легкость настройки этого программного обеспечения, делают его одним из самых оптимальных вариантов для начинающих веб-мастеров.
При работе с сайтами на Вордпрессе, не требует дополнительных настроек после установки.
Отдельно стоит упомянуть о том, что благодаря большой популярности этого веб-сервера, вы всегда можете найти множество сообществ, на которых опытные пользователе Apache, обсуждают различные проблемы и консультируют новичков.
Недостатки сервера Апач
Как и у любой другой вещи, все недостатки Apache, являются логическим продолжением его достоинств. Наиболее вескими недостатками являются:
Возможные проблемы с производительностью на высоконагруженных сайтах с большим трафиком, «тяжелым» контентом или приложениями, которые требуют высоких вычислительных мощностей;
Большое количество параметров настройки может привести к возникновению уязвимостей, из-за невнимательности при конфигурации;
Существует вероятность того, что в модули от независимых разработчиков будет внедрен вредоносный код.
Когда дело доходит до систем контроля версий, очень немногие могут затмить GIT в актуальности, производительности и распространенности. GIT был разработан Линусом Торвальдсом в 2005 году, и сегодня, миллионы компаний используют его для эффективного управления кодом и контроля над версиями своих проектов. Программное обеспечение с открытым исходным кодом может быть загружено для различных платформ, таких как Linux, Windows, Solaris и Mac; больше информации об основах GIT можно получить здесь. В этом руководстве вы узнаете основные GIT команды.
Описание
Git является распределенной системой для управления версиями разрабатываемых файлов. Создана она была в 2005 году автором ОС Linux. Эта система осуществляет синхронизацию работы с сайтом, а также сохраняет и обновляет изменения в файлах. Это очень удобный подход в случае работы над проектом нескольких разработчиков. На сегодняшний день во многих известных проектах используется именно Git. Что такое использование дает? К примеру, разработкой операционной системы Android занимается большое число программистов. Было бы крайне неудобно, если бы один из них вносил изменения, а другие об этом не знали. Git же позволяет всем быть в курсе всех изменений, а в случае ошибок вернуться к предыдущим версиям файлов.
Основные команды
Следующие четыре команды предназначены для копирования файлов между рабочей директорией, сценой, также известной как «индекс», и историей, представленной в форме коммитов.
git add файлы копирует файлы в их текущем состоянии на сцену.
git commit сохраняет снимок сцены в виде коммита.
git reset — файлы восстанавливает файлы на сцене, а именно копирует файлы из последнего коммита на сцену. Используйте эту команду для отмены изменений, внесённых командой git add файлы. Вы также можете выполнить git reset, чтобы восстановить все файлы на сцене.
git checkout — файлы копирует файлы со сцены в рабочую директорию. Эту команду удобно использовать, чтобы сбросить нежелательные изменения в рабочей директории.
Вы можете использовать git reset -p, git checkout -p, и git add -p вместо имён файлов или вместе с ними, чтобы в интерактивном режиме выбирать, какие именно изменения будут скопированы.
Также можно перепрыгнуть через сцену и сразу же получить файлы из истории прямо в рабочую директорию или сделать коммит, минуя сцену.
git commit -a аналогичен запуску двух команд: git add для всех файлов, которые существовали в предыдущем коммите, и git commit.
git commit файлы создаёт новый коммит, в основе которого лежат уже существующие файлы, добавляя изменения только для указанных файлов. Одновременно, указанные файлы будут скопированы на сцену.
git checkout HEAD — файлы копирует файлы из текущего коммита и на сцену, и в рабочую директорию.
Использование слепков, а не патчей
Главным отличием Git от других систем контроля версий является то, как она смотрит на данные. Большая часть программ хранит информацию в виде списка изменений, называемых патчами для файлов. Такие системы к хранимым данным относятся как к набору файлов, а также набору изменений, которые сделаны для каждого файла, относительно времени. Как хранит свои данные Git? Что такое есть в этой системе, что отличает ее от других? Вместо патчей, хранимые данные здесь считаются набором слепков маленькой файловой системы. Всякий раз, когда пользователь фиксирует новую версию проекта, система просто сохраняет слепок состояния файлов на текущий момент. Чтобы повысить эффективность в том случае, когда файл не изменялся, система не сохраняет его, а делает ссылку на ранее сохраненный экземпляр, в который были внесены последние изменения.
Это очень важное отличие от других систем контроля, которое присуще Git. Что такое отличие дает? Git становится похожей на маленькую файловую систему, обладающую очень мощными инструментами, которые работают поверх нее.
Преимущественно локальные операции
Для того чтобы совершать большинство операций в Git, нужны лишь локальные ресурсы и файлы. Это означает, что чаще всего нет необходимости в информации, находящейся на других компьютерах, входящих в сеть. Так как все изменения проекта находятся на диске, выполнение операций происходит с молниеносной скоростью. Например, для того чтобы просмотреть историю проекта, ее не нужно загружать с сервера. Она считывается из локального репозитория на компьютере. Если нужно увидеть изменения между версией файла, которая была сделана месяц назад, и текущей, можно сделать это очень быстро, не обращаясь к серверу.
Еще локальная работа означает то, что можно много чего сделать без подключения к сети. К примеру, разработчик может вносить изменения, находясь в транспорте. Во многих системах контроля такой возможности нет.
Наблюдение за целостностью данных
Перед тем как сохранить любой файл, ему присваивается индекс в виде контрольной суммы, вычисленной непосредственно Git. Что такое контрольная сумма? Это значение, которое рассчитывается при помощи специальных алгоритмов и используется для того, чтобы проверить целостность данных при их хранении и передаче. Здесь невозможно что-то изменить без ведома Git, и это важная составляющая философии системы.
Данные чаще всего добавляются
Почти все действия, совершаемые в Git, добавляют в базу данных. Удалить их очень трудно. Можно лишь потерять еще не сохраненную информацию, но при её фиксации потеря исключена. По этой причине многие выбирают именно Git, так как тут можно проводить эксперименты без рисков сделать что-то непоправимое.
Состояния файлов
Работа с Git для начинающих подразумевает запоминание того, что файл может находиться в одном из трех состояний:
Зафиксированное, то есть файл сохранен в локальном хранилище.
Измененное, когда правки были внесены, но сохранение еще не выполнено.
Подготовленное – измененные файлы, которые отмечены для сохранения.
Так, в проектах, в которых используется Git, имеется три раздела для разных состояний файлов:
Каталог Git, где хранятся метаданные, а также база данных объектов. Эта часть системы самая важная.
Рабочий каталог, который является извлеченной из базы данных копией какой-то версии проекта.
Файл, содержащий информацию о последующем сохранении.
Устанавливаем Git
Первое, что нужно сделать для того, чтобы использовать систему контроля версий – установить ее. Существует несколько способов для этого. Основными являются два варианта:
Установка Git из исходников.
Установка пакета для используемой платформы.
Установка Git из исходников
При наличии такой возможности лучше использовать данный вариант, так как будет получена самая свежая версия. Каждое обновление обычно содержит множество полезных улучшений, касающихся интерфейса пользователя. Именно поэтому, если установка из исходников не слишком для вас затруднительна, лучше предпочесть ее. Да и большинство дистрибутивов Linux включают в себя устаревшие пакеты.
Для установки понадобятся необходимые библиотеки: expat, curl, libiconv, openssl, zlib. После их инсталляции можно загрузить последнюю версию системы контроля версий, скомпилировать ее и установить.
Установка в операционной системе Windows
Если у пользователя нет Linux, а хочется использовать Git, Windows также поддерживает эту систему. И установить ее очень просто. Существует проект msysGit, процедура установки которого является одной из самых простых. Необходимо просто загрузить файл инсталлятора, который можно найти на странице проекта в GitHub, а затем запустить его. По окончании установки на компьютере будет две версии – графическая и консольная.
Первоначальная настройка Git
После того как система контроля установлена на компьютер, нужно выполнить кое-какие действия для настройки среды под пользователя. Делается это единожды. При обновлении все настройки сохраняются. Их можно будет поменять в любой момент.
Git включает в себя утилиту git config, позволяющую делать настройки и контролировать работу системы, а также внешний вид. Данные параметры могут сохраняться в трех местах:
В файле, содержащем значения, которые являются общими для всех пользователей и репозиториев.
В файле, содержащем настройки определенного пользователя.
В конфигурационном файле, находящемся в текущем репозитории. Такие параметры действуют только для него.
Пользовательское имя
В первую очередь после установки необходимо указать имя пользователя, а также электронную почту. Это очень важно, так как каждый коммит (сохранение состояния) содержит эти данные. Они включаются во все передаваемые коммиты и не могут быть изменены впоследствии.
Если указать опцию –global, такие настройки нужно будет сделать один раз.
Выбор текстового редактора
После указания имени нужно выбрать редактор, который будет необходим при наборе сообщений в Git. По умолчанию будет использоваться стандартный редактор операционной системы. Если пользователь захочет использовать другой, нужно прописать это в настройках конфигурационного файла в строке core.editor.
Проверка параметров
Чтобы знать основы Git, необходимо уметь проверять используемые настройки. Для этого применяется команда git config –list. Она выводит все доступные параметры, которые сможет найти. Некоторые имена настроек могут присутствовать в списке несколько раз. Это происходит из-за того, что Git считывает один ключ из различных файлов. В такой ситуации для каждого ключа используется последнее значение. Есть возможность проверять значения определенных ключей, вписав в команду вместо «–list» – «{ключ}».
Строим репозитории
В первую очередь нужно понять что такое git-репозиторий? Ответ очень прост: это набор файлов. Папка `.git`. Важно понимать, что это только набор файлов и ничего больше. Раз 20 наблюдал проблему у коллег с авторизацией в github/gitlab. Думая, что это часть git-системы, они пытались искать проблему в конфигруации git, вызывать какие-то git-команды. А если это просто файлы, то к ним нужно как-то получить доступ, иметь возможность оттуда читать и туда писать? Да! Я называю это «транспортом». Это может и некорректно, но мне так было удобно запомнить. Более правильный вариант: «Протокол передачи данных». Самые распространённые варианты:
FILE — мы имеем прямой доступ к файлам репозитория.
SSH — мы имеем доступ к файлам на сервере через ssh.
HTTP(S) — используем http в качестве приёма/передачи.
Вариантов намного больше. Не важно какой транспорт будет использован, важно чтобы был доступ на чтение или чтение/запись к файлам. Поэтому, если вы никак не можете клонировать репозиторий с github, и нет в логах никаких подсказок, возможно у вас проблема с транспортом. В частности, при клонировании вот так: git clone git@github.com:user/repo.git урл «превращается» в git clone ssh://git@github.com:user/repo.git Т.е. используется SSH и проблемы нужно искать в нём. Как правило, это неправильно настроенный или не найденный ssh-ключ. Гуглить надо в сторону «SSH Auth Key git» или, если совсем по взрослому, проверить, что же происходит: ssh -vvv git@github.com Какие протоколы поддерживаются поможет справка (раздел GIT URLS): git clone –help Репозиторий можно клонировать, но для начала поиграемся со своими:
Придумаем свой удалённый репозиторий
Сделаем два клона с него, от имени разработчиков (dev1 и dev2)
Кроме самого репозитория есть ещё и workspace, где хранятся файлы с которыми вы работаете. Именно в этой папке лежит сам репозиторий (папка .git ). На серверах рабочие файлы не нужны, поэтому там хранятся только голые репозитории (bare-repo). Сделаем себе один (будет нашим главным тестовым репозиторием): $ mkdir git-habr #создадим папку, чтоб не мусорить $ cd git-habr $ git init –bare origin Initialized empty Git repository in /home/sirex/proj/git-habr/origin/ Теперь клонируем его от имени разработчиков. Тут есть только один нюанс, которого не будет при работе с сервером: git, понимая, что репозитории локальные и находятся на одном разделе, будет создавать ссылки, а не делать полную копию. А нам для изучения нужна полная копия. Для этого можно воспользоваться ключом –no-hardlinks или явно указать протокол: $ git clone –no-hardlinks origin dev1 Cloning into ‘dev1’… warning: You appear to have cloned an empty repository. done. $ git clone –no-hardlinks origin dev2 Cloning into ‘dev2’… warning: You appear to have cloned an empty repository. done. Итог: у нас есть 3 репозитория. Там ничего нет, зато они готовы к работе.
Создание в данном каталоге
Если пользователь решает начать использование Git для уже имеющегося проекта, он должен перейти в каталог и инициализировать систему. Для этого нужна команда git init. Она создает в каталоге подкаталог, где будут находиться все нужные файлы. На данном этапе еще не устанавливается версионный контроль над проектом. Для добавления файлов под контроль нужно их проиндексировать и сделать первую фиксацию изменений.
Клонирование репозитория
Для получения копии уже существующего репозитория нужна команда git clone. С ее помощью Git получит копию почти всех данных с сервера. Это касается всех версий каждого файла. Очень удобная возможность, так как в случае выхода из строя сервера программист сможет использовать клон на любом клиенте для возврата сервера в то состояние, в каком он был при клонировании. Это похоже на точку восстановления.
Удаленный доступ и его особенности
Командная работа над проектом невозможна без обучения управлению удаленными репозиториями. Каждая модификация проекта хранится в Сети или на сервере системы контроля версий, такой как Git. Вариантов проекта с небольшими отличиями может быть несколько, и все они доступны другим разработчикам. Некоторые репозитории можно только просматривать, в другие разрешено вносить изменения. Для каждого такого действия в системе Git существует несколько специальных команд, позволяющих управлять удаленными копиями проектов. Все они являются модификацией основной команды — git remote.
Управление удаленным репозиторием в Git
Ниже рассмотрен процесс работы с удаленными хранилищами в Git. Обычно пользователям системы приходится делиться рядом коммитов, а не одним набором изменений. Вместо того, чтобы отправлять набор изменений из рабочей копии в центральный репозиторий, Git позволяет разработчикам обмениваться целыми ветвями между отдельными хранилищами. У каждого пользователя может быть несколько репозиториев, каждый из которых обычно доступен только для чтения или чтения и записи. Сотрудничество с другими людьми предполагает управление этими удаленными репозиториями. Именно для этого нужна команда для удаленного доступа — git remote. Она является одной из частей более широкой системы, отвечающей за синхронизацию изменений.
Особенности удаленного доступа
Записи, зарегистрированные при помощи команды удаленного доступа, используются в сочетании с командами git remote push, fetch и pull. Как git fetch, так и git pull можно использовать для чтения из удаленного репозитория. Команда git remote позволяет создавать, просматривать и удалять подключения к другим репозиториям. Например, push используется для того, чтобы поместить данные в хранилище, а pull, наоборот, чтобы получить. Команда fetch нужна, чтобы извлечь всю информацию, отсутствующую на локальной копии, из удаленного репозитория. После ее выполнения создаются ссылки на все новые ветки, в которых находятся недостающие данные. То есть обновления не сливаются с текущим проектом, а располагаются отдельно.
Впоследствии данные нужно будет сливать вручную, если возникнет такая необходимость. Для автоматического извлечения и соединения репозиториев используется git remote pull. Удаленные подключения больше напоминают закладки, чем прямые ссылки в другие репозитории. Вместо предоставления доступа в режиме реального времени они служат удобными именами, которые могут использоваться для ссылки на не очень удобный URL-адрес.
Команда удаленного доступа по сути является интерфейсом для управления списком записей, которые находятся в файле ./.git/config. Она нужна для управления удаленными хранилищами, удаления несуществующих, отслеживания определенных веток и смены адресов удаленных репозиториев (git change remote).
Отображение удаленных хранилищ
По умолчанию Git удаляет список ранее сохраненных удаленных подключений к другим репозиториям. При этом создается строка, в которой будут указаны имена удаленных репозиториев. Вызов git remote с параметром -v покажет список имен закладок репозитория и, кроме того, соответствующие им URL-адреса. Опция -v означает verbose. Команда git remote add создаст новую запись соединения в удаленном репозитории. После того как удаленная запись была настроена при помощи команды удаленного доступа, ее имя может быть передано другим командам Git для связи с хранилищем.
Конфигурация команды удаленного доступа
Ниже рассмотрены варианты использования команды для управления репозиториями. Простая запись git remote выдает список удаленных подключений. Существует несколько ее конфигураций. Команда удобна для внесения изменений в файл ./.git/config. Также его можно редактировать и вручную при помощи текстового редактора. Команда для удаленного доступа Git является одной из тех, что принимает дополнительные “подкоманды”.
Варианты “подкоманд”:
Команда “git remote add ” используется для создания нового подключения к удаленному репозиторию. После добавления удаленного управления появляется возможность использовать как удобный ярлык для в других командах. Эта подкоманда принимает параметр -f, который добавляет имя ветви сразу после создания удаленной записи. А также параметр –tags”, который немедленно извлекает <имя> и импортирует каждый тег из удаленного репозитория.
Еще одна команда git remote rm позволяет удалить соединение с удаленным репозиторием. Она изменяет /.git/config и удаляет файл с именем . Если затем выполнить эту команду с префиксом remote_test, можно увидеть, что запись больше не существует.
Запись git remote rename переименовывает удаленное соединение. При этом сначала указывается старое имя, а затем — новое. Чтобы изменить удаленный URL-адрес репозитория, необходимо обновить конфигурационный файл новым URL-адресом. В противном случае вы получите сообщение об ошибке.
Команда get-url выводит URL-адреса для удаленного доступа. При добавлении параметра – all будут перечислены все URL-адреса доступных удаленных хранилищ.
Всякие полезности
Git позволяет настраивать aliasы для различных команд. Это бывает очень удобно и сокращает время набора команд. Приводить здесь примеры не буду, в Интернете их полно, просто поищите. Перед тем, как отдавать свои изменения их можно перестроить на самих себя, чтобы привести историю в порядок. Например, в логах может быть такое: 9982f7b Finally make test works b21f8a5 Fixed typo in Test 3eabaab Fixed typo in Test e514869 Added Test for Foo b4439a2 Implemented Method for Foo 250adb1 Added class Foo Перестроим сами себя, но начиная с 6 коммитов назад: dev2(dev)$ git rebase -i dev~6 # т.к. нам всё равно отдавать это в origin/dev мы можем перестроить прямо на него dev2(dev)$ git rebase -i origin/dev Теперь в интерактивном режиме можно объединить (squash) первые два коммита в один и последние четыре. Тогда история будет выглядеть так: 0f019d0 Added Test for class Foo a3ae806 Implemented class Foo Такое намного приятнее передавать в общим репозиторий. Обязательно посмотрите, что умеет git config и git config –global. Перед тем, как начнёте работать с реальным проектом, неплохо было бы настроить свой username и email: git config –global user.name sirex git config –global user.email jsirex@gmail.com На одном проекте у нас велась параллельная разработка очень многих фич. Они все разрабатывались в отдельных ветках, но тестировать их нужно было вместе. При этом на момент выпуска билда для тестирования не было понятно, готовы фичи или нет: могли поменяться требования или найтись серьёзные баги. И стал вопрос: как продолжить работу над всеми фичами не объединяя их в принципе никогда, но объединяя всё перед релизом? Противоречие? Git красиво помогает решить эту проблему и вот как:
для выпуска билда была создана отдельная ветка, куда все фичи мержились (git merge –no-ff)
ветка отдавалась на тестирование
разработка продолжалась в своих ветках
новые изменения опять объединялись (git merge –no-ff)
Если тестируемую временную ветку просто удалить, все связанные коммиты с ней исчезнут и история опять распадётся на много отдельных веток. А их потом можно снова пересобрать
Когда какая-то фича абсолютна готова к релизу, только её одну можно перестроить на dev и протолкнуть в релиз.
Операция с остальными, неготовыми ветками, повторяется
Удаление файла в Git
Удалить из системы любой файл можно, если исключить его из индекса, то есть из отслеживаемых файлов. Для этого нужна команда git rm. Она также убирает файл из рабочего каталога пользователя. Затем нужно выполнить коммит. После него файл попросту исчезнет и отслеживаться больше не будет. Если же он изменен и уже проиндексирован, то применяют принудительное удаление с параметром -f. Такой способ предотвратит удаление тех данных, которые еще не записались в снимок состояния и которые нет возможности восстановить из системы.
Отмена изменений
В любой момент может появиться необходимость в отмене какого-либо действия. Если пользователь выполнил коммит рано, забыв внести некоторые файлы, то можно перевыполнить его, используя опцию –amend. Такая команда использует для коммита индекса. Если после выполнения последнего сохранения не производилось никаких изменений, то проект будет в таком же состоянии, и появится редактор для комментариев, где пользователь сможет отредактировать все, что нужно. Нужно помнить, что не каждую операцию отмены можно будет отменить. Иногда можно безвозвратно удалить необходимые данные. Следует быть внимательными.
Переключение веток
Команда git checkout позволяет перемещаться между ветками, созданными командой git branch. При переключении ветки происходит обновление файлов в рабочем каталоге в соответствии с версией, хранящейся в этой ветке, а Git начинает записывать все новые коммиты в этой ветке. Рассматривайте эту команду как способ выбрать направление для развития в рамках своей разработки.
Наличие выделенной ветки для каждой новой функции сильно отличается от традиционного рабочего процесса в SVN. Это значительно облегчает проведение новых экспериментов без страха разрушить существующую функциональность и позволяет одновременно работать со множеством несвязанных функций. Кроме того, ветки облегчают ведение нескольких совместных рабочих процессов.
Иногда команду git checkout можно спутать с командой git clone. Разница между этими двумя командами заключается в том, что при клонировании (clone) выполняется извлечение кода из удаленного репозитория, тогда как при переключении (checkout) происходит переключение между версиями кода, который уже находится в локальной системе.
Использование: существующие ветки
Если предположить, что ваш рабочий репозиторий уже содержит существующие ветки, вы можете переключаться между этими ветками с помощью команды git checkout. Чтобы узнать, какие ветки доступны и как называется текущая ветка, выполните команду git branch.
В вышеприведенном примере показано, как просмотреть список доступных веток с помощью команды git branch и переключиться на конкретную ветку (в данном случае — на ветку feature_inprogress_branch).
Новые ветки
Команда git checkout часто используется вместе с командой git branch . С помощью команды git branch можно создать новую ветку. Когда вы захотите начать работу над новой функцией, создайте новое ответвление от ветки master с помощью команды git branch new_branch. Затем переключитесь на новую ветку с помощью команды git checkout new_branch. Команда git checkout также принимает аргумент -b, который действует как вспомогательный метод, позволяя создать новую ветку и сразу переключиться на нее. Вы можете работать сразу с несколькими функциями в одном репозитории, переключаясь между ними с помощью git checkout.
git checkout -b В вышеприведенном примере одновременно создается ветка и сразу же выполняется переключение на нее. Опция -b — это удобный способ сообщить системе Git, чтобы она выполнила команду git branch перед выполнением команды git checkout .git checkout -b По умолчанию команда git checkout -b создает ветку new-branch от текущего указателя HEAD. Команде git checkout можно передать необязательный параметр — еще одну ветку. В вышеприведенном примере передается , поэтому ответвление new-branch будет создано от ветки existing-branch, а не от текущего указателя HEAD.
Переключение веток
Переключение веток — простая операция. При выполнении следующей команды указатель HEAD будет перенесен на последний коммит ветки .git checkout
Git отслеживает историю операций переключения в журнале ссылок reflog. Чтобы просмотреть эту историю, выполните команду git reflog.
Переключение на удаленную ветку
При совместной работе команды нередко используют удаленные репозитории. Такие репозитории могут размещаться на сервере с предоставлением общего доступа либо это может быть локальная копия другого коллеги. Каждый удаленный репозиторий содержит собственный набор веток. Для переключения на удаленную ветку нужно сначала извлечь содержимое этой ветки.
git fetch –all
В современных версиях Git переключение на удаленную ветку не отличается от переключения на локальную ветку.
git checkout
В более старых версиях Git необходимо создать новую ветку на основе удаленной (remote).
git checkout origin/
Кроме того, можно переключиться на новую локальную ветку и сбросить ее до последнего коммита удаленной ветки.
git checkout -b git reset –hard origin/
Открепленные указатели HEAD
Теперь, когда мы рассмотрели три основных варианта использования команды git checkout на ветках, важно обсудить состояние detached HEAD, или состояние открепленного указателя HEAD. Помните, что HEAD — это указатель на текущий снимок в Git. Сама команда git checkout просто обновляет указатель HEAD, чтобы он ссылался на указанную ветку или коммит. Когда HEAD указывает на ветку, Git молчит, но при попытке переключиться на коммит он переходит в состояние detached HEAD (открепленный указатель HEAD).
Это сообщение предупреждает о том, что вся текущая работа «откреплена» от остальной части вашего проекта. Если вы начнете разрабатывать функцию, находясь в состоянии открепленного указателя HEAD, у вас не будет ветки, которая позволила бы вам вернуться к этой функции. Когда вы неизбежно переключитесь на другую ветку (например, чтобы слить код своей функции), вы уже никак не сможете сослаться на свою функцию:
Всегда ведите разработку на ветке, а не на открепленном указателе HEAD. Это гарантия того, что у вас всегда будет ссылка на ваши новые коммиты. Вместе с тем при просмотре предыдущего коммита состояние указателя HEAD не имеет значения, он может быть как откреплен, так и нет.
Добавление Git Remote
Удаленный репозиторий должен существовать до того, как вы добавите git remote в ваш локальный репозиторий. Вы можете создать репозиторий в службе хостинга Git, такой как GitHub, GitLab и BitBucket, или на своем частном сервере Git.
Чтобы добавить новый удаленный каталог, перейдите в каталог, в котором хранится ваш репозиторий, и используйте команду git remote add, за которой следует удаленное имя и удаленный URL:
git remote add
Например, чтобы добавить новый remote с именем staging указывающим на git@gitserver.com:user/repo_name.git, введите:
Вы можете добавить новый remote, отредактировав файл .git/config с помощью текстового редактора, но использовать команду намного проще.
Вот и все. Вы успешно добавили Git remote.
Чтобы перенести ваш код на remote, вы должны использовать:
git push
Чтобы извлечь и извлечь из удаленного использования:
git fetch git pull
15 команд Git, о которых вы, возможно, не знали
1. Изменение последнего коммита
git commit –amend
—amend позволяет добавлять подготовленные (staged) изменения к предыдущему коммиту (например, добавлять забытый файл). Если изменений нет, то —amend даст вам возможность переписать сообщение этого коммита (commit message). А если приписать —no-edit, то наоборот: можно будет внести изменения в сам коммит, не затрагивая commit message.
Узнать больше: git help commit
2. Интерактивное добавление отдельных частей файлов
git add -p
-p (или —patch) позволяет интерактивно выбирать для добавления в коммит части отслеживаемый файлов. Таким образом коммит будет содержать только нужные изменения.
Узнать больше: git help add
3. Интерактивное скрытие отдельных частей файлов
git stash -p
Опцию —patch можно добавлять не только к git-add. Добавленная к git stash, она позволяет интерактивно выбирать части отслеживаемых файлов, которые вы хотели бы скрыть.
Узнать больше: git help stash
4. Скрытие файлов, включая неотслеживаемые
По умолчанию при скрытии файлов неотслеживаемые файлы не учитываются. Чтобы изменить это поведение и включить в stash также и эти файлы, нужно использовать параметр -u. Есть также параметр -a (—all), который позволяет скрывать как неотслеживаемые, так и игнорируемые файлы, но это, вероятно, не то, что вам обычно нужно.
5. Интерактивный «сброс» выбранных частей файлов
git checkout -p
—patch можно также использовать для выборочного сброса частей отслеживаемых файлов. Я задал этой команде псевдоним git discard.
Узнать больше: git help checkout
6. Переключение в предыдущую ветку
git checkout –
Эта команда позволяет вам быстро переключиться на ранее просматриваемую ветку. Знак дефиса это псевдоним предыдущей ветки. Его можно использовать и с другими командами.
7. Сброс всех локальных изменений
git checkout .
Если вы уверены, что все ваши локальные изменения можно сбросить, то для одновременного сброса вы можете использовать символ точки. Тем не менее, хорошей практикой будет всегда использовать checkout —patch.
8. Показать изменения
git diff –staged
Эта команда показывает все подготовленные изменения (проиндексированные). Если вы введете просто git diff, будут показаны изменения только в рабочей директории.
Узнать больше: git help diff
9. Локальное переименование веток
git branch -m old-name new-name
Если вы хотите переименовать ветку, в которой находитесь на данный момент, можно сократить команду:
git branch -m new-name
Узнать больше: git help branch
10. Переименование веток удаленно
Чтобы переименовать ветку в удаленном репозитории после того как вы переименовали ее локально, вам нужно сначала удалить эту ветку в удаленном репозитории, а затем снова залить переименованную ветку.
git push origin :old-namegit push origin new-name
11. Открыть все файлы с конфликтами одновременно
Перемещение (rebasing) может приводить к конфликтам. Следующая команда откроет все файлы, где нужно разрешить эти конфликты.
Эта команда покажет лог изменений, представленных по каждому коммиту за последние две недели.
13. Удаление файла из последнего коммита
Скажем, вы сделали коммит файла по ошибке. Этот файл можно быстро удалить из последнего коммита путем комбинации команд rm и commit —amend:
git rm –cached git commit –amend
Шпаргалка программиста по работе с Git
28 декабря 2011
Некоторое время назад я открыл для себя Git. И знаете, я проникся. То есть, по-настоящему проникся. Теперь я использую Git не только на работе (где я с ним, собственно, познакомился), но и для своих проектиков, которые я стал хранить на BitBucket. Последний начал поддерживать Git относительно недавно. В отличие от GitHub, BitBucket позволяет совершенно бесплатно создавать как открытые, так и закрытые репозитории.
В чем состоит отличие Git от Subversion?
Главное отличие Git от Subversion заключается в том, что Git — распределенная система контроля версий. Звучит ужасающе, но на практике это означает очень простую вещь. Каждый разработчик держит у себя на диске отдельный репозиторий. Обратите внимание — не копию репозитория, не некоторые бранчи, а тупо отдельный и при этом абсолютно полноценный репозиторий.
Пока мы работаем в рамках своего репозитория, все происходит в точности, как в Subversion. Мы коммитим и откатываем изменения, создаем, мержим и удаляем бранчи, разрешаем конфликты и тд. Помимо этого, предусмотрены команды для работы с репозиториями на удаленных машинах. Например, «git push» означает мерж локальных изменений в удаленный репозиторий, а «git pull» — наоборот, мерж изменений из удаленного репозитория в локальный. Обмен данными по сети обычно происходит с использованием протокола SSH.
В результате имеем:
Git присущи все те же преимущества от использования VCS, что мы получаем в Subversion.
Git дает нам нормальное шифрование «из коробки», безо всяких танцев с бубнами, как в случае с Subversion.
Если сервер с «главным» репозиторием, куда пушат свои изменения все разработчики (хотя формально в Git нет никакого «главного» репозитория), вдруг прилег — ничего страшного. Делаем коммиты в локальный репозиторий и ждем, когда сервер вернется.
Даже если сервер доступен, все равно удобнее сделать пяток локальных коммитов, а затем отправить их на сервер одним пушем.
Сервер вообще не нужен. Вы можете использовать Git только локально. И не обязательно для работы с исходниками. Например, можно использовать Git для того, чтобы иметь возможность откатиться к предыдущим версиям файлов (каких-нибудь электронных таблиц) или вернуть случайно удаленные.
Git не раскидывает по каталогам служебную информацию (помните «.svn»?), вместо этого она хранится только в корне репозитория.
Git нынче очень моден (хотя это далеко не единственная распределенная система контроля версий, например, есть Mercurial и Darcs), в связи с чем растет число разработчиков, использующих его. Как следствие, используя Git, легче получить помощь на каком-нибудь форуме или собрать команду разработчиков, знакомых с этой VCS.
Существует множество полезных утилит для работы с Git — Qgit, gitk, gitweb и другие. «Из коробки» есть импорт и экспорт в/из Subversion/CVS.
Git поддерживают многие хостинги репозиториев (GitHub, BitBucket, SourceForge, Google Code, …) — есть из чего выбрать.
Большой популярностью пользуется GitHub. Используя Git, вы увеличиваете вероятность того, что кто-то захочет безвозмездно написать патч для вашего open source проекта.
Пример использования Git
Я использовал Git при написании программы из заметки Генерация почти осмысленных текстов на Haskell, сидя под своей любимой FreeBSD. Вот как примерно выглядела моя работа с Git.
В первую очередь необходимо поставить Git:
pkg_add -rgit
Затем создаем пару ssh ключей, если не создавали ее ранее:
ssh-keygen cat ~/.ssh/id_rsa.pub
Заходим на БитБакет, создаем git-репозиторий под новый проект, а в свойствах аккаунта прописываем свой открытый ssh-ключ. Затем клонируем репозиторий:
cd ~/projects/haskell git clonegit@bitbucket.org:afiskon/hs-textgen.git cd hs-textgen
Делаем какие-то изменения:
echotest> TODO.TXT
Добавляем новый файл в репозиторий и делаем коммит:
git add TODO.TXT git commit-a
Поскольку я не указал описание коммита, запускается редактор VIM, с помощью которого я и ввожу описание. Затем я отправляю все сделанные мною изменения на БитБакет:
git push origin
Допустим, теперь я хочу сделать некоторые изменения в проекте, но не уверен, выйдет ли из этого что-то хорошее. В таких случаях создается новая ветка:
git branch new_feature git checkout new_feature
Работаем с этой веткой. Если ничего хорошего не вышло, возвращаемся к основной ветке (она же «trunk» или «ствол»):
git checkout master
Если вышло что-то хорошее, мержим ветку в master (о разрешении конфликтов рассказано в следующем параграфе):
git commit-a# делаем коммит всех изменений в new_feature git checkout master # переключаемся на master git merge new_feature # мержим ветку new_feature
Не забываем время от времени отправлять наш код на BitBucket:
git push origin
Если мы правим код с нескольких компьютеров, то перед началом работы не забываем «накатить» в локальный репозиторий последнюю версию кода:
git pull origin
Работа в команде мало чем отличается от описанного выше. Только каждый программист должен работать со своей веткой, чтобы не мешать другим программистам. Одна из классических ошибок при начале работы с Git заключается в push’евсех веток, а не только той, с которой вы работали. Вообще я бы советовал первое время перед выполнением каждого push делать паузу с тем, чтобы подумать, что и куда сейчас уйдет. Для большей безопасности советую при генерации ssh-ключей указать пароль. Тогда каждый запрос пароля со стороны Git будет для вас сигналом «Эй, ты делаешь что-то, что затронет других».
Fun fact! Нравится статья? Поддержи автора, чтобы он мог писать больше полезных статей!
Для работы с Git под Windows можно воспользоваться клиентом TortoiseGit. Если память не подводит, для работы ему нужен Git for Windows. Для генерации ключей можно воспользоваться утилитой PuTTyGen. Только не забудьте экспортировать открытый ключ в правильном формате, «Conversions → Export OpenSSH key».
Следует отметить, что мне лично TortoiseGit показался не слишком удобным. Возможно, это всего лишь дело привычки, но мне кажется намного удобнее работать с Git из консоли, чем с помощью контекстного меню в Проводнике.
Шпаргалка по командам
В этом параграфе приведена сухая шпаргалка по командам Git. Я далеко не спец в этой системе контроля версий, так что ошибки в терминологии или еще в чем-то вполне возможны. Если вы видите в этом разделе ошибку, отпишитесь, пожалуйста, в комментариях.
Создать новый репозиторий:
git init project-name
Если вы планируете клонировать его по ssh с удаленной машины, также скажите:
git config–bool core.bare true
… иначе при git push вы будете получать странные ошибки вроде:
Refusing to update checked out branch: refs/heads/master By default, updating the current branch in a non-bare repository is denied, because it will make the index and work tree inconsistent with what you pushed, and will require ‘git reset –hard’ to match the work tree to HEAD.
Клонировать репозиторий с удаленной машины:
git clonegit@bitbucket.org:afiskon/hs-textgen.git
Если хотим пушить один код в несколько репозиториев:
Разрешение конфликтов (когда оные возникают в результате мержа):
git mergetool
Создание тэга:
git tag some_tag # за тэгом можно указать хэш коммита
Удаление untracked files:
git clean-f
«Упаковка» репозитория для увеличения скорости работы с ним:
git gc
Иногда требуется создать копию репозитория или перенести его с одной машины на другую. Это делается примерно так:
mkdir-p/tmp/git-copy cd/tmp/git-copy git clone–baregit@example.com:afiskon/cpp-opengl-tutorial1.git cd cpp-opengl-tutorial1.git git push–mirrorgit@example.com:afiskon/cpp-opengl-tutorial2.git
Следует отметить, что Git позволяет использовать короткую запись хэшей. Вместо «d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4» можно писать «d8578edf» или даже «d857».
Дополнение: Также в 6-м пункте Мини-заметок номер 9 приводится пример объединения коммитов с помощью git rebase, а в 10-м пункте Мини-заметок номер 11 вы найдете пример объединения двух репозиториев в один без потери истории.
Работа с сабмодулями
Более подробно сабмодули и зачем они нужны объясняется в заметке Простой кроссплатформенный OpenGL-проект на C++. Здесь упомянем самое главное.
Обновление сабмодулей, например, если после git pull поменялся коммит, на который смотрит сабмодуль:
git submodule update
Удаление сабмодуля производится так:
Скажите git rm–cached имя_сабмодуля;
Удалите соответствующие строчки из файла .gitmodules;
Также грохните соответствующую секцию в .git/config;
Сделайте коммит;
Удалите файлы сабмодуля;
Удалите каталог .git/modules/имя_сабмодуля;
Что могу посоветовать
Если мы работаем в одиночку, то удаленный репозиторий нужен только для сохранения резевной копии. Скорее всего, мы будем в него только пушить.
Но при работе в команде имеет смысл подумать над такими вещами:
пушить коммиты почаще, чтобы коллеги быстрее получали доступ к новым изменениям
пулиться почаще – обратная ситуация, почаще получать свежие изменения
всегда пультесь с флажком ребейза – git pull –rebase origin master
не удивляйтесь, что при пуллах и пушах могут возникать подобные ситуации, как мы рассматривали выше
не стесняйтесь спрашивать коллег, если увидели незнакомую ситуацию
больше практикуйтесь. Посадите домашний проект на git и работайте с ним
Не переживайте, если иногда будете чувствовать себя, как друзья ниже. Это нормально, новый инструмент не осваивается за 5 минут. Немного практики, и мы будем понимать, почему иногда git ведет себя не так, как хочется, и главное, будем понимать, как это исправить.
В следующем уроке мы узнаем, что такое ветки и будем активно работать с ними. Там мы будем активно использовать git push и git pull, и это поможет закрепить уже пройденный материал.
Рассматриваемая сегодня команда по умолчанию имеется во всех дистрибутивах Linux, поэтому мы не будем устанавливать какие-либо рамки в плане сборок. Дополнительно отметим, что df выводит не только количество свободного места, но и название томов вместе с точками монтирования, что делает ее более функциональной. Теперь, когда вы знаете все о предназначении данной утилиты, рассмотрим подробнее ее синтаксис. Сразу отметим, что он довольно простой, и если вы планируете задействовать df на постоянной основе, потребуется всего несколько практических занятий, чтобы освоить все аргументы и опции.
Как пользоваться df
Чтобы посмотреть доступное пространство на всех примонтированных разделах и информацию о них достаточно набрать:
df
Утилита отображает стандартный набор колонок, но понять в ее выводе что-то с первого раза сложно. Все данные выводятся в килобайтах. Теперь давайте попросим утилиту выводить данные в более читаемом формате:
df -h
Это самое популярное сочетание опций, потому что оно дает максимально понятную информацию и уже можно судить о том, что происходит на диске. Например, мы видим, что в домашней папке уже занято 87% места и, возможно, пора что-то удалить. Если задать опцию -a, вы можете получить информацию обо всех файловых системах известных ядру, которые были смонтированы:
df -a
Здесь отображается огромное количество виртуальных файловых систем ядра. Если вы хотите вывести только информацию про реальные файловые системы на жестком диске можно использовать опцию -x чтобы отфильтровать все tmpfs:
df -x tmpfs
Также можно отфильтровать две файловые системы:
df -x devtmpfs -x tmpfs
Или же указать файловую систему, которую нужно отображать:
df -t ext4
Также можно указать интересующий вас раздел, как вы видели в синтаксисе команды:
df -h /dev/sdb6
С помощью опции -i вы можете посмотреть информацию про состояние inode в вашей файловой системе:
df -hi /dev/sdb6
Видео, о том, как пользоваться утилитой df:
Стандартное действие команды
Как известно, практически все команды в Линукс отвечают за выполнение каких-то операций, если ввести их без дополнительных опций. К сегодняшней утилите это тоже относится. По сути, она выводит на экран всю необходимую информацию, однако прочесть ее быстро будет проблематично. Впрочем, давайте вкратце рассмотрим, как это выглядит.
Для начала, соответственно, придется запустить «Терминал». Сделайте это удобным для себя образом, например, через меню приложений или стандартную горячую клавишу Ctrl + Alt + T.
Здесь введите df и нажмите на Enter. Эта утилита корректно функционирует даже без прав суперпользователя, поэтому можно обойтись без аргумента sudo.
Через несколько секунд вы увидите множество строк, отображающих сведения о монтированных файловых системах и дисках. Обратите внимание на столбцы, чтобы понимать, какой из них за что отвечает.
Как заметно на предыдущем скриншоте, каждый показатель отображается в байтах, что и усложняет общее восприятие таблицы. Дополнительно отсутствует какая-либо фильтрация по файловым системам и устройствам. Именно поэтому и необходимо использовать отдельные опции, чтобы повысить комфорт взаимодействия с рассматриваемой утилитой.
Основные опции df
Как уже было сказано ранее, работать с df без опций можно, но это не принесет должного результата для тех, кто желает моментально получить интересующую информацию, поэтому и следует разобраться с синтаксисом. В нем нет ничего сложного, а все аргументы можно описать таким образом:
-a, –all. Этот аргумент следует вписывать только в том случае, если вы заинтересованы в отображении абсолютно всех существующих файловых систем, включая виртуальные, недоступные и эмуляторы.
-h обязателен к применению при желании получить сведения о размерах не в байтах, а в мегабайтах или гигабайтах.
-H — при этой опции мегабайты будут опускаться, а все размеры сформатируются в гигабайты.
-k — данная опция используется реже остальных, поскольку является заменой -h и -H и показывает цифры в килобайтах.
-P пригодится тем пользователям, кто заинтересован в получении информации формата POSIX.
-t, –type — это одна из опций-фильтров. Укажите -t, а затем введите название файловой системы, чтобы в результатах отображались только строки, связанные с ней.
-x функционирует примерно так же, но по методу исключения. Введенные файловые системы после этого аргумента отображаться не будут.
–output. На предыдущем скриншоте видно, что все сведения показываются в столбцах. Некоторые из них не нужны пользователю, в таком случае применяется данная опция. Используйте варианты ‘pcent’, ‘fstype’, ‘itotal’, ‘iused’, ‘iavail’, ‘source’, ‘size’, ‘used’, ‘ipcent’, ‘avail’, ‘target’, ‘pcent’ и ‘file’, чтобы составить собственные столбцы.
Теперь вы знаете абсолютно обо всех опциях, использующихся при написании рассматриваемой команды. Существует вариант с указанием конкретного раздела или диска, но об этом мы поговорим немного позже. Сейчас давайте более детально разберемся с каждым аргументом.
Начнем с упрощения читаемости полученных результатов. Для этого введите df -h, чтобы отобразить строки в гигабайтах или мегабайтах, о чем уже было сказано ранее.
Ознакомьтесь с появившимися строками. Как видите, таблица действительно стала понятнее.
Далее можно написать df – a, если хотите показать даже недоступные и виртуальные файловые системы.
Исключите одну ФС через df -x tmpfs.
Если необходимо создать фильтр сразу для нескольких файловых систем, придется писать каждую опцию отдельно, что выглядит так: df -x devtmpfs -x tmpfs.
Теперь затронем и отображение только выбранной системы. Для этого применяется опция -t, а команда имеет примерный вид df -t ext4, если речь идет о ФС ext4.
По текущему запросу вывелась только одна строка.
Ничего не помешает вам активировать сразу несколько опций, если это необходимо. Достаточно будет просто вводить их последовательно, отделяя пробелом так, как это было показано при массовом фильтре файловых систем.
Взаимодействие с разделами и дисками
Выше мы не уточнили одну важную деталь, поскольку решили вынести ее в отдельный раздел и рассказать подробнее. Дело в том, что к df можно применять не только опции, но и указывать определенные логические тома или жесткие диски. Тогда синтаксис обретает вид df + опции + устройство. Обратите внимание на скриншот ниже: там указана команда df -h /dev/sda1. Это означает, что при активации будет выведена информация в читабельном виде о файловой системе /dev/sda1. Если вы еще не знаете название своего диска, напишите просто df -h и определите его, отталкиваясь от свободного или общего пространства.
Сегодня вы узнали о стандартной утилите под названием df. Это довольно полезный инструмент, позволяющий быстро просмотреть список весь дисков и размер свободного пространства на них, применяя определенные опции. Если вас заинтересовала тема популярных команд в Linux, воспользуйтесь представленным по следующей ссылке руководством.
Команда du – синтаксис и опции
Disk Usage – именно так интерпретируется название команды du. Она была написана ещё в самой первой версии UNIX (в определённом роде предшественницы Linux), еще в стенах одной из лабораторий компании AT&T. Этот факт даёт понять, насколько важно следить за дисковым пространством, а также анализировать его при наличии специализированных программных инструментов, ведь du – одна из самых первых утилит из стандартного комплекта UNIX/Linux.
Итак давайте узнаем что у нас занимает место
du –max-depth=1 -h /
Более подробное описание команды du и ключей вы можете прочитать ниже. Вывод будет следующий
Отсюда мы видим что самый большой каталог у нас /var. Посмотрим что у на занимает место в каталоге /var
du –max-depth=1 -h /var
видим что это папка log
Теперь смотрим /var/log
du -ah /var/log
и вот здесь мы уже видим пять самых больших файлов с логами, именно они и заняли все место на диске. Давайте рассмотрим команду du подробнее.
Согласно описанию из официального man-руководства, утилита du суммирует использование дискового пространства набора элементов, рекурсивно с каталогами. Синтаксис команды не простой, а очень простой, поскольку представляет собой классический прототип команды Linux:
du [КЛЮЧ]… [что сканировать]…
Если дать команду du без параметров, то по-умолчанию будет выведен список всех каталогов и подкаталогов для текущего каталога. Также по-умолчанию единицей измерения объёма является 1024 байта или 512 байт, в зависимости от конфигурации используемой системы:
du code_text.txt 4 code_text.txt
Как видно, code_text.txt занимает 4 килобайта (т. к. 1024 байта = 1 килобайт) дискового пространства. То же самое и с папками, но по-умолчанию будет указан общий размер папки без детализации по файлам и подкаталогам. В следующей таблице приведены опции команды du:
Опция
Назначение
-a
Выводит объём для всех элементов, а не только для каталогов
—apparent-size
Выводит действительные размеры, но не занимаемое место а диске
-B,
—block-size=РАЗМЕР
Задаёт использование определённых единиц измерения объёма
-b,
—bytes
То же самое, что и «—block-size —apparent-size=1»
-с,
—total
Выводит общий результат
-D,
—dereference-args
Указывает обрабатывать только те символьные ссылке, которые перечислены в командной строке
-d, —max-depth=N
Выводит общий размер только до N-го уровня (включительно) дерева каталогов
-h,
—human-readable
Выводит размеры в удобном для человека виде
-k
Эквивалентно —block-size=1K
-L,
—dereference
Разыменовывает символьные ссылки
-l,
—count-links
Складывает размеры, если несколько жёстких ссылок
-m
Эквивалентно —block-size=1M
-t,
—threshold=РАЗМЕР
Исключает элементы, которые меньше РАЗМЕРА, если это значение положительно или размер которых больше, если это значение отрицательно
—time
Выводит время последнего изменения в каталоге и во всех подкаталогах
—time=АТРИБУТ
Выводит указанный атрибут времени (atime, access, use, ctime, status), а не время последнего изменения
—time-style=СТИЛЬ
Выводит время в указанном в СТИЛЬ формате: full-iso, long-iso, iso
-X,
—exclude-from=ФАЙЛ
Исключает все эдементы, которые совпадают с шаблоном из ФАЙЛа
—exclude=ШАБЛОН
Исключает элементы, совпадающие с шаблоном
-x,
—one-file-system
Пропускать каталоги из других систем
Используемые командой du единицы измерения размера (или объёма) задаются в формате «цифраБуква», где цифра — это коэффициент, а Буква — степень единицы измерения, например: 5K = 5 * 1024 = 5120 = 5 килобайт и по аналогии для M – мегабайт, G – гигабайт.
Примеры использования команды du
Узнать общий размер каталога (например с резервными копиями):
$ du -sh ~/home/backups 19G /home/john/backups
Вывод размеров всех подкаталогов (рекурсивно):
$ du -h ~/home/backups/ 3,2M /home/john/backups/vhosts/ssl 1,5M /home/john/backups/vhosts 5,0M /home/john/backups
С фильтрацией в зависимости от размера файла/каталога:
$ du -ha -t2M ~/home/backups/ 3,2M /home/john/backups/vhosts/ssl 5,0M /home/john/backups
Как видно, были отброшены файлы/каталоги размером меньше 2 мегабайт. Следующая команда, напротив — исключит из вывода только файлы/каталоги больше 2 мегабайт:
$ du -ha ~/home/backups/ 4,0K /home/john/backups/.directory 764K /home/john/backups/scheme.txt 1,5M /home/john/backups/vhosts
Свободное место на диске (df)
Для просмотра свободного и занятого места на разделах диска в Linux можно воспользоваться командой df.
Первым делом можно просто ввести команду df без каких-либо аргументов и получить занятое и свободное место на дисках. Но по умолчанию вывод команды не очень наглядный — например, размеры выводятся в КБайтах (1К-блоках).
Примечание: df не отображает информацию о не смонтированных дисках.
Размер конкретного диска
Команде df можно указать путь до точки монтирования диска, размер которого вы хотите вывести:
df -h /dev/sda9 Файл.система Размер Использовано Дост Использовано% Cмонтировано в /dev/sda9 174G 25G 141G 15% /
Размер папок на диске (du)
Для просмотра размеров папок на диске используется команда du. Если просто ввести команду без каких либо аргументов, то она рекурсивно проскандирует вашу текущую директорию и выведет размеры всех файлов в ней. Обычно для du указывают путь до папки, которую вы хотите проанализировать. Если нужно просмотреть размеры без рекурсивного обхода всех папок, то используется опция -s (–summarize). Также как и с df, добавим опцию -h (–human-readable).
Размер конкретной папки:
du -sh ./Загрузки 3,4G ./Загрузки
Размеры файлов и папок внутри конкретной папки:
du -sh ./Загрузки/* 140K ./Загрузки/antergos-17.1-x86_64.iso.torrent 79M ./Загрузки/ubuntu-amd64.deb 49M ./Загрузки/data.zip 3,2G ./Загрузки/Parrot-full-3.5_amd64.iso 7,1M ./Загрузки/secret.tgz Войдите, чтобы ставить лайкимне нравитсяЛайков: 0 войдите, чтобы ставить лайки
Отсортировать папки по объёму
du -s *| sort -nr
Покажет объём в килобайтах с сортировкой – самые большие папки/файлы сверху. Если нужно в мегабайтах:
du -sm *| sort -nr
К сожалению более удобный ключик h (“human” – автовыбор кило-мега-гига) в данном случае (du -sh *| sort -nr) не подойдёт, т.к. сортировка идёт по “числам” (не учитывая, что это KB/MB/GB). Для этого придётся использовать длинную команду:
du -s *|sort -nr|cut -f 2-|while read a;do du -hs $a;done
linux
Недавно добавленные
Как изменить пользователя для сайта и базы данных в VestaCP
Как изменить пользователя для сайта и базы данных в VestaCP
linux
VestaCP
Размеры папок и дисков в Linux. Команды df и du
Для просмотра свободного и занятого места на разделах диска в Linux можно воспользоваться командой df. Для просмотра размеров папок на диске используется команда du.
linux
Как обновить ImageMagick с 6.7 до 7.0 в Centos 7
В этом руководстве мы покажем вам, как обновить ImageMagick с 6.7 до 7.0 в Centos 7
Centos
ImageMagick
Регулярное выражение. Валидация номера телефона
Как проверить номер мобильного телефона? Проверка правильности, введенного номера телефона является не сложной, но важной задачей. Если пользователь введет некорректный номер, то смс сообщение до него не дойдет.
Регулярные выражения
PHP
примеры
Регулярные выражение для поиска IP адресов
Ниже представлены регулярные выражения, которые помогут найти все IP адреса в строке.
Данные регулярные выражения соответствуют шаблонам IPv4 и IPv6 адресов.