Получение информации о сетевых интерфейсах

Определить какие интерфейсы есть у вашего сервера поможет утилита lshw. Но её предварительно нужно установить с помощью следующей команды:

 sudo apt install lshw

Эта утилита предназначена для определения железа вашего сервера. Например, с её помощью можно посмотреть какой на сервере процессор или оперативная память. Используя параметр -С network получим информацию только по сетевым устройствам:

Из этого вывода вы можете получить следующую информацию:

Из этого вывода вы можете получить следующую информацию:

  • logical name: ens18 — имя сетевого интерфейса;
  • serial: 2a:75:9e:4d:1d:fa — mac-адрес;
  • ip=172.28.90.31 — ip-адрес;
  • и другое.

Утилита lshw в основном используется, чтобы узнать имя и возможности сетевой карты. А для получения информации о mac и ip адресах нужно использовать другую утилиту — ip. Эта утилита командной строки не так проста, команда ip имеет множество подкоманд, которые мы изучим в этой статье. И первая подкоманда это address — она означает, что работать мы будем с ip-адресами. У подкоманды address, тоже есть свои подкоманды, например подкоманда show покажет информацию о назначенных ip-адресах. В самом конце команды можно указать имя сетевого интерфейса, чтобы получить информацию только по нему, а не по всем сетевым интерфейсам в системе.

Все эти подкоманды можно сокращать, например address = addr, show = sh. Но пока не будем этого делать, так как вначале нужно их запомнить.

Для того чтобы посмотреть, какие настройки использует сетевой интерфейс ens18 выполним команду

Здесь мы также видим mac и ip адрес с маской подсети. Этот ip адрес был получен по dhcp.

Настройка IP адреса

Чтобы изменить ip адрес на какой-нибудь другой, нужно отредактировать конфигурационный файл «/etc/network/interfaces». Но вначале глянем на него с помощью команды cat:

Посмотрим внимательнее на блок настроек для интерфейса ens18:

    • # The primary network interface — это комментарий, так как в начале строки стоит символ #. Он ни на что не влияет, просто подсказывает нам, что следующие за ним настройки редактируют основной сетевой интерфейс (ens18).

    • allow-hotplug ens18 — разрешает горячее подключение для интерфейса ens18. То есть этот сетевой интерфейс будет включен при старте системы.

    • iface ens18 inet dhcp — интерфейс ens18 будет получать настройки с помощью dhcp.

Чтобы назначить другой статический ip адрес нужно отредактировать этот блок в файле, например с помощью текстового редактора nano.

То есть меняем dhcp на static и ниже указываем адрес интерфейса (address) и адрес шлюза по умолчанию (gateway).

Дальше нужно перезагрузить сетевую подсистему чтобы применились изменения. Для этого можно воспользоваться следующими командами:

    • $ sudo systemctl restart networking.service — перезагружает службу отвечающую за сеть на сервере, но если сетевых интерфейсов несколько, то все они на время окажутся недоступными. Также эта команда у меня не всегда срабатывала, то есть после перезапуска службы, интерфейс оказывался без назначенного ip адреса. Поэтому я не рекомендую этот способ.

    • $ sudo ifdown ens18; sudo ifup ens18 — это две команды, которые выполнятся по очереди. Первая команда (ifdown ens18) отключит сетевой интерфейс, а вторая (ifup ens18) включит. Эта команда меня ещё не подводила.

    • $ sudo reboot — эта команда перезагрузит сервер полностью. После чего сервер загрузится уже с новыми сетевыми настройками.

В любом случае вы отвалитесь от сервера, так как были подключены к нему по ssh по другому ip адресу. Вам придется заново подключиться к серверу, но использовать уже новый ip адрес.

Настройка DNS сервера

Чтобы указать серверу, какой ему использовать dns сервер, нужно редактировать конфигурационный файл /etc/resolv.conf. Давайте взглянем на него:

$ cat /etc/resolv.conf

nameserver 172.28.80.1

Этот адрес был получены от dhcp сервера. Но его можно изменить прям в этом файле:

$ sudo nano /etc/resolv.conf

nameserver 77.88.8.8

После редактирования этого файла ничего перезагружать не нужно, настройки подхватятся на лету. Проверить это можно с помощью команды nslookup, которая определит ip адрес по имени используя указанный dns сервер.

$ nslookup ya.ru

Server: 77.88.8.8

Address: 77.88.8.8#53

Non-authoritative answer:

Name: ya.ru

Address: 87.250.250.242

Name: ya.ru

Address: 2a02:6b8::2:242

Как видим, был использован dns от Яндекса — 77.88.8.8. Именно его мы внесли в конфиг /etc/resolv.conf.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *