Как установить статический IP-адрес на Raspberry Pi


Если вы когда-либо работали с платой Raspberry Pi, вы, вероятно, сталкивались с тем неприятным моментом, когда ваш Raspberry Pi просто исчезает из сети. Вы пытаетесь подключиться к нему по SSH или получить доступ к локальной веб-панели, но внезапно его там нет. Вы запускаете терминал и вводите команду ping raspberrypi.local, и ничего. Оказывается, ваш маршрутизатор на этот раз присвоил Raspberry Pi другой IP-адрес, и теперь вам приходится снова его искать. Установка статического IP-адреса на Raspberry Pi может решить эту проблему навсегда.

Как установить статический IP-адрес на Raspberry Pi

Особенно часто такая проблема возникает во время работы над проектами в сфере IoT, настройки MQTT-серверов или запуска скриптов домашней автоматизации, для которых требовалась надежная доступность Raspberry Pi. Если статическая конфигурация IP-адреса вашего Raspberry Pi меняется слишком часто, это подробное руководство покажет, как настроить статический IP-адрес на Raspberry Pi через NetworkManager (с помощью nmcli) и с помощью графического интерфейса пользователя.

Установка статического IP-адреса на Raspberry Pi: из файла dhcpcd.conf (сбой) в NetworkManager (успех)

Как и многие другие, я начал с редактирования файла /etc/dhcpcd.conf, метода, рекомендованного в большинстве руководств по установке статического IP-адреса на Raspberry Pi. Я добавил все необходимые строки, перезагрузил устройство, но ничего не изменилось. Pi по-прежнему получал случайный IP-адрес от моего маршрутизатора.

Сначала я предположил, что сделал что-то не так. Но после нескольких проверок и повторных попыток стало ясно, что дело обстоит глубже. Именно тогда я обнаружил, что в последних версиях Raspberry Pi используется статический IP-адрес сетевого менеджера. И когда за управление отвечает NetworkManager, файл dhcpcd.conf полностью игнорируется.

Если у вас установлена ​​последняя версия Pi OS, и статические настройки Wi-Fi на Raspberry Pi не сохраняются, возможно, у вас происходит то же самое.

Почему NetworkManager (nmcli) лучше подходит для настройки статического IP-адреса на Raspberry Pi

Честно говоря, этот подход кажется гораздо более современным. В отличие от старого трюка с dhcpcd.conf, который можно было незаметно переопределить или проигнорировать, использование CLI NetworkManager дает нам полный контроль над сетью. Он также хорошо работает как с Wi-Fi, так и с Ethernet-интерфейсами, и даже отлично работает с безмониторной конфигурацией Raspberry Pi . 

Если вы используете Raspberry Pi OS Bookworm или любую другую недавно выпущенную версию, вам следует использовать именно этот метод, особенно если файл dhcpcd.conf работает не так, как вы ожидаете.

Преимущества статического IP-адреса на Raspberry Pi

Почему же настройка статического IP-адреса для Raspberry Pi крайне важна? По умолчанию Raspberry Pi получает свой IP-адрес динамически от маршрутизатора с помощью DHCP. Это означает, что при каждой перезагрузке есть вероятность получения другого адреса. Хотя это может быть приемлемо для обычного использования, это превращается в кошмар при работе с более сложными конфигурациями, такими как:

⇒ Удаленные SSH или VNC соединения

⇒ Размещение локального веб-сервера или панели управления

⇒ Настройка домашнего помощника или умных устройств

⇒ Настройка переадресации портов для доступа к вашему Raspberry Pi извне вашей сети

⇒ Использование Raspberry Pi в качестве MQTT-брокера, файлового сервера или сетевого хранилища (NAS)

Все эти сценарии использования выигрывают от статической настройки IP-адреса Raspberry Pi. Это обеспечивает вашему сетевому Pi стабильное присутствие, подобно постоянному рабочему месту в общем офисе, поэтому все остальные устройства точно знают, где его найти.

Метод 1: Установка статического IP-адреса на Raspberry Pi с помощью nmcli (NetworkManager)

Когда я понял, что dhcpcd.conf не подойдёт, я начал изучать, как Raspberry Pi настраивает статический IP-адрес NetworkManager для управления конфигурацией. Хорошая новость в том, что у NetworkManager есть мощный интерфейс командной строки под названием nmcli, и как только вы освоите его, всё станет довольно просто.

