Linux server configure network

Sysadminium

Настройка сети – это один из важнейших навыков системного администрирования, и в этой статье мы научимся настраивать сеть на Ubuntu 22.04.

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

В прошлой статье мы разобрали настройку сети в системе Debian 11, а в этой разберём всё тоже самое но для Ubuntu 22.04.

Посмотреть на доступные сетевые интерфейсы мы точно также можем с помощью утилиты lshw. И на сервере Ubuntu эта утилита предустановлена.

$ sudo lshw -C network *-network:0 description: Ethernet controller product: Virtio network device vendor: Red Hat, Inc. physical id: 12 bus info: pci@0000:00:12.0 version: 00 width: 64 bits clock: 33MHz capabilities: msix bus_master cap_list rom configuration: driver=virtio-pci latency=0 resources: irq:11 ioport:e0e0(size=32) memory:fea93000-fea93fff memory:fe40c000-fe40ffff memory:fea00000-fea3ffff *-virtio3 description: Ethernet interface physical id: 0 bus info: virtio@3 logical name: ens18 serial: 02:6e:f0:fb:d4:71 capabilities: ethernet physical configuration: autonegotiation=off broadcast=yes driver=virtio_net driverversion=1.0.0 ip=172.28.90.34 link=yes multicast=yes *-network:1 description: Ethernet controller product: Virtio network device vendor: Red Hat, Inc. physical id: 13 bus info: pci@0000:00:13.0 version: 00 width: 64 bits clock: 33MHz capabilities: msix bus_master cap_list rom configuration: driver=virtio-pci latency=0 resources: irq:10 ioport:e100(size=32) memory:fea94000-fea94fff memory:fe410000-fe413fff memory:fea40000-fea7ffff *-virtio4 description: Ethernet interface physical id: 0 bus info: virtio@4 logical name: ens19 serial: 82:dd:88:27:00:a5 capabilities: ethernet physical configuration: autonegotiation=off broadcast=yes driver=virtio_net driverversion=1.0.0 link=yes multicast=yes

В этом примере у меня два сетевых интерфейса: ens18 (02:6e:f0:fb:d4:71) и ens19 (82:dd:88:27:00:a5). При этом ip адрес назначен только на ens18 (172.28.90.34).

Мы уже знаем что утилита lshw в основном используется, чтобы узнать имя и возможности сетевой карты, то есть информацию о железе. А для получения настроек сетевых интерфейсов нужно использовать команду – ip. Работает эта команда точно также как в Debian, поэтому заострять на ней внимание не буду.

$ ip addr show ens18 2: ens18: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 02:6e:f0:fb:d4:71 brd ff:ff:ff:ff:ff:ff inet 172.28.90.34/20 brd 172.28.95.255 scope global dynamic ens18 valid_lft 258376sec preferred_lft 258376sec inet6 fe80::6e:f0ff:fefb:d471/64 scope link valid_lft forever preferred_lft forever $ ip addr show ens19 3: ens19: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 82:dd:88:27:00:a5 brd ff:ff:ff:ff:ff:ff inet6 fe80::80dd:88ff:fe27:a5/64 scope link valid_lft forever preferred_lft forever

В примере выше видно, что ens18 имеет назначенный ip адрес, а ens19 нет. Но оба интерфейса активны (state UP).

Читайте также:  Sony playstation эмулятор linux

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

Вот настройка сетевых интерфейсов при помощи конфигурационных файлов в Ubuntu значительно отличается от Debian. Это потому-что в Ubuntu используется система для управления сетью — Netplan. И нужно будет изучить конфигурационные файлы и команды этой системы.

Конфигурационные файлы Netplan находятся в каталоге «/etc/netplan«, а конфигурационный файл созданный при установки системы — «/etc/netplan/00-installer-config.yaml«.

Посмотрим на этот конфиг с помощью утилиты cat:

$ cat /etc/netplan/00-installer-config.yaml # This is the network config written by 'subiquity' network: ethernets: ens18: dhcp4: true ens19: dhcp4: true version: 2

Такой формат конфигурационных файлов называется — YAML (произносится как «ямл»).

