Рейтинг:0

How do I set a static IP in Ubuntu 20.04.3 LTS?

флаг pk

I'm trying to set up a lab computer as a ssh server following this guide. One of the steps is setting up a static IP address. So, I was glad to find this answer. Following it, I created /etc/netplan/50-cloud-init.yaml file, pasted

network:
    ethernets:
        enp0s3:
            addresses: [desired_ip_address/24]
            gateway4: my_router_ip_address
            dhcp4: no
            nameservers:
              addresses: [1.1.1.1,8.8.8.8]
            optional: true
    version: 2

and run

sudo ip addr flush my_ethernet_num
sudo systemctl restart networking.service

where my_ethernet_num == enp9s0. Buuuut, after this ip a showed no ip address for the Ethernet:

svyatoslav@svyatoslav-desktop ~> ip a                                    (base) 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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: enp9s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether a8:a1:59:4b:e8:bb brd ff:ff:ff:ff:ff:ff
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:f3:38:2f:33 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

and sudo lshw -C network yielded *-network DISABLED. Then I tried to use that guide (section 'Static IP Address Assignment'). I created /etc/netplan/99_config.yaml, pasted the necessary code, run sudo netplan apply. Nothing changed except that I STOPPED SEEING wired connections in network settings... I tried the answer from here, and the 'Wired' section returned. But I can't change anything (for example, I can't pick 'Manual' option) screenshot.

So, the questions are: how can I return the ability of changing it (in order to follow one more guide), or is there any other solution that will succeed in setting static ip address?...

--EDIT from 12/05/2021--

Here are all of my .yaml files showed by ls -al /etc/netplan:

01-network-manager-all.yaml:

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

50-cloud-init.yaml:

network:
  ethernets:
    enp0s3:
      adresses: [192.168.0.116/24]
      gateway: 93.175.20.231
      dhcp4: no
      nameservers:
        addresses: [1.1.1.1,8.8.8.8]
      optional: true
  version: 2

99_config.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
        - 192.168.0.116/24
      gateway4: 192.168.0.1
      nameservers:
        search: [mydomain, otherdomain]
        addresses: [192.168.0.1, 8.8.8.8]
raj avatar
флаг cn
raj
Вероятно, вам следует удалить/отменить все сделанные вами изменения, чтобы вернуться к исходной конфигурации. Затем просто используйте опцию «Вручную» в графическом интерфейсе. Нет необходимости возиться с файлами конфигурации вручную.
TopCoder2000 avatar
флаг pk
@raj, спасибо за ваш комментарий! Если бы я только знал, как отменить все изменения... Кстати, после перезагрузки я вдруг обнаружил, что могу вносить изменения в настройки! Итак, я попробую вариант с графическим интерфейсом и напишу о результатах :)
heynnema avatar
флаг ru
Почему ваш .yaml использует enp0s3, когда ваш интерфейс — enp9s0? Вы используете серверную или настольную установку?
TopCoder2000 avatar
флаг pk
@heynnema, потому что это было в ответе на ['Как установить статический IP-адрес в Ubuntu?'] (https://askubuntu.com/questions/766131/how-do-i-set-a-static-ip -in-ubuntu/767693#767693). Как мы видим, в вопросе используется enp0s25, но затем в ответе используется enp0s3, поэтому я подумал, что это всегда должно быть enp0s25. > Вы используете серверную или настольную установку? Я хотел бы использовать настольную установку, но я не знаю, какую конкретно я использовал... Есть ли разница? Я пытался следовать установке рабочего стола, но мог запутаться.
heynnema avatar
флаг ru
@ TopCoder2000 Ваша сеть не может работать с enp0s3 в файле .yaml. Это должен быть enp9s0. Но если вы используете настольную установку, то ваш .yaml все равно неправильный. Установка рабочего стола имеет графический интерфейс, установка сервера — только интерфейс командной строки. Кроме того, ваш самопринятый ответ на самом деле не имеет большого смысла.
heynnema avatar
флаг ru
@TopCoder2000 Сколько у вас файлов .yaml в /etc/netplan? Покажи мне `ls -al /etc/netplan`.
TopCoder2000 avatar
флаг pk
Спасибо за готовность помочь, @heynnema! >Кроме того, твой самопринятый ответ на самом деле не имеет большого смысла Почему? Когда я должен принять ответ тогда? > Сколько у вас файлов .yaml в /etc/netplan? Вот результат `всего 28 drwxr-xr-x 2 root root 4096 Ð½Ð¾Ñ 29 11:45 ./ drwxr-xr-x 153 корень корень 12288 руб 5 14:15 ../ -rw-r--r-- 1 root root 104 Р°Р²Р³ 5 2019 01-network-manager-all.yaml -rw-r--r-- 1 root root 204 Ð½Ð¾Ñ 29 11:45 50-cloud-init.yaml -rw-r--r-- 1 root root 239 Ð½Ð¾С 29 11:07 99_config.yaml` P. S. как сделать новую строчку в комментариях?..
heynnema avatar
флаг ru
@TopCoder2000 Ах! У вас есть 3 файла .yaml... и могу поспорить, что они конфликтуют. Отредактируйте свой вопрос и покажите мне ВСЕ файлы .yaml БЕЗ редакций, и тогда я смогу дать вам ответ. Вы не можете сделать новую строку в комментариях... поэтому такие данные относятся к вашему вопросу как редактирование. Ваш ответ ниже не отвечает на ваш вопрос и не решает вашу проблему ... поэтому я сказал, что это действительно не имеет смысла.
TopCoder2000 avatar
флаг pk
@heynnema, отредактировал :) Где легко объяснить, что такое netplan и что делают файлы .yaml? Я хочу иметь поверхностное понимание.
heynnema avatar
флаг ru
@TopCoder2000 Статус, пожалуйста...
Рейтинг:0
флаг ru