Вот как я исправил проблему с настройкой статического IP-адреса на Raspberry Pi с помощью nmcli.

Шаг 1: Определите текущий IP-адрес вашего Raspberry Pi.

Прежде чем что-либо настраивать, я хотел узнать, какой IP-адрес в данный момент использует мой Raspberry Pi. Это даст хорошую отправную точку для предотвращения конфликтов и подтверждения активности моей сети.

В терминале я выполнил следующую команду:

hostname -I

Выполнение на Raspberry Pi команды hostname -I

В результате был выведен текущий IP-адрес, который в моем случае выглядел примерно так: 192.168.29.71. Это временный динамический адрес, назначаемый маршрутизатором через DHCP.

Шаг 2: Найдите свой шлюз по умолчанию (IP-адрес вашего маршрутизатора)

Далее мне нужно было получить IP-адрес моего маршрутизатора. Это шлюз, который Raspberry Pi использует для доступа к интернету и другим устройствам в локальной сети. Я использовал следующую команду:

ip r | grep default

Это показало мне что-то вроде:

Выполнение на Raspberry Pi команды ip r | grep default

Итак, мой шлюз — 192.168.29.1. Именно его я буду использовать позже как для поля шлюза, так и для поля DNS.

Шаг 3: Проверьте текущее имя сетевого подключения.

Поскольку я был подключен по Wi-Fi, мне нужно было узнать имя активного беспроводного профиля. В NetworkManager каждое соединение имеет имя (обычно совпадающее с вашим SSID). Я вывел их список, используя:

nmcli connection show

В результате был выведен список известных и активных подключений. Мое Wi-Fi-соединение отображалось следующим образом:

Выполнение на Raspberry Pi команды nmcli connection show

В моем случае "Circuit Digest" — это название моего активного соединения. Если вы используете Ethernet, вы, вероятно, увидите что-то вроде "Wired connection 1".

Шаг 4: Проверка существующей информации об IPv4 (необязательно, но полезно)

Прежде чем что-либо перезаписывать, я хотел взглянуть на текущие настройки IPv4. Эта команда показывает только конфигурацию IPv4 для соединения:

nmcli connection show "Circuit Digest" | grep ipv4

Проверка текущих настроек IPv4 на Raspberry Pi

Это позволило мне понять, как в данный момент назначается IP-адрес, обычно с параметром IPv4.method: auto при использовании DHCP.

Шаг 5: Настройка статического IP-адреса на Raspberry Pi

Теперь начинается самое интересное — присвоение статического IP-адреса на Raspberry Pi.

Я решил присвоить своему Raspberry Pi адрес 192.168.29.155, который находится в моей подсети и вне динамического пула DHCP моего маршрутизатора. Вот точные команды, которые я использовал:

sudo nmcli connection modify "Circuit Digest"
ipv4.addresses 192.168.29.155/24
ipv4.gateway 192.168.29.1
ipv4.dns 192.168.29.1
ipv4.method manual

Вот что делает каждая из этих команд.

Последовательность команд для установки статического IP-адреса на Raspberry Pi

ipv4.addresses Назначает желаемый статический IP-адрес с маской подсети (/24 = 255.255.255.0)
ipv4.gateway IP-адрес вашего маршрутизатора
ipv4.dns Указывает на DNS-сервер, который часто совпадает с вашим шлюзом.
ipv4.method manual Указывает NetworkManager использовать статическую конфигурацию вместо DHCP.

Если вы используете Ethernet вместо Wi-Fi, просто замените "Circuit Digest" на имя Ethernet-соединения.

Шаг 6: Перезапустите соединение, чтобы применить изменения статического IP-адреса.

После настройки статического IP-адреса на терминале Raspberry Pi мне потребовалось разорвать, а затем снова установить соединение, чтобы использовалась новая конфигурация.

sudo nmcli connection down "Circuit Digest"
sudo nmcli connection up "Circuit Digest"

Разрыв и повторная установка соединения на Raspberry Pi

В этот момент Raspberry Pi на короткое время отключился от Wi-Fi, а затем снова подключился, используя новый статический IP-адрес, который я ему назначил.

Шаг 7: Убедитесь, что статический IP-адрес установлен.

Чтобы убедиться, что всё работает, я выполнил следующую команду:

hostname -I

На этот раз результат был следующим:

Проверка установки статического IP-адреса на Raspberry Pi

Отлично. Настройка статического IP-адреса Wi-Fi на Raspberry Pi была успешно выполнена (192.168.29.155), и я смог подключиться к нему по SSH, пинговать его с других устройств и уверенно настроить переадресацию портов.

Основные команды для установки статического IP-адреса

Задача Команда Цель
Проверьте текущий IP-адрес hostname -I Отобразить текущий IP-адрес
Найти шлюз ip r | grep default Получить IP-адрес маршрутизатора
Список подключений nmcli con show Показать все сетевые профили
Установить статический IP-адрес nmcli con modify Настройте статический адрес
Перезапустите сеть nmcli con down/up Применить новые настройки

Как видим, этот способ установки статического IP-адреса достаточно несложен. Но есть и другой способ, возможно, он вам понарвится больше.

Способ 2: Установка статического IP-адреса на Raspberry Pi с помощью графического интерфейса пользователя

Хотя я обычно работаю с Raspberry Pi, настраивая статические IP-адреса через терминал, особенно для проектов без графического интерфейса, иногда я использую Raspberry Pi OS с графическим интерфейсом. Если вы используете полную версию с графическим интерфейсом (ту, которая загружается в привычную среду рабочего стола), вам вообще не нужно касаться терминала, чтобы установить статический IP-адрес на Raspberry Pi.

Примечание: этот метод работает только при использовании Raspberry Pi OS с графическим интерфейсом рабочего стола. Если вы используете Raspberry Pi OS Lite или работаете на Pi без монитора, этот подход будет недоступен. В этом случае вам потребуется использовать метод nmcli, описанный ранее.

Для настройки статического IP-адреса через графический интерфейс Raspberry Pi OS выполните следующую последовательность действий.

1. Щелкните значок сети.

Сначала я нажал на значок сети в правом верхнем углу экрана рабочего стола Raspberry Pi. Он выглядит либо как символ Wi-Fi, либо как две стрелки (для Ethernet), в зависимости от способа подключения вашего Pi.

Значок сети в графическом интерфейсе Raspberry Pi

2. Откройте Advanced Settings > Edit Connections («Дополнительные настройки» > «Изменить подключения»).

Я выбрал пункт "Advanced Options" («Дополнительные параметры») в появившемся меню, а затем нажал "Edit Connections" («Изменить подключения»). Открылось окно Network Connections («Сетевые подключения»), где перечислены все настроенные сетевые профили.

Пункт меню для редактирования подключений в графическом интерфейсе Raspberry Pi

3. Выберите правильное сетевое подключение.

В разделе Wi-Fi я выбрал свою беспроводную сеть (в моем случае она соответствовала SSID, к которой я был подключен). Если вы используете Ethernet, то там будет указано ваше проводное подключение.

Выбор сетевого поключения в графическом интерфейсе Raspberry Pi

4. Установите режим «Вручную».

По умолчанию было установлено значение «Автоматический (DHCP)», поэтому я изменил его на Manual  («Вручную») в выпадающем списке Method («Метод»).

Изменение способа назначения IP-адреса в графическом интерфейсе Raspberry Pi

5. Перейдите на вкладку «Настройки IPv4» (IPv4 Settings).

Выбрав соединение и нажав «Редактировать», я перешел на вкладку IPv4 Settings («Настройки IPv4») из меню в верхней части окна.

Изменение настроек IPv4 в графическом интерфейсе Raspberry Pi

6. Введите статический IP-адрес, шлюз и подсеть.

В разделе "Addresses" («Адреса») я добавил желаемый статический IP-адрес, маску подсети (в формате CIDR) и шлюз. Например, я ввел:

Адрес 192.168.29.175
Сетевая маска 24
Шлюз 192.168.29.1

Это указывает Raspberry Pi всегда использовать 192.168.29.175 в качестве своего локального IP-адреса и направлять трафик через маршрутизатор 192.168.29.1. 

Примечание: при управлении несколькими Raspberry Pi установите статический IP-адрес для каждого устройства, используя последовательные адреса, чтобы упростить управление сетью и идентификацию устройств.

7. Введите адрес DNS-сервера.

В поле «DNS-серверы» ниже я ввел 192.168.29.1 (адрес моего маршрутизатора), чтобы использовать его в качестве DNS-сервера. При желании вы также можете использовать общедоступный DNS-сервер, например, 8.8.8.8 (DNS Google).

