Добавлено 10 мая 2021 в 21:48
Цель данной статьи – объяснить, как получить доступ к параметрам, передаваемым в HTTP GET-запросах, отправленных на веб-сервер, развернутый на ESP8266.
Введение
Параметры HTTP GET-запроса появляются в конце пути URL и позволяют передавать дополнительную информацию. Эти параметры составляют строку запроса и отделяются от пути в URL-адресе знаком вопроса (‘?‘).
Каждый параметр запроса указывается в формате «ИмяПараметра=ЗначениеПараметра«. Если необходимо передать несколько параметров, их следует разделить амперсандами (‘&‘).
Итак, ниже показан пример URL-адреса с параметрами GET-запроса.
http://website.com/path?parameter1=value1¶meter2=value2
Таким образом, GET-запрос можно использовать для передачи на ESP8266 дополнительной информации, которая на веб-сервере может быть прочитана функциями обработки.
Обратите внимание, что в данной статье термины параметр и аргумент запроса используются в одинаковом значении при обращении к значениям, переданным в URL-адресе.
Если еще вы не знакомы с технологией создания веб-сервера на базе Wi-Fi модуля ESP8266, то сначала просмотрите следующие статьи:
- Создание простого веб-сервера на ESP8266 NodeMCU в Arduino IDE
- Взаимодействие ESP8266 NodeMCU с датчиками температуры и влажности DHT11 и DHT22 и вывод показаний, используя веб-сервер
- Отображение показаний с нескольких DS18B20 с помощью веб-сервера на ESP8266 NodeMCU
- Создаем простую метеостанцию на ESP8266 с BME280
Код
Инициализирующая часть кода почти такая же, какую мы рассматривали в предыдущем посте о настройке HTTP-сервера на ESP8266, поэтому здесь будет представлено только краткое резюме. Мы начинаем с подключения к сети Wi-Fi, а затем определяем, по каким URL-адресам наш веб-сервер будет прослушивать входящие HTTP-запросы. В данном примере ESP8266 работает в режиме Wi-Fi Station (STA).
Для каждого URL-адреса мы указываем функцию обработки, которая будет выполняться при запросе по этому URL-адресу.
В этом конкретном случае мы определим 2 URL-адреса. В первом мы сможем получить любое количество параметров запроса с любыми именами и значениями. Затем наша функция обработки сформирует и вернет сообщение с ними. Имя этого URL-адреса будет genericArgs
. Обратите внимание на заглавную букву ‘A’, которую необходимо учитывать при доступе к URL-адресу, поскольку он будет чувствителен к регистру.
Другой URL-адрес также получает любое количество параметров запроса, но будет искать конкретное имя параметра и выводить сообщение «not found» (не найдено), если его нет.
Мы проанализируем функции обработки этих двух URL-адресов позже. Сейчас приведем полный код для инициализации веб-сервера.
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
/* Установите здесь свои SSID и пароль */
const char* ssid = "YourNetworkName"; // SSID
const char* password = "YourPassword"; // пароль
// Объект веб-сервера. Будет прослушивать порт 80 (по умолчанию для HTTP)
ESP8266WebServer server(80);
void setup()
{
Serial.begin(115200);
delay(100);
Serial.println("Connecting to ");
Serial.println(ssid);
// подключиться к вашей локальной wi-fi сети
WiFi.begin(ssid, password);
// проверить, подключился ли wi-fi модуль к wi-fi сети
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected..!");
Serial.print("Got IP: ");
Serial.println(WiFi.localIP());
server.on("/genericArgs", handleGenericArgs); // привязать функцию обработчика к URL-пути
server.on("/specificArgs", handleSpecificArg); // привязать функцию обработчика к URL-пути
server.begin(); // запуск сервера
Serial.println("HTTP server started");
}
void loop()
{
server.handleClient(); // обработка входящих запросов
}
Теперь рассмотрим код двух функций-обработчиков для определенных URL-адресов. И снова библиотека ESP8266WebServer
предоставляет нам простые в использовании функции для доступа к параметрам запроса, передаваемым в HTTP-запросах.
Проверка всех параметров запроса
В функции-обработчике, которая обрабатывает общие параметры запроса, мы сначала проверим, сколько их было передано. Для этого мы вызываем метод args
для объекта server
. Этот метод вернет количество параметров запроса, переданных в HTTP-запросе, который инициировал выполнение функции обработчика.
String message = "Number of args received:";
message += server.args();
Затем мы выполним итерацию через каждый параметр и напечатаем имя аргумента и его значение.
Для определения имени параметра мы будем использовать метод argName
объекта сервера, который принимает в качестве параметра целое число (номер параметра) и возвращает имя аргумента в этой позиции. Отсчет параметров начинается с нуля.
Для определения значения параметра мы будем использовать метод arg
, который также принимает в качестве параметра целое число (номер параметра) и возвращает значение этого параметра.
Итак, мы создаем цикл for
от 0 до количества аргументов минус один (отсчет аргументов начинается с нуля) и добавляем в нашу строку ответа имя и значение параметра запроса.
for (int i = 0; i < server.args(); i++)
{
message += "Arg nº" + (String)i + " –>";
message += server.argName(i) + ": ";
message += server.arg(i) + "n";
}
И в конце мы возвращаем сообщение, созданное с помощью метода send
объекта сервера, как мы это делали ранее, только в этом случае, для примера, мы возвращаем простой текст. Мы возвращаем его как «text/plan» и с HTTP-кодом OK.
server.send(200, "text/plain", message);
Полный код функции обработчика показан ниже.
void handleGenericArgs() //обработчик
{
String message = "Number of args received:";
message += server.args(); // получить количество параметров
message += "n"; // переход на новую строку
for (int i = 0; i < server.args(); i++)
{
message += "Arg nº" + (String)i + " –> "; // добавить текущее значение счетчика
message += server.argName(i) + ": "; // получить имя параметра
message += server.arg(i) + "n"; // получить значение параметра
}
server.send(200, "text/plain", message); // ответить на HTTP запрос
}
Поиск конкретного параметра запроса
Теперь рассмотрим функцию, которая ищет конкретное имя параметра и печатает его значение, если оно найдено. В этом случае мы будем искать аргумент с именем «Temperature«. Еще раз, мы должны учитывать, что имя аргумента чувствительно к регистру, и поэтому, если мы передадим в качестве параметра «temperature«, он не будет найден.
Мы снова вызываем упомянутый ранее метод arg
, но на этот раз он получит в качестве входного аргумента строку, содержащую имя параметра запроса, который мы хотим найти. Если параметр не найден, функция вернет пустую строку (соответствующую «»). Если параметр найден, функция вернет значение параметра запроса.
Итак, в нашем коде мы вызываем метод arg
, ищем возвращаемое значение и формируем возвращаемую строку, чтобы включить ее в ответ на запрос. И в конце возвращаем HTTP-ответ с помощью метода send
, как мы это делали в предыдущей функции обработчика. Код функции показан ниже.
void handleSpecificArg()
{
String message = "";
if (server.arg("Temperature")== "")
{ // параметр не найден
message = "Temperature Argument not found";
}
else
{ // параметр найден
message = "Temperature Argument = ";
message += server.arg("Temperature"); // получить значение параметра запроса
}
server.send(200, "text/plain", message); // возвращаем HTTP-ответ
}
Конечные результаты
Мы можем протестировать наш HTTP веб-сервер с помощью веб-браузера, такого как Google Chrome. Первый пример, показанный на рисунке 1, показывает, что происходит, когда мы обращаемся к URL-адресу «/genericArgs» без каких-либо параметров запроса.
Поскольку мы не отправляли никаких параметров, выходные данные показывают, что количество полученных аргументов равно нулю.
На скриншоте 2 показано, что произойдет, если мы обратимся к тому же URL-адресу, но теперь передадим параметры запроса. В этом случае мы отправляем 3 параметра, которые представляют дату. Как можно видеть, в ответе сервера указано, что было получено 3 аргумента, а затем перечислены имена и значения этих аргументов.
На скрнишоте 3 показано, что произойдет, если мы обратимся к URL-адресу /specificArg с параметром запроса, отличающимся от того, что мы ожидаем. В этом случае мы отправили «Luminosity» вместо «Temperature«, поэтому в ответе на HTTP-запрос сказано, что аргумент «Temperature» не найден.
Наконец, как показано на рисунке 4, когда мы запрашиваем этот же URL-адрес, отправляя правильный параметр запроса, наша функция обработчика распознает его и возвращает его значение.
Теги
Arduino IDEESP8266EspressifHTTPIoT (интернет вещей)NodeMCUВеб-сервер
Объект «Параметры сеанса» предназначен для хранения значений определенных типов для каждого клиентского сеанса на время работы этого сеанса. По сути, это некая глобальная (???) переменная, привязанная к сеансу текущего пользователя.
Параметры сеанса задаются только программно, универсального интерфейса для установки параметров сеанса в системе нет.
Инициализацию параметров сеанса следует выполнять в модуле сеанса (см. ниже), а их значения рекомендуется использовать в запросах и условиях ограничения доступа к данным для текущего сеанса. Если параметр не определен, во время обращения к нему будет вызвана ошибка.
Открытие модуля сеанса выполняется с помощью контекстного меню в окне конфигурации:
Примеры параметров сеанса 1С:
ТекущийПользователь
(типСправочникСсылка.Пользователи
);ОбменДаннымиВключен
(типБулево
);РабочееМестоКлиента
(типСправочникСсылка.РабочиеМеста
).
Параметры сеанса доступны из встроенного языка 1С:Предприятия, например:
ЗначениеТекущегоПользователя = ПараметрыСеанса.ТекущийПользователь;
В этом случае, для установки или получения значения параметра сеанса текущий пользователь должен быть наделен соответствующим правом.
Также они могут использоваться в текстах ограничений доступа, например:
ГДЕ Документ.Пользователь = &ТекущийПользователь
В последнем случае для получения значения параметра сеанса наличия у текущего пользователя соответствующего права не требуется.
Особенности использования параметров сеанса 1С:
- Не рекомендуется использовать параметры сеанса для хранения значений, используемых исключительно в клиентской логике. Поскольку в клиент-серверном варианте 1С:Предприятия параметры сеанса хранятся на сервере, то любое их считывание или изменение в процессе работы на клиенте потребует дополнительного серверного вызова и увеличит объем передаваемых данных с клиента на сервер и обратно. В таких случаях следует использовать глобальные переменные модуля управляемого приложения (и обычного приложения – для режима обычного приложения, соответственно).
- Не рекомендуется использовать параметры сеанса для кеширования вычисленных значений, которые многократно используются в серверной бизнес-логике. В таких случаях следует определять функцию в серверном общем модуле с повторным использованием возвращаемых значений. Исключение составляют случаи, когда время вычисления результата функции модуля с повторным использованием возвращаемых значений соизмеримо с периодом сброса платформенного кеша.
- Не следует производить инициализацию параметров сеанса при запуске программы, так как:
- не все параметры сеанса запрашиваются из кода конфигурации при запуске программы;
- при работе программы возможно намеренное обнуление значений параметров сеанса из кода на встроенном языке.
Материал с сайта https://its.1c.ru/db/v8std#content:-2145783234:hdoc
Правильным способом установки значений параметров сеанса является установка значений «по требованию» в обработчике УстановкаПараметровСеанса
модуля сеанса. Т.е. параметры сеанса должны быть инициализированы только в тот момент, когда к ним происходит первое обращение, как к неустановленным.
Пример установки параметров сеанса «по требованию»:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)
Если ИменаПараметровСеанса = Неопределено Тогда
// Раздел установки параметров сеанса при начале сеанса (ИменаПараметровСеанса = Неопределено).
//Выполняется установка параметров сеанса, которые можно инициализировать при начале работы системы
Иначе
// Установка параметров сеанса «по требованию»
// Параметры сеанса, инициализация которых требует обращения к одним и тем же
// данным, следует инициализировать сразу группой. Для того, чтобы избежать
// их повторной инициализации, имена уже установленных параметров сеанса сохраняются
// в массиве УстановленныеПараметры
УстановленныеПараметры = Новый Массив;
Для Каждого ИмяПараметра Из ИменаПараметровСеанса Цикл
УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
// Установить значения параметров сеанса и возвратить имена установленных
// параметров сеанса в параметре УстановленныеПараметры.
//
// Параметры
// ИмяПараметра — Строка — имя параметра сеанса, который требуется установить (проинициализировать).
// УстановленныеПараметры — Массив, в который добавляются имена установленных (проинициализированных) параметров.
Процедура УстановитьЗначениеПараметраСеанса(Знач ИмяПараметра, УстановленныеПараметры)
// Если в данном вызове УстановкаПараметровСеанса параметр ИмяПараметра уже был установлен — возврат.
Если УстановленныеПараметры.Найти(ИмяПараметра) <> Неопределено Тогда
Возврат;
КонецЕсли;
Если ИмяПараметра = «ТекущийПользователь» Тогда
ПараметрыСеанса.ТекущийПользователь = <значение>;
ПараметрыСеанса.<другой параметра сеанса> = <значение>;
УстановленныеПараметры.Добавить(ИмяПараметра);
УстановленныеПараметры.Добавить(«<другой параметра сеанса>»);
КонецЕсли;
КонецПроцедуры
Пример установки текущего пользователя 1С:
- В дереве метаданных создадим новый параметр сеанса —
ТекущийПользователь
, назначим ему тип —СправочникСсылка.Сотрудники
. - В модуле сеанса создадим процедуру, в которой будет определяться текущий параметр сеанса:
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) //ищем Сотрудника по имени пользователя ТекПользователь = Справочники.Сотрудники.НайтиПоНаименованию(ИмяПользователя()); //если не нашли — создаём нового Сотрудника Если ТекПользователь.Пустая() Тогда НовПользователь = Справочники.Сотрудники.СоздатьЭлемент(); НовПользователь.Наименование = ИмяПользователя(); НовПользователь.Записать(); ТекПользователь = НовПользователь.Ссылка; КонецЕсли; //присваиваем параметру сеанса ТекущийПользователь ссылку на справочник Сотрудники ПараметрыСеанса.ТекущийПользователь = ТекПользователь; КонецПроцедуры |
После этого в любом месте конфигурации вы можете узнать, кто текущий пользователь, просто используя конструкцию «ПараметрыСеанса.ТекущийПользователь
».
Windows 10 поставляется с множеством инструментов командной строки, которые помогают управлять конфигурациями сети и решать проблемы. В этой статье будут описаны восемь таких инструментов.
В системе Windows 10 можно легко подключиться к сети и интернету с помощью проводного или беспроводного соединения. Однако иногда возникает необходимость управлять настройками вручную или устранять проблемы с подключением. Именно в таких случаях могут пригодиться встроенные инструменты командной строки.
Почти для любой проблемы Windows 10 предлагает инструмент командной строки. Например, ipconfig и ping являются одними из основных инструментов для просмотра сетевых настроек и устранения проблем с подключением. Если вы имеете дело с проблемой маршрутизации, команда route может показать текущую таблицу маршрутизации для изучения и определения проблем, а с помощью инструмента nslookup можно диагностировать проблемы DNS.
Ещё есть такие инструменты, как arp для устранения проблем с переключением и определения MAC-адреса по IP-адресу. Инструмент командной строки netstat позволяет просматривать статистику всех подключений. Можно задействовать инструмент netsh для отображения и изменения многих аспектов конфигурации сети, таких как проверка текущей конфигурации, сброс настроек, управление настройками Wi-Fi и Ethernet, включение или отключение брандмауэра и многое другое.
В этом руководстве по Windows 10 будут описаны восемь инструментов командной строки, которые дадут возможность управлять и устранять сетевые проблемы на компьютере и в сети.
1. IPConfig
В Windows 10 ipconfig (конфигурация интернет-протокола) является одним из наиболее распространённых сетевых инструментов, позволяющим запрашивать и отображать текущую конфигурацию сети TCP/IP (протокол управления передачей/интернет-протокол). Команда также содержит параметры для выполнения различных действий, таких как обновление параметров протокола динамической конфигурации хоста (DHCP) и системы доменных имен (DNS).
Показать конфигурацию сети
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Введите команду для просмотра информации о конфигурации сети TCP/IP и нажмите ввод:
ipconfigСовет: в командной строке вы можете использовать команду cls, чтобы очистить экран после того, как вам больше не нужна информация от ipconfig.
- Введите следующую команду, чтобы просмотреть всю конфигурацию сети TCP/IP, и нажмите ввод:
ipconfig /all
После выполнения этих действий вы получите обзор всей конфигурации TCP/IP на компьютере.
Обновление сетевых настроек
Чтобы сбросить и обновить конфигурацию сети с помощью командной строки, выполните следующие действия:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Введите команду для удаления текущей конфигурации сети и нажмите ввод:
ipconfig /release - Введите команду для изменения конфигурацию сети и нажмите ввод:
ipconfig /renew
После выполнения этих действий первая команда очистит текущую конфигурацию, а вторая загрузит новые настройки с DHCP-сервера для решения проблем с подключением. Если срок действия динамически назначаемых параметров на сервере не истёк, на устройстве часто можно получить прежний IP-адрес.
Обновление настроек DNS
Для очистки и восстановления текущих записей кеша DNS в Windows 10, выполните следующие действия:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Введите команду для очистки системного кеша DNS на устройстве и нажмите ввод:
ipconfig /flushdns
После выполнения этих действий хранящиеся в кеше DNS Windows 10 записи будут удалены и обновлены. Обычно эта команда нужна, когда вы не можете подключиться к другому компьютеру или веб-сайту с применением имени хоста или домена из-за устаревшей информации в локальном кеше.
2. Ping
Ping является ещё одним важным сетевым инструментом. Он позволяет отправлять сообщения эхо-запроса ICMP (Internet Control Message Protocol) для проверки IP-соединения с другими устройствами, будь то другой компьютер в локальной сети или интернет-сервис.
Проверка подключения устройства
Чтобы проверить подключение к сети с помощью команды ping, выполните следующие действия:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Введите команду для отправки эхо-запроса ICMP для проверки подключения и нажмите ввод:
ping IP-OR-DOMAINВ команде замените IP-OR-DOMAIN на фактический IP-адрес или доменное имя компьютера или службы, которую хотите протестировать.
Например, следующая команда проверяет связь между локальным устройством и маршрутизатором:
ping 10.1.4.1Совет: если вы используете параметр -a (например, ping -a 10.1.4.1), команда преобразует адрес в имя хоста.
- Необязательно. Введите команду для тестирования сетевого стека локального компьютера и нажмите ввод:
ping 127.0.0.1 or ping loopbackПримечание: 127.0.0.1 — это хорошо известный адрес, который называется адресом обратной связи. Когда вы запускаете команду, если вы получаете ответ, это означает, что сетевой стек в Windows 10 запущен и работает. Это то же самое, что пинговать устройство с использованием его собственного сетевого адреса.
После выполнения этих действий ожидается получение четырёх успешных эхо-ответов от пункта назначения. Это означает, что устройство может взаимодействовать с удалённым хостом. Если время ожидания запроса истекло, проблема может быть вызвана множеством причин.
Если вы столкнулись с проблемами подключения, начните проверять локальный компьютер, чтобы убедиться, что сетевой стек работает. Затем проверьте подключение к маршрутизатору, чтобы убедиться, что проблема не в локальной сети. Затем проверьте связь с веб-сайтом, чтобы узнать, есть ли проблема с подключением к интернету или удалённым хостом.
Если удалённое устройство или служба блокируют протокол ICMP, команда ping всегда будет отключаться по таймауту.
Диагностика активности потери пакетов
Команда ping включает себя ряд параметров, к которым можно получить доступ с помощью команды ping /?. Одна из этих опций представляет собой возможность установить время, когда инструмент будет запускаться. Это может помочь при проверке потерянных пакетов при устранении проблем с подключением.
Чтобы запустить команду ping в определённое время, сделайте следующее:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Наберите команду для выполнения пинга до остановки и нажмите ввод:
ping IP-OR-DOMAIN -tВ команде замените IP-OR-DOMAIN на фактический IP-адрес или доменное имя компьютера или службы, которую вы хотите протестировать.
Например, эта команда проверяет связь между локальным устройством и маршрутизатором в течение 60 секунд:
ping 10.1.4.1 -t - Используйте сочетание клавиш Control + C, чтобы остановить проверку связи.
После выполнения этих действий вы сможете увидеть успешные и потерянные запросы. Это может подсказать, как продолжить устранять неполадки и решать проблемы с подключением. В локальной сети администраторы обычно используют команду ping, чтобы узнать, когда служба перестаёт работать. Кроме того, этот инструмент можно использовать как быстрый способ проверки, когда сервер снова запущен, при удалённом перезапуске сервера.
3. Tracert
Windows 10 также включает в себя tracert (Trace Route). Это диагностический инструмент для определения сетевого пути к месту назначения с помощью серии эхо-запросов ICMP. Однако, в отличие от команды ping, каждый запрос включает значение TTL (время жизни), которое увеличивается на единицу каждый раз, что позволяет отображать список пройденного маршрута и продолжительность.
Чтобы отследить маршрут до пункта назначения с помощью командной строки, выполните следующие действия:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Введите команду, чтобы понять путь к месту назначения, и нажмите ввод:
tracert IP-OR-DOMAINВ команде замените IP-OR-DOMAIN на фактический IP-адрес или доменное имя пункта назначения, для которого требуется устранить неполадки.
Например, эта команда позволяет просмотреть путь, по которому пакеты достигают Google.com:
tracert google.com - Необязательно. Введите команды для настройки количества прыжков до места назначения и нажмите ввод:
tracert -h HOP-COUNT IP-OR-DOMAINВ команде замените IP-OR-DOMAIN на фактический IP-адрес или имя домена пункта назначения, неполадки с которым вы хотите решить, и HOP-COUNT для количества переходов, которые вы хотите отслеживать.
Например, следующая команда устанавливает ограничение в пять переходов (узлов) до пункта назначения:
tracert -h 5 google.com
После выполнения этих действий вы узнаете, доступен ли пункт назначения или возникла проблема с сетью на этом пути.
Подобно инструменту ping, tracert включает в себя несколько параметров, которые можно просмотреть с помощью команды tracert /? команда.
4. NSLookup
Инструмент nslookup (поиск сервера имён) может отображать ценные сведения для поиска и устранения связанных с DNS проблем. Инструмент включает в себя интерактивный и неинтерактивный режимы. Чаще всего вы будете использовать неинтерактивный режим, что означает, что вы будете вводить полную команду для получения необходимой информации.
Вы можете использовать эту команду для отображения DNS-имени и адреса локального устройства по умолчанию, определения доменного имени IP-адреса или серверов имен для конкретного узла.
Чтобы начать работу с nslookup в Windows 10, выполните следующие действия:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Введите команду для поиска локального DNS-имени и адреса, нажмите ввод:
nslookupПримечание: эта команда также используется для открытия интерактивного режима nslookup.
- Подтвердите текущую информацию DNS.
- Введите следующую команду для выхода из интерактивного режима и нажмите ввод:
exit - Введите команду для определения имени и адреса конкретного сервера, нажмите ввод:
nslookup IP-ADDRESSВ команде замените IP-ADDRESS на адрес удалённого устройства.
Например, эта команда ищет IP-адрес 172.217.165.142:
nslookup 172.217.165.142 - Введите команду для определения адреса конкретного сервера и нажмите ввод:
nslookup DOMAIN-NAMEВ команде замените DOMAIN-NAME на адрес удалённого устройства.
Например, эта команда ищет IP-адрес Google.com:
nslookup google.com
После выполнения этих действий, в зависимости от команды, вы узнаете, есть ли у устройства преобразователь DNS и IP-адрес или домен, и наоборот, удалённый хост.
5. NetStat
Инструмент netstat (Сетевая статистика) отображает статистику всех сетевых подключений. Это позволяет видеть открытые и подключенные порты, чтобы отслеживать и устранять сетевые проблемы для Windows 10 и приложений.
При использовании инструмента netstat можно получить список активных сетевых подключений и портов прослушивания. Вы можете просмотреть статистику сетевого адаптера и протоколов. Можно отобразить текущую таблицу маршрутизации и многое другое.
Чтобы начать работу с netstat:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Введите команду для отображения всех активных TCP-подключений и нажмите ввод:
netstat - Необязательно. Введите команду для отображения активных подключений, показывающую числовой IP-адрес и номер порта вместо попытки определить имена, и нажмите ввод:
netstat -n - Необязательно. Введите команды для обновления информации через определённый промежуток времени и нажмите ввод:
netstat -n INTERVALВ команде не забудьте заменить INTERVAL на число секунд, через которое информация должна повторно отобразится.
В этом примере запрашиваемая команда обновляется каждые пять секунд:
netstat -n 5Примечание: при использовании интервала можно завершить команду с помощью сочетания клавиш Ctrl + C в консоли.
После запуска команды она отобразит список всех активных подключений в четырех столбцах, включая:
• Proto: отображает протокол подключения, включая TCP или UDP.
• Локальный адрес: отображает IP-адрес устройства, за которым следует точка с запятой с номером порта подключения. Двойная точка с запятой внутри скобок указывает на локальный IPv6-адрес. Адрес «0.0.0.0» также относится к локальному адресу.
• Внешний адрес: показывает IP-адрес (или полное доменное имя) удалённого компьютера с номером порта после имени порта и точки с запятой (например, https, http, microsoft-ds, wsd).
• Состояние: показывает, активно ли соединение (установлено), был ли порт закрыт (time_wait), программа не закрыла порт (close_wait). Другие доступные статусы включают в себя include, closed, fin_wait_1, fin_wait_2, last_ack, listen, syn_received, syn_send и timed_wait.
6. ARP
Windows 10 поддерживает таблицу arp (протокол разрешения адресов), в которой хранятся записи IP в Media Access Control (MAC), разрешённые системой. Инструмент arp позволяет просматривать всю таблицу, изменять записи и использовать её для определения MAC-адреса удалённого компьютера.
Обычно о MAC-адресах не нужно беспокоиться, но есть сценарии, когда эта информация может пригодиться. Например, при устранении сетевых проблем на уровне канала передачи данных (коммутации) или при ограничении доступа или фильтрации контента через сеть для определённых устройств.
Чтобы начать работу с arp в Windows 10, выполните следующие действия:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Введите следующую команду, чтобы просмотреть текущий кеш таблицы arp в Windows 10, и нажмите ввод:
`arp -a’4. Введите команды для определения MAC-адреса удалённого устройства и нажмите ввод:
arp -a IPВ команде замените IP на адрес места назначения.
Например, эта команда показывает физический адрес пункта назначения 10.1.4.113:
arp -a 10.1.4.108 - Подтвердите MAC-адрес (физический) удалённого устройства.
После выполнения этих шагов вы сможете просмотреть всю таблицу arp и MAC-адрес определённого IP-адреса.
Если вы хотите узнать все доступные параметры, используйте команду arp /? , чтобы вывести список всех параметров с описаниями.
7. Route
Инструмент маршрутизации отображает таблицу маршрутизации, которая позволяет Windows 10 понимать сеть и взаимодействовать с другими устройствами и службами. Инструмент также предлагает некоторые параметры для изменения и очистки таблицы при необходимости.
Как и в случае с инструментом arp, обычно не нужно беспокоиться о таблице маршрутизации. И всё же, этот инструмент командной строки пригодится при устранении проблем.
Чтобы просмотреть или очистить таблицу маршрутизации в Windows 10, выполните следующие действия:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Введите команду для просмотра таблицы маршрутизации в Windows 10 и нажмите ввод:
route print - Подтвердите информацию таблицы маршрутизации.
- Необязательно. Введите команду для очистки таблицы маршрутизации и нажмите ввод:
route -fПримечание: при выполнении этой команды устройство потеряет подключение к сети, поскольку система больше не понимает её топологию.
После выполнения команды перезагрузите компьютер, чтобы сетевой стек смог восстановить таблицу маршрутизации. Обычно не нужно очищать таблицу, если вы не изменили некоторые записи и требуется сбросить таблицу.
После выполнения этих действий будет понятно, что такое таблица маршрутизации и как очистить информацию.
Вы также можете использовать route /?, чтобы просмотреть список доступных параметров, включая параметры для изменения сетевых показателей, указания шлюза, добавления нового маршрута и многого другого. Однако обычно не рекомендуется изменять эти настройки, если вы не понимаете, как работает сеть.
8. Netsh
В Windows 10 netsh (сетевая оболочка) — это устаревший инструмент командной строки, который позволяет отображать и изменять практически любую сетевую конфигурацию. Например, вы можете использовать этот инструмент для просмотра текущей конфигурации сети, управления беспроводными соединениями, сброса сетевого стека для устранения наиболее распространённых проблем, включения или отключения брандмауэра и многого другого.
Чтобы начать работу с инструментом командной строки netsh, выполните следующие действия:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Введите команду для просмотра списка доступных команд (контекстов) и нажмите ввод:
netsh /?Введите следующую команду, чтобы просмотреть список доступных подкоманд (подконтекстов) для конкретной опции, и нажмите ввод:
netsh CONTEXT-COMMANDВ команде измените CONTEXT-COMMAND на команду, которая содержит дополнительные параметры.
Например, эта команда показывает команды, доступные для управления брандмауэром с помощью netsh:
netsh advfirewall /?
После выполнения этих действий будет понятно, как перемещаться по команде контекстов и подконтекстов netsh для управления настройками сети.
Сброс системного сетевого стека
Чтобы сбросить сетевой стек для решения распространённых проблем с подключением, выполните следующие действия:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Введите следующую команду для сброса стека winsock и нажмите ввод:
netsh winsock reset - Перезагрузите компьютер.
После выполнения этих действий конфигурация winsock будет сброшена, что может решить проблемы с подключением к сети и интернету.
Экспорт и импорт конфигурации сети
Чтобы экспортировать конфигурацию сети с помощью netsh в Windows 10, выполните следующие действия:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Наберите команду для импорта текущей конфигурации для всех сетевых адаптеров и нажмите ввод:
netsh -c interface dump>PATHTOEXPORTED.txtВ команде замените PATHTOEXPORTED.txt на путь и имя файла для хранения конфигурации.
Например, следующая команда экспортирует настройки в файл netshconfig.txt:
netsh -c interface dump>c:netshconfig.txt
После выполнения этих шагов можно открывать файл в любом текстовом редакторе, чтобы просмотреть экспортированную конфигурацию.
Импорт конфигурации сети
Чтобы импортировать параметры конфигурации сети с помощью netsh, выполните следующие действия:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Наберите команду для импорта конфигурации сети и нажмите ввод:
netsh -c interface dump>PATHTOIMPORTED.txtВ команде замените PATHTOEXPORTED.txt на путь и имя файла конфигурации.
Например, следующая команда импортирует настройки из файла netshconfig.txt:
netsh -f c:netshconfig.txt
После завершения этих действий новая сетевая конфигурация будет импортирована и применена к Windows 10.
Включение и отключение брандмауэра
Чтобы включить брандмауэр Windows 10 с помощью netsh, выполните следующие действия:
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Наберите команду включения брандмауэра по умолчанию и нажмите ввод:
netsh advfirewall set currentprofile state on
После выполнения этих действий на устройстве включится брандмауэр Защитника Windows.
Отключение брандмауэра
- Нажмите на кнопку «Пуск».
- Введите в поиск cmd и нажмите правой кнопкой мыши на «Запуск от имени администратора».
- Наберите команду выключения брандмауэра по умолчанию и нажмите ввод:
netsh advfirewall set currentprofile state off
После выполнения этих действий брандмауэр Защитника Windows на устройстве будет выключен.
В Windows 10 есть множество инструментов, которые можно задействовать для изменения настроек и устранения сетевых проблем с помощью командной строки, PowerShell и графических приложений. В этом руководстве рассказывается только о том, как помочь работать с наиболее с распространёнными инструментами командной строки.
В данном материале я затрону актуальную тему, с которой начинается практически любая первоначальная работа с сервером. Настройка основных параметров сети в CentOS — ip адрес, dhcp, ipv6, dns, hostname, статические маршруты, сетевые карты и другие network параметры.
Двигаться по теме будем шаг за шагом от простого к сложному, разбирая все нюансы по порядку и отвечая на наиболее популярные вопросы.
Содержание:
- Сетевые настройки на сервере CentOS 7
- Как получить сетевые настройки по DHCP
- Как настроить DNS в CentOS 7
- Как отключить ipv6 в CentOS 7
- Как изменить hostname в CentOS 7
- Установить шлюз по-умолчанию в CentOS 7
- Network Manager в CentOS 7
- System config network tui в CentOS 7
- Как добавить статический маршрут в CentOS 7
- Как настроить 2 IP адреса на одном интерфейсе
- Как сделать перезапуск сети в CentOS 7
- Как узнать IP адрес в CentOS 7
- Что делать, если CentOS не видит сетевую карту?
- Что делать, если сеть недоступна в CentOS?
- Использование сетевых утилит traceroute, dig в CentOS
- Настройка 802.1Q VLAN в CentOS 7
Сетевые настройки на сервере CentOS 7
Первый раз с сетевыми настройками сервера CentOS мы сталкиваемся, когда производим установку. На экране первоначальной настройки есть отдельный пункт, касающийся настройки сетевых интерфейсов:
Зайдя в него мы видим список подключенных сетевых карт. Каждую из них можно включить соответствующим ползунком (пункт 1 на картинке). При активировании интерфейса он автоматически получает настройки по dhcp. Результат работы dhcp можно посмотреть тут же. Если вас не устраивают эти настройки, их можно отредактировать, нажав configure (пункт 3 на картинке). Здесь же можно задать hostname (пункт 2 на картинке):
Открыв окно дополнительный настроек Ehernet, вы сможете изменить имя сетевого интерфейса, указать настройки IP (пункт 1 на картинке), выбрать ручные настройки (пункт 2 на картинке), назначить ip адрес (пункт 3 на картинке), установить dns сервер (пункт 4 на картинке) и сохранить сетевые настройки (пункт 5 на картинке):
После выполнения остальных настроек начнется установка. После установки у вас будет сервер с указанными вами сетевыми настройками.
Теперь рассмотрим другую ситуацию. Сервер, а соответственно и конфигурацию сети, производили не вы, а теперь вам надо ее посмотреть либо изменить. В вашем распоряжении консоль сервера, в ней и будем работать. Если у вас установка производилась с дистрибутива minimal, то при попытке посмотреть сетевые настройки с помощью команды ifconfig в консоли вы увидите следующее:
-bash: ifconfig: command not found
или в русской версии:
-bash: ifconfig команда не найдена
Для работы с ifconfig и прочими сетевыми утилитами необходимо установить пакет net-tools. Сделаем это:
# yum -y install net-tools.x86_64
Теперь можно увидеть настройки сети:
# ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
inet6 fe80::20c:29ff:fe7d:593f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 319 bytes 36709 (35.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 256 bytes 148817 (145.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 6 bytes 624 (624.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6 bytes 624 (624.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Если у вас нет желания устанавливать дополнительный пакет, то можно воспользоваться более простой командой ip с параметрами:
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:7d:59:3f brd ff:ff:ff:ff:ff:ff
inet 192.168.159.129/24 brd 192.168.159.255 scope global dynamic eno16777728
valid_lft 1709sec preferred_lft 1709sec
inet6 fe80::20c:29ff:fe7d:593f/64 scope link
valid_lft forever preferred_lft forever
Мы увидели конфигурацию сети, теперь давайте ее отредактируем. Допустим, нам нужно сменить ip адрес. Для этого идем в директорию /etc/sysconfig/network-scripts и открываем на редактирование файл ifcfg-eth0. Этот файл имеет примерно следующее содержание:
По настройкам из этого файла мы получаем ip адрес по dhcp. Чтобы вручную прописать статический ip, приводим файл к следующему содержанию:
Мы изменили параметры:
BOOTPROTOс dhcp на noneDNS1 указали dns сервер IPADDR, настроили статический ip адрес PREFIX, указали маску подсети GATEWAY. настроили шлюз по-умолчанию
Чтобы изменения вступили в силу, необходимо перечитать сетевые настройки:
# /etc/init.d/network restart
Restarting network (via systemctl): [ OK ]
Проверяем, применилась ли новая конфигурация сети:
# ifconfig:
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
inet6 fe80::20c:29ff:fe7d:593f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 672 bytes 71841 (70.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 572 bytes 290861 (284.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Все в порядке, новые настройки сетевого интерфейса установлены.
Как получить сетевые настройки по DHCP
Теперь рассмотрим обратную ситуацию. Допустим, у вас сетевая карта имеет какие-то настройки, установленные вручную. Но вы хотите, чтобы ваш компьютер получал настройки сети по dhcp в качестве клиента . Для этого вам нужно произвести операцию, обратную той, что мы делали раньше. То есть открываем файл /etc/sysconfig/network-scripts/ifcfg-eth0 и удаляем там строки с параметрами DNS, IPADDR, PREFIX, GATEWAY а в параметре BOOTPROTO указываем значение «dhcp». Сохраняем файл и перезапускаем сеть:
# /etc/init.d/network restart
Затем проверяем, получил ли наш client по dhcp настройки.
Как настроить DNS в CentOS 7
Текущие настройки dns сервера в CentOS можно посмотреть в двух местах:
- В файле с настройками сетевой карты ifcfg-eth0, которым мы ранее неоднократно редактировали.
- В файле /etc/resolv.conf
Зачем они сейчас в двух местах, я не знаю, но раньше настройки dns сервера в каких-то дистрибутивах, не помню уже точно каких, указывались только в resolv.conf, но в какой-то момент это изменилось. И все сетевые настройки стали храниться в одном файле вместе с адресом, шлюзом, маской и прочим. Если сейчас отредактировать файл resolv.conf и внести туда какие-то dns сервера, то после перезагрузки они будут заменены на значения из файла ifcfg-eth0.
Так что для того, чтобы установить параметры dns сервера, нужно отредактировать файл сетевых настроек ifcfg-eth0, добавив туда столько серверов, сколько требуется.
Например так:
DNS1="192.168.159.2"
DNS2="8.8.8.8"
DNS3="8.8.4.4"
Для применения настроек сохраняем файл и перезапускаем сеть, все как обычно. После перезагрузки сервера настройки dns будут записаны в файл resolv.conf
# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.159.2
nameserver 8.8.8.8
nameserver 8.8.4.4Как отключить ipv6 в CentOS 7
В настоящее время активного использования протокола ipv6 нет и в обычной работе он не нужен. Хотя нас уже много лет пугают, что свободных ip адресов уже практически не осталось, но на деле пока еще всем хватает. Так что с точки зрения практических соображений ipv6 в настоящее время на сервере не нужен и его можно отключить.
Перед отключением ipv6 необходимо на всякий случай проверить, какие программы его используют в своей работе. Это нужно для того, чтобы избежать ошибок в их работе, предварительно отключив ipv6 в конфигурациях. Для того, чтобы увидеть, какие программы висят на ipv6 интерфейсе воспользуемся командой netstat:
# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2317/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1333/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2317/master
tcp6 0 0 :::22 :::* LISTEN 1333/sshd
udp 0 0 0.0.0.0:49252 0.0.0.0:* 694/avahi-daemon: r
udp 0 0 0.0.0.0:123 0.0.0.0:* 715/chronyd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 694/avahi-daemon: r
udp 0 0 127.0.0.1:323 0.0.0.0:* 715/chronyd
udp6 0 0 :::123 :::* 715/chronyd
udp6 0 0 ::1:323 :::* 715/chronyd
Все строки с ::: это ipv6 протокол. В моем случае это sshd, postfix и chronyd. Отключим им ipv6 и оставим только ipv4.
Начнем с sshd. Открываем файл настроек /etc/ssh/sshd_config и находим строки:
#AddressFamily any
#ListenAddress 0.0.0.0
Раскомментируем их и изменим. Должно получиться вот так:
AddressFamily inet
ListenAddress 0.0.0.0
Теперь открываем файл настроек постфикс /etc/postfix/main.cf. Ищем там строку:
#inet_protocols = all
Меняем на:
inet_protocols = ipv4
Отключаем ipv6 в chronyd. Для этого создаем файл /etc/sysconfig/chronyd и добавляем строку:
OPTIONS=-4
Теперь отключаем ipv6 в CentOS. Открываем файл /etc/sysctl.conf и добавляем туда строки:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Редактируем файл /etc/sysconfig/network, добавляя туда:
NETWORKING_IPV6=no
IPV6INIT=no
Перезагружаемся и проверяем результат:
# reboot# ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 2301 bytes 243024 (237.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2138 bytes 1327955 (1.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Нигде нет упоминания про inet6 и адреса формата ipv6. Значит все в порядке, мы отключили ipv6 в CentOS. Теперь проверим список открытых портов:
# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2291/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1322/sshd
udp 0 0 0.0.0.0:123 0.0.0.0:* 2453/chronyd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 697/avahi-daemon: r
udp 0 0 127.0.0.1:323 0.0.0.0:* 2453/chronyd
udp 0 0 0.0.0.0:57259 0.0.0.0:* 697/avahi-daemon: r
Все порты ipv4. Все в порядке, наша задача выполнена.
Как изменить hostname в CentOS 7
По-умолчанию, во время установки CentOS ставит имя хоста localhost.localdomain. Если вы его не поменяли, то можно это сделать позже. Для начала давайте проверим, какое имя хоста у вас установлено. Делается это с помощью команды в консоли hostname, либо с помощью uname:
# hostname
localhost.localdomain# uname -n
localhost.localdomain
Для того, чтобы изменить имя хоста в CentOS, необходимо отредактировать файл /etc/hostname. Проверим его содержимое:
# cat /etc/hostname
localhost.localdomain
Отредактируем этот файл, чтобы изменить hostname:
# mcedit /etc/hostname
centos.localhost
Сохраняем файл и проверяем:
# hostname
centos.localhost
Все в порядке, мы изменили имя хоста на centos.localhost
Установить шлюз по-умолчанию в CentOS 7
Если по каким-то причинам при настройке сетевых параметров у вас не установился шлюз по-умолчанию, то сделать это можно вручную. Для начала проверим, какой шлюз по-умолчанию установлен в системе в данный момент:
# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 149.154.71.254 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
149.154.70.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0
192.168.1.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
Строка с Destination 0.0.0.0 определяет адрес шлюза. Если у вас ее нет, либо в поле Gateway установлен неверный шлюз, то можно это изменить. Устанавливаем шлюз по-умолчанию:
route add default gw 192.168.0.1Network Manager в CentOS 7
В CentOS по-умолчанию имеется служба, которая управляет всеми сетевыми подключениями — NetworkManager. Она постоянно контролирует сетевые настройки и с помощью демона по управлению конфигурациями вносит соответствующие изменения в активные сетевые устройства. Она поддерживает стандартные файлы конфигураций ifcfg.
Список сетевых утилит и приложений:
NetworkManager Стандартный networking daemon nmtui
Простой текстовый интерфейс (TUI) для NetworkManager nmcli
Утилита, работающая в командной строке, которая позволяет пользователям и скриптам взаимодействовать с NetworkManagercontrol-center
Утилита с графическим интерфейсом оболочки GNONEnm-connection-editorGTK+ 3 приложения, необходимые для некоторых задач, не поддерживаемых control-center
Пользователи не взаимодействуют с NetworkManager в CentOS напрямую, для этого используются графические и утилиты командной строки. Одной из таких утилит является system config network tui.
System config network tui в CentOS 7
Для управления сетевыми настройками в CentOS можно воспользоваться графической утилитой nmtui.
Проверить ее наличие в системе очень просто.
Достаточно запустить ее в консоли:
# nmtui
Если она у вас не установлена, то исправить это очень просто. Устанавливаем в CentOS system config network tui:
# yum install NetworkManager-tui
С помощью tui можно указать любые сетевые настройки, которые мы делали раньше через командную строку и редактирование конфигурационных файлов. Давайте сделаем это. Вызываем программу:
# nmtui
Выбираем первый пункт Edit a connection, затем выбираем сетевой интерфейс и жмем «Edit»:
Здесь мы можем изменить имя сетевой карты, mac адрес, указать тип сетевых настроек — ручной или dhcp, указать вручную ip адрес, адрес шлюза, днс сервера, добавить маршруты и некоторые другие настройки:
После завершения редактирования сохраняем настройки, нажимая ОК.
Если в первом экране утилиты выбрать пункт Set System Hostname, то можно быстро указать имя хоста. Результат будет такой же, как мы делали раньше в консоли.
Как добавить статический маршрут в CentOS 7
Для управления маршрутизацией в CentOS может понадобиться добавить статический маршрут. Сделать это достаточно просто с помощью консольной команды. Для начала проверим существующие маршруты, используя netstat:
# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728
192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728
В данном случае у нас один маршрут для адреса 0.0.0.0/0.0.0.0 шлюз используется 192.168.159.2, он же шлюз по-умолчанию. То есть по сути, статических маршрутов никаких нет. Добавим один из них.
Допустим, у нас есть подсеть 192.168.8.0 маска 255.255.255.0, трафик в эту подсеть маршрутизирует шлюз 192.168.159.5 Добавляем маршрут:
# route add -net 192.168.8.0/24 gw 192.168.159.5
Проверяем, появился ли добавленный маршрут в таблицу маршрутизации:
# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728
192.168.8.0 192.168.159.5 255.255.255.0 UG 0 0 0 eno16777728
192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728
Все в порядке, маршрут добавлен. Но после перезагрузки этот статический маршрут будет удален. Чтобы этого не произошло и добавленные маршруты сохранялись, необходимо их записать в специальный файл. В папке /etc/sysconfig/network-scripts создаем файл с именем route-eth0 следующего содержания:
# mcedit /etc/sysconfig/network-scripts/route-eth0
192.168.8.0/24 via 192.168.159.5
Перезагружаемся и проверяем, на месте ли маршрут:
# reboot# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728
192.168.8.0 192.168.159.5 255.255.255.0 UG 0 0 0 eno16777728
192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728
Все в порядке, статический маршрут добавлен.
Как настроить 2 IP адреса на одном интерфейсе
Если у вас появилась необходимость настроить 2 IP адреса на одном интерфейса в CentOS, то сделать это достаточно просто. Воспользуемся командой ifconfig. Для начала проверим список сетевых интерфейсов:
# ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 254 bytes 30173 (29.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 204 bytes 27658 (27.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 11 bytes 940 (940.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11 bytes 940 (940.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Добавим к интерфейсу eno16777728 еще один ip адрес 192.168.159.120:
# ifconfig eno16777728:1 192.168.159.120 up
Проверим, что получилось:
#ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 254 bytes 30173 (29.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 204 bytes 27658 (27.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0eno16777728:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.120 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 11 bytes 940 (940.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11 bytes 940 (940.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Все в порядке, мы добавили второй ip адрес на один и тот же интерфейс. Но после перезагрузки дополнительный адрес не сохранится. Чтобы его сохранить, необходимо создать файл настроек интерфейса в папке /etc/sysconfig/network-scripts
# mcedit /etc/sysconfig/network-scripts/ifcfg-eno16777728:1
DEVICE=eno16777728:1
BOOTPROTO=static
IPADDR=192.168.159.120
NETMASK=255.255.255.0
ONBOOT=yes
Сохраняем файл, перезагружаемся и проверяем, что получилось. Второй ip адрес должен быть на месте.
Как сделать перезапуск сети в CentOS 7
Ранее я уже касался этого вопроса, но на всякий случай повторим отдельно. Допустим, вы внесли некоторые изменения в конфигурацию сети. Как применить эти настройки, не перезагружая сервер? Очень просто. Для перезапуска сети в CentOS достаточно воспользоваться командой:
# /etc/init.d/network restart
Служба NetworkManager перечитает все сетевые настройки и применит изменения.
Как узнать IP адрес в CentOS 7
Для того, чтобы быстро узнать текущий IP адрес в CentOS необходимо воспользоваться следующими командами:
# ifconfig | grep inet
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
inet 127.0.0.1 netmask 255.0.0.0
Либо второй вариант определения локального ip адреса:
# ip addr | grep inet
inet 127.0.0.1/8 scope host lo
inet 192.168.159.129/24 brd 192.168.159.255 scope global eno16777728
Обе команды позволяют быстро узнать свой ip адрес.
Что делать, если CentOS не видит сетевую карту?
Вы установили сервер, загрузились и обнаружили, что в системе нет ни одной сетевой карты. Что в таком случае делать? Первым делом посмотрите вывод команды dmesg и поищите там поминание о своей карте. Возможно, она в системе есть, просто не активирована. Активировать ее можно с помощью nmtui, а котором я рассказывал выше.
Там есть пункт меню Activate connection, нужно в него зайти и активировать вашу сетевую карту. После этого ее можно будет настраивать.
Если же вашей сетевой карты нет в системе, то нужно поискать в интернете по модели информацию об этой сетевой карте. Возможно в репозиториях будут драйвера для нее. Это достаточно распространенная ситуация. Чаще всего драйвера найдутся и их необходимо будет правильно установить.
Есть еще вероятность, что вы не увидите своей карточки при выводе команды ifconfig, если в эту карту не воткнут сетевой провод. Чтобы наверняка посмотреть все интерфейсы, необходимо использовать ключ -a:
# ifconfig -a
Есть еще один способ поискать сетевую карту в системе. Установите пакет pciutils:
# yum -y install pciutils
И посмотрите вывод команды:
# lspci | grep Ethernet
Если сетевая карта видится системой, то должно быть что-то в этом роде:
02:00.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
Если в выводе пусто, значит сетевая карта не определена.
Что делать, если сеть недоступна в CentOS?
Допустим, вы пытаетесь пинговать какой-то адрес, например 8.8.8.8 и получаете ответ, что сеть не доступна:
# ping 8.8.8.8
А в ответ получаете:
connect: Network is unreachable
Такая ситуация может возникнуть, если у вас не установлен шлюз по-умолчанию. Добавить его можно с помощью команды:
# route add default gw 192.168.0.1
Если дело не в шлюзе, то нужно проверить настройки сетевых адаптеров. Если нет ни одного активного адаптера, то вы так же будете получать сообщение о том, что сеть не работает. Необходимо, чтобы в системе был правильно настроен хотя бы один сетевой адаптер. Как это сделать, написано выше.
Использование сетевых утилит traceroute, dig в CentOS
Для диагностики сетевых подключений в CentOS полезно использовать специальные утилиты. Но если вы использовали установку minimal, то их скорее всего в системе не будет. К примеру, популярная утилита traceroute при попытке ее запуска выдаст сообщение:
# traceroute ya.ru
bash: traceroute: command not found
Ее нужно установить отдельно из репозитория:
# yum -y install traceroute
То же самое с популярной программой dig для работы с dns серверами и записями:
# dig ya.ru
bash: dig: command not found
Чтобы эта сетевая утилита заработала, необходимо установить пакет bind-utils:
# yum -y install bind-utilsНастройка 802.1Q VLAN в CentOS 7
Для поднятия тегированного интерфейса на CentOS нужно в первую очередь проверить поддержку ядром 8021q:
# modprobe 8021q
Если сообщений об ошибке нет, значит все в порядке. Если же модуль не найден, необходимо пересобрать модули ядра, включив поддержку необходимого модуля.
Теперь создаем файл конфигурации для vlan в /etc/sysconfig/network-scripts:
# mcedit ifcfg-vlan4000
VLAN=yes
DEVICE=eno16777728.2000
BOOTPROTO=static
ONBOOT=yes
TYPE=Vlan
IPADDR=192.168.100.2
NETMASK=255.255.255.0
Обращаю внимание на выделенное жирным. Во всех инструкциях в интернете, что мне попались, этот параметр был указан как TYPE=Ethernet, но с такой настройкой интерфейс с vlan не поднимался, появлялась ошибка:
Error: no device found for connection ‘System vlan4000’.
Только после того, как я исправил, все заработало как надо. Так что сохраняем и активируем интерфейс:
# ifup vlan4000
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
Проверяем наш vlan:
# ip l ls
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:7d:59:3f brd ff:ff:ff:ff:ff:ff
3: vlan4000@eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
link/ether 00:0c:29:7d:59:3f brd ff:ff:ff:ff:ff:ff
Все в порядке, тегированный интерфейс поднят. По аналогии можно создать еще несколько подобных интерфейсов, не забывая изменять им имена и адреса.
На этом мой объемный материал на тему настройки сети в CentOS закончен.
Буду очень рад комментариям, замечаниям, поправкам. Они наверняка будут. Создавая подобные материалы я в первую очередь учусь сам и подтягиваю свои знания в предметной области. Тут могут быть где-то ошибки и описки, хотя я и проверяю все на живых системах во время написания руководств, но все равно возможны неточности и опечатки.
За статью огромнейшее спасибо: http://serveradmin.ru
Содержание
- — Как узнать свой IMAP или входящий POP-сервер?
- — Как мне найти настройки моего IMAP-сервера?
- — Какие порты используются IMAP и POP?
- — Какой у меня сервер входящей электронной почты?
- — Как мне исправить электронную почту, не подключающуюся к серверу?
- — Как мне узнать имя и порт моего SMTP-сервера?
- — Как мне найти свои настройки POP и SMTP?
- — Outlook — это протокол POP или IMAP?
- — Как мне найти свой пароль IMAP?
- — Что такое настройки учетной записи IMAP?
- — Как мне найти настройки IMAP на моем iPhone?
- — Что лучше IMAP или POP?
- — Какие порты нужно настроить для IMAP?
В Outlook щелкните Файл. Затем перейдите в «Настройки учетной записи»> «Настройки учетной записи». На вкладке Электронная почта дважды щелкните учетную запись, которую вы хотите подключить к HubSpot. В разделе «Информация о сервере» вы можете найти имена вашего сервера входящей почты (IMAP) и сервера исходящей почты (SMTP).
Как мне найти настройки моего IMAP-сервера?
Найдите настройки сервера почтовых ящиков Exchange
- Войдите в свою учетную запись с помощью Outlook Web App. …
- В Outlook Web App на панели инструментов выберите Параметры> Почта> POP и IMAP.
- Имя сервера POP3, IMAP4 и SMTP, а также другие параметры, которые вам может потребоваться ввести, перечислены на странице параметров POP и IMAP.
Какие порты используются IMAP и POP?
Почтовые порты для POP3, IMAP и SMTP
Протокол | Настройки безопасности | Номер (а) порта |
---|---|---|
POP3 (получение почты) | Зашифрованный — SSL | 995 |
POP3 (получение почты) | Незашифрованный | 110 |
IMAP (получение почты) | Зашифрованный — TLS | 993 |
IMAP (получение почты) | Зашифрованный — SSL | 993 |
Какой у меня сервер входящей электронной почты?
Затем нажмите «Настройки учетной записи»> «Настройки учетной записи». На вкладке «Электронная почта» дважды щелкните учетную запись, которая является старым адресом электронной почты. Под информацией о сервере вы можете найти свой сервер входящей почты (IMAP) и имена серверов исходящей почты (SMTP).
Как мне исправить электронную почту, не подключающуюся к серверу?
Не удается отправить электронную почту: как исправить проблемы с отправкой электронной почты
- Проверьте ваше интернет-соединение. Ага. …
- Проверьте данные своего SMTP-сервера. …
- Проверьте все имена пользователей и пароли. …
- Проверьте подключение к SMTP-серверу. …
- Измените свой порт SMTP. …
- Управляйте настройками антивируса или брандмауэра.
Как мне узнать имя и порт моего SMTP-сервера?
Перейдите в меню «Настройки» телефона или планшета и прокрутите вниз, пока не найдете параметр «Электронная почта». Коснитесь его и выберите свой адрес электронной почты. Затем найдите параметр «Параметры сервера» под заголовком «Дополнительные параметры». Теперь вы должны увидеть как ваш IMAP- и SMTP-сервер, так и имя, и порты, которые они используют.
Как мне найти свои настройки POP и SMTP?
Если вы пытаетесь добавить свою учетную запись Outlook.com в другое почтовое приложение, вам могут потребоваться настройки POP, IMAP или SMTP для Outlook.com.
…
Включите доступ по протоколу POP в Outlook.com
- Выберите «Настройки». > Просмотреть все настройки Outlook> Почта> Синхронизировать электронную почту.
- В разделе POP и IMAP выберите Да в разделе Разрешить устройствам и приложениям использовать POP.
- Выберите Сохранить.
Outlook — это протокол POP или IMAP?
Обзор: настройки сервера Outlook.com
Серверы Outlook.com POP3 | |
---|---|
Сервер входящей почты | imap-mail.outlook.com |
Порт входящего почтового сервера | 993 (требуется SSL) |
Сервер исходящей почты (SMTP) | smtp-mail.outlook.com |
Порт исходящего (SMTP) почтового сервера | 587 (требуется SSL / TLS) |
Как мне найти свой пароль IMAP?
В зависимости от вашего провайдера электронной почты это обычно либо ваш полный адрес электронной почты или часть вашего адреса электронной почты перед символом «@». Это пароль вашей учетной записи. Обычно этот пароль чувствителен к регистру. Сервер входящей почты для учетной записи IMAP также может называться IMAP-сервером.
Что такое настройки учетной записи IMAP?
Настройте IMAP и измените настройки SMTP, чтобы читать сообщения Gmail в других почтовых клиентах, таких как Microsoft Outlook и Apple Mail. При использовании IMAP вы можете читать сообщения Gmail на нескольких устройствах, а сообщения синхронизируются в реальном времени. Вы также можете читать сообщения Gmail с помощью POP.
Как мне найти настройки IMAP на моем iPhone?
Как настроить IMAP для iPhone
- На iPhone коснитесь «Настройки».
- Коснитесь Почта, Контакты, Календари.
- Коснитесь Добавить учетную запись.
- Коснитесь Другое.
- Нажмите «Добавить учетную запись электронной почты».
- Заполните поля Имя, Адрес (адрес электронной почты), Пароль и Описание.
- Нажмите «Далее.
- Убедитесь, что выбран IMAP.
Что лучше IMAP или POP?
IMAP лучше если вы собираетесь получать доступ к своей электронной почте с нескольких устройств, например с рабочего компьютера и смартфона. POP3 работает лучше, если вы используете только одно устройство, но у вас очень много писем. Также будет лучше, если у вас плохое интернет-соединение и вам нужен доступ к электронной почте в автономном режиме.
Какие порты нужно настроить для IMAP?
По умолчанию протокол IMAP работает на двух портах:
- Порт 143 — это незашифрованный порт IMAP по умолчанию;
- Порт 993 — это порт, который необходимо использовать, если вы хотите безопасно подключаться по IMAP.
Интересные материалы:
Как создать онлайн-диаграмму в Excel?
Как создать относительную ссылку в Excel?
Как создать папку и подпапки из значения ячейки в Excel?
Как создать переменную шкалу в Excel?
Как создать поиск в Excel?
Как создать полосу доверительного интервала в Excel?
Как создать последовательность в Excel 2016?
Как создать последовательность в Excel?
Как создать префикс и суффикс в Excel?
Как создать раскрывающийся список в Excel 2003 из другого листа?