Выберите ОДНУ из следующих двух конфигураций...


Установка сервера со статическим IP...

Удалить /etc/netplan/01-network-manager-all.yaml

Удалить /etc/netplan/50-cloud-init.yaml

Отредактируйте /etc/netplan/99_config.yaml, чтобы он выглядел ТОЧНО так...

Запись: что касается 192.168.0.116, убедитесь, что этот адрес находится за пределами диапазона DHCP, установленного на вашем маршрутизаторе, и не используется где-либо еще.

Запись: Для серверов имен DNS выбирайте серверы из одного источника... Google, Cloudflare, OpenDNS и т. д. (максимум 3).

сеть:
  версия: 2
  визуализатор: сетевой
  Ethernet:
    enp9s0:
      адреса: [192.168.0.116/24]
      шлюз4: 192.168.0.1
      серверы имен:
        адреса: [192.168.0.1, 8.8.8.8]
      необязательно: правда

sudo netplan генерировать

применить sudo netplan

перезагрузка


Настольная установка со статическим IP...

Удалить /etc/netplan/50-cloud-init.yaml

Удалить /etc/netplan/99_config.yaml

Отредактируйте /etc/netplan/01-network-manager-all.yaml, чтобы он выглядел ТОЧНО так...

Запись: Используйте графический интерфейс NetworkManager для настройки статического IP-адреса для «Проводного подключения».

# Разрешить NetworkManager управлять всеми устройствами в этой системе
сеть:
  версия: 2
  визуализатор: NetworkManager

sudo netplan генерировать

применить sudo netplan

перезагрузка


Запись: Видеть https://netplan.io/examples/ для примеров и информации о дизайне netplan.

TopCoder2000 avatar
флаг pk
Спасибо за ваш ответ и примеры netplan! Теперь `ip a` показывает правильный вывод. Но как настроить статический IP-адрес с помощью графического интерфейса NetworkManager?
heynnema avatar
флаг ru
@ TopCoder2000 Во-первых, вы не можете использовать обе части моего ответа одновременно. Это часть 1 или часть 2. Если вы используете часть 2, мой ответ гласит * «Используйте графический интерфейс NetworkManager, чтобы настроить свой статический IP-адрес для «Проводного подключения»» *. См. вкладку IPv4. Нажмите на кнопку вручную. Заполните адрес, маску, шлюз и DNS-серверы и отключите DNS Auto.
TopCoder2000 avatar
флаг pk
Да, я помню! Приму, как только вопросов не будет :) Да, я использую второй вариант. Но вы также написали вчера, что «статические IP-адреса должны быть установлены за пределами диапазона DHCP, установленного в маршрутизаторе». Но откуда я знаю этот набор? Например, второй ответ из [здесь] (https://www.quora.com/How-can-I-find-the-number-of-available-IP-addresses-in-my-DHCP) говорит, что мы нужно проверить конфигурацию DHCP-сервера...
heynnema avatar
флаг ru
@ TopCoder2000 Вы должны войти на страницу администратора вашего маршрутизатора и найти настройки DHCP-сервера. Для статического IP-адреса вашего компьютера вам необходимо выбрать адрес за пределами диапазона адресов DHCP-сервера.
TopCoder2000 avatar
флаг pk
А, хорошо! Спасибо!

Ответить или комментировать

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