8. Нажмите «Применить» (Apply) и перезагрузите (Reboot) компьютер.

После того, как все данные были введены, я нажал Apply («Применить»), чтобы сохранить изменения. Затем я перезагрузил Raspberry Pi, чтобы убедиться, что настройки сохранятся.

Примечание: при выборе статической конфигурации IP-адреса для Raspberry Pi убедитесь, что вы выбрали адрес вне диапазона DHCP вашего маршрутизатора, но в пределах той же подсети.

Применение измененных настроек подключения в графическом интерфейсе Raspberry Pi

Сравнение методов установки статического IP-адреса для Raspberry Pi

Метод Сложность Поддержка Headless режима Совместимость с Pi OS Лучше всего подходит для
nmcli (NetworkManager) Середина  Да Последние версии Все настройки
Графический интерфейс пользователя для рабочего стола Легкий  Нет Только для настольных компьютеров Новички с монитором
dhcpcd.conf (устаревшая версия) Легкий  Да Только для более старых версий Устаревшие системы

Если вы используете последнюю версию Raspberry Pi OS с NetworkManager, а большинство пользователей именно так и делают, вы обнаружите, что традиционные методы, такие как редактирование файла /etc/dhcpcd.conf, больше не работают. Но с помощью nmcli настройка статического IP-адреса на Raspberry Pi становится не только возможной, но и более удобной. Вы получаете полный контроль, и это работает как для Wi-Fi, так и для Ethernet- интерфейсов.

Независимо от того, разрабатываете ли вы проект в сфере Интернета вещей, настраиваете локальный веб-сервер, запускаете Home Assistant или просто хотите получить надежный доступ по SSH без изменения IP-адреса, эта статическая конфигурация IP-адреса имеет решающее значение для доступа по SSH, веб-серверов и проектов в сфере Интернета вещей на вашем Raspberry Pi.

Часто задаваемые вопросы о настройке статического IP-адреса на Raspberry Pi

⇥ Почему редактирование файла /etc/dhcpcd.conf не работает для установки статического IP-адреса для Raspberry Pi? 
В последних версиях ОС Raspberry Pi Network Manager запущен по умолчанию, поэтому любые настройки, заданные в dhcpcd.conf, не будут учитываться. Самый простой, короткий и гарантированный способ установить статический IP-адрес — использовать nmcli.

⇥ Как установить статический IP-адрес на Raspberry Pi без графического интерфейса? 
Используя команду nmcli. sudo nmcli connection modify "connection-name" ipv4. addresses IP/24 IPv4.gateway GATEWAY IPv4.DNS IPv4.Method manual ... затем перезапустите соединение. 

⇥ Можно ли установить статический IP-адрес как для Wi-Fi, так и для Ethernet на Raspberry Pi? 
Конечно! Вы можете назначить статические IP-адреса для обоих интерфейсов с помощью двух разных команд nmcli. Для обоих подключений — Wi-Fi и Ethernet — можно установить статический IP-адрес.

⇥ Как проверить, правильно ли работает статический IP-адрес Raspberry Pi?
Используйте команду hostname -I для проверки текущего IP-адреса, проверьте пинг Pi с другого компьютера и убедитесь, что IP-адрес сохраняется после перезагрузки. Также проверьте это с помощью команды ip addr show.

⇥ Что произойдет, если я укажу статический IP-адрес, который уже существует?
Возникнут конфликты IP-адресов, что приведет к проблемам с сетевым подключением. Всегда проверяйте свою сеть сначала с помощью nmap или списка устройств вашего маршрутизатора, прежде чем назначать статические IP-адреса.

⇥ Повлияет ли статический IP-адрес на производительность Raspberry Pi?
Нет, статический IP-адрес не повлияет на работу Raspberry Pi или других устройств. Он просто определяет, как Pi получает свой IP-адрес, что делает использование сети немного более стабильным и надежным.

⇥ Какой диапазон IP-адресов следует использовать для предварительной установки статического адреса Raspberry Pi?
Вам нужен IP-адрес, который находится вне диапазона DHCP, но при этом в той же подсети: 192.168.1.100-254 или 192.168.0.100-254 и т. д., в зависимости от конфигурации вашего маршрутизатора.

(Проголосуй первым!)
Загрузка...
14 просмотров

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

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