Разберём этот файл построчно:

  • network: — говорит о том, что сейчас будем настраивать сеть;
    • ethernets: — начинается настройка сетевых интерфейсов;
      • ens18: — настраиваем интерфейс ens18;
        • dhcp4: true — ip адрес будет получен по dhcp;
        • dhcp4: true — ip адрес будет получен по dhcp;

        Разбирать формат YAML не буду, просто покажу как назначить статичные ip адреса и отключить dhcp.

        Число в имени файла — означает приоритет, и чем оно выше, тем выше приоритет у файла. Создадим новый конфиг, имя можно придумать любое, но чтобы этот файл стал главнее текущего, установим приоритет 02-:

        $ sudo nano /etc/netplan/02-network.yaml network: ethernets: ens18: dhcp4: no addresses: [ 172.28.90.75/20 ] routes: - to: default via: 172.28.80.10 nameservers: addresses: [ 77.88.8.8, 77.88.8.1 ] ens19: dhcp4: no addresses: [ 192.168.0.10/24 ] version: 2

        После создания конфигурационного файла проверим его на синтаксис:

        Если в выводе пусто, значит конфигурация верна.

        Теперь можно применить настройки:

        После этого, вам придётся заново подключится к серверу по ssh, по другому ip адресу.

        Итак, мы указали ip адреса для обоих интерфейсов, а также назначили на одном из низ шлюз по умолчанию (routes: — to default) и dns сервера (nameservers).

        И запомните, на сервере Ubuntu 22.04, не нужно использовать утилиты ifdown и ifup. Здесь работает netplan, и применять настройки нужно с помощью этой утилиты, предварительно проверив конфигурацию.

        Добавление статических маршрутов

        Добавлять статические маршруты нужно также в уже знакомом файле «/etc/netplan/02-network.yaml«:

        $ sudo nano /etc/netplan/02-network.yaml network: ethernets: ens18: dhcp4: no addresses: [ 172.28.90.75/20 ] routes: - to: default via: 172.28.80.10 - to: 192.168.5.0/24 via: 172.28.80.5 on-link: true nameservers: addresses: [ 77.88.8.8, 77.88.8.1 ] ens19: dhcp4: no addresses: [ 192.168.0.10/24 ] version: 2

        При добавлении маршрута нужно указать:

        • — to: 192.168.5.0/24 — префикс (сеть назначения);
        • via: 172.28.80.5 — через какой шлюз нужно добираться до сети назначения;
        • on-link: true — активировать маршрут при поднятии интерфейса.

        Применим настройки и проверим маршрут с помощью команды ip:

        $ sudo netplan apply $ ip route show default via 172.28.80.10 dev ens18 proto static 172.28.80.0/20 dev ens18 proto kernel scope link src 172.28.90.75 192.168.0.0/24 dev ens19 proto kernel scope link src 192.168.0.10 192.168.5.0/24 via 172.28.80.5 dev ens18 proto static onlink

        В примере выше — 192.168.5.0/24 via 172.28.80.5 dev ens18 proto static onlink — и есть наш дополнительный статический маршрут.

        Итог

        Вот мы и прошли тему “Настройка сети на Ubuntu“.

        Мы познакомились с системой Netplan. Научились настраивать сеть с помощью конфигурационных файлов /etc/netplan/**-имя.yaml. Узнали как проверить и применить настройки с помощью команды netplan.

        Теперь можем указать ip адрес, адрес шлюза, адрес dns сервера, а также можем создать отдельные маршруты в системе Ubuntu 22.04

        Источник

        Как настроить статический IP-адрес в Ubuntu Server 20.04

        Настройка сети в Ubuntu Server 20.04 LTS осуществляется через утилиту Netplan.

        NetPlan — это инструмент для управления настройками сети, представленный в Ubuntu начиная с версии 17.10 и выше.

        Этот инструмент заменяет файл статических интерфейсов /etc/network/interfaces , который ранее использовался для настройки сетевых интерфейсов в Ubuntu. Теперь нужно использовать /etc/netplan/*.yaml для ваших изменений в настройках сетевых интерфейсов.

        Определение сетевых интерфейсов

        Определите все доступные сетевые интерфейсы используя команду ip или lshw :

        sudo ip a // Или sudo lshw -class network

        Определение сетевых интерфейсов

        У меня уже настроен IP адрес: 192.169.0.150. Я изменю его.

        Настройки локальной сети

        Отредактируйте файл конфигурации netplan который находится в директории /etc/netplan/ :

        sudo vim /etc/netplan/00-installer-config.yaml

        Настройки локальной сети

        Здесь придётся прописать всё ручками, если у вас ещё нет доступа по SSH. У меня этот файл уже редактировался, мне необходимо изменить только IP адрес.

        Основные настройки:

        • addresses — ip адрес который будет назначен вашей сетевой карте.
        • gateway4 — ip адрес вашего роутера.
        • nameservers — DNS сервера. Первый — наш роутер.
        • search — домен в котором будет произведен поиск. Домен можно настроить при помощи DNS сервера

        Мои настройки:

        network: ethernets: enp0s3: addresses: - 192.168.0.105/24 gateway4: 192.168.0.1 nameservers: addresses: [192.168.0.1, 8.8.4.4] optional: true version: 2 renderer: networkd

        ВАЖНО!
        Обратите внимание на пробелы! Именно пробелы должны быть, а не табуляция. Если у вас после сохранения файла не появилась ошибка типа: Error while loading /etc/netplan/00-installer-config.yaml, то файл отредактирован правильно с точки зрения его синтаксиса.

        После редактирования файла: Esc -> Shift + : -> wq! -> Enter .

        Настройки локальной сети - результат

        Если есть необходимость передать управление сетевыми устройствами утилите NetworkManager:

        network: version: 2 renderer: NetworkManager

        Настройки беспроводной сети

        Для корректной работы беспроводного интерфейса вам потребуется установить утилиту WPA supplicant , которая позволяет подключиться к точкам доступа с WPA. WPA и WPA2:

        sudo apt install wpasupplicant

        Добавьте новый файл конфигурации в каталог /etc/netplan/ :

        sudo vim /etc/netplan/01-config.yaml

        Отредактируйте файл конфигурации беспроводной сети с динамическим ip-адресом (DHCP):

        network: version: 2 renderer: networkd wifis: wlp3s0: dhcp4: yes dhcp6: no access-points: "network_ssid_name": password: "**********"

        Для беспроводной сети в которой используются статические ip-адреса подойдет следующая конфигурация:

        network: version: 2 renderer: networkd wifis: wlp3s0: dhcp4: no dhcp6: no addresses: [192.168.0.21/24] gateway4: 192.168.0.1 nameservers: addresses: [192.168.0.1, 8.8.8.8] access-points: "network_ssid_name": password: "**********"

        Применение конфигурации

        Использование netplan для генерации необходимой конфигурации:

        Для подробного вывода информации при генерации, используйте опцию —debug :

        sudo netplan --debug generate

        Применение конфигурации netplan:

        Для подробного вывода информации при применении, используйте опцию —debug :

        Применение конфигурации

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

        Подключение по SSH

        В Windows PowerShell:

        Подключение по SSH в PowerShell

        Используем Putty. Указываем IP адрес и задаем имя сессии, жмём Open:

        Подключение по SSH в Putty

        При первом подключении к серверу мы увидим сообщение. Жмём ДА.

        Первое подключение по SSH в Putty

        Вводим имя пользователя и пароль. Если всё прошло успешно, увидим:

        Соединение по SSH установлено

        На этом настройка статического IP-адреса в Ubuntu Server 20.04 LTS закончена.

        Пример конфигурации

        Пример, который показывает большинство доступных функций:

        network: version: 2 # if specified, can only realistically have that value, as networkd cannot # render wifi/3G. renderer: NetworkManager ethernets: # opaque ID for physical interfaces, only referred to by other stanzas wlp3s0: match: macaddress: 00:11:22:33:44:55 wakeonlan: true dhcp4: true addresses: - 192.168.14.2/24 - 192.168.14.3/24 - "2001:1::1/64" gateway4: 192.168.14.1 gateway6: "2001:1::2" nameservers: search: [foo.local, bar.local] addresses: [8.8.8.8] routes: - to: 0.0.0.0/0 via: 11.0.0.1 table: 70 on-link: true metric: 3 routing-policy: - to: 10.0.0.0/8 from: 192.168.14.2/24 table: 70 priority: 100 - to: 20.0.0.0/8 from: 192.168.14.3/24 table: 70 priority: 50 # only networkd can render on-link routes and routing policies renderer: networkd lom: match: driver: ixgbe # you are responsible for setting tight enough match rules # that only match one device if you use set-name set-name: lom1 dhcp6: true switchports: # all cards on second PCI bus unconfigured by # themselves, will be added to br0 below # note: globbing is not supported by NetworkManager match: name: enp2* mtu: 1280 wifis: all-wlans: # useful on a system where you know there is # only ever going to be one device match: <> access-points: "Joe's home": # mode defaults to "infrastructure" (client) password: "s3kr1t" # this creates an AP on wlp1s0 using hostapd # no match rules, thus the ID is the interface name wlp1s0: access-points: "guest": mode: ap # no WPA config implies default of open bridges: # the key name is the name for virtual (created) interfaces # no match: and set-name: allowed br0: # IDs of the components; switchports expands into multiple interfaces interfaces: [wlp1s0, switchports] dhcp4: true

        Подробнее об использовании Netplan здесь.

        Источник

Оцените статью
Adblock
detector