Как настроить статический IP для сетевого менеджера в Virtual Box на Ubuntu Server


12

Привет, есть кто-нибудь знакомый с не-GUI версии Ubuntus Network Manager?

Я хотел бы установить статический IP-адрес с ним в virtualbox, не касаясь файла /etc/network/interfaces.

  • IP: 192.168.56.101
  • Шлюз: 102.168.1.1
  • Маска подсети: 255.255.255.0

Кроме того, я хотел бы настроить второй сетевой интерфейс с динамическим IP-адресом для подключения к Интернету с помощью Vbox.

Ответы:


6

Вам нужно использовать Network Manger из командной строки, это nmcli .

Во-первых, вы можете перечислить доступные соединения, о которых знает Network Manager, с помощью следующего: важно найти имя, так как идентификатор устройства не используется:

# nmcli con show

Это даст вам что-то вроде:

NAME                UUID                                  TYPE            DEVICE 
Wired connection 1  7a3b674a-f346-3cfb-8b30-ff70e6db1b60  802-3-ethernet  enp0s3

Затем вы можете изменить соединение следующим образом:

nmcli con mod "Wired connection 1"
  ipv4.addresses "HOST_IP_ADDRESS/IP_NETMASK_BIT_COUNT"
  ipv4.gateway "IP_GATEWAY"
  ipv4.dns "PRIMARY_IP_DNS,SECONDARY_IP_DNS"
  ipv4.dns-search "DOMAIN_NAME"
  ipv4.method "manual"

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

Если вы хотите настроить соединение на использование DHCP, вы можете использовать следующее:

nmcli con mod "Wired connection 1"
  ipv4.addresses ""
  ipv4.gateway ""
  ipv4.dns ""
  ipv4.dns-search ""
  ipv4.method "auto"

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

Чтобы добавить сеть, используйте:

nmcli con add ...

С похожими параметрами.

Чтобы активировать настройки, перезагрузите компьютер. (Я попытался перезапустить Network Manager, но, похоже, это не активировало изменения, но перезагрузка сделала.)


Флаг типа не был очевиден для меня. Я настроил eth1интерфейс внутренней сети, используя статический IP. sudo nmcli con add type "ethernet" ifname "eth1" con-name "intnet" autoconnect "yes" ip4 "192.168.0.1/24" gw4 "192.168.0.2"
Джек Майнер Юз

6

Для тех, кто хочет подход NetworkManager, я просто прошел через это, взяв галс предложенный mss. На вики Debian есть немного информации и полная документация по опциям на сайте разработчиков GNOME . (Из документации по RHEL7 похоже, что их версия nmcliимеет дополнительную поддержку, так что, надеюсь, это получится.)

Динамический IP-адрес довольно прост (просто настройте сеть, но не на стороне VBox):

[802-3-ethernet]
auto-negotiate=true
mac-address=XX:XX:XX:XX:XX:XX

[connection]
id=Wired connection 1
uuid=xxx-xxxxxx-xxxxxx-xxxxxx-xxx
type=802-3-ethernet
timestamp=0

[ipv6]
method=disabled

[ipv4]
method=auto

Используйте uuidgen(пакет uuid-runtime), чтобы сделать uuid, и, конечно, правильно заполните MAC-адрес. (Обычно лучше сделать это, чем указать имя устройства.)

Для статического IP (обратите внимание на точку с запятой в массиве DNS!):

[802-3-ethernet]
auto-negotiate=true
mac-address=XX:XX:XX:XX:XX:XX

[connection]
id=Wired connection 2
uuid=xxx-xxxxxx-xxxxxx-xxxxxx-xxx
type=802-3-ethernet
timestamp=0

[ipv6]
method=ignore

[ipv4]
method=manual
dns=8.8.8.8;8.8.4.4;
address1=192.168.56.101/24,192.168.1.1

1
Это каталог, в котором /etc/NetworkManager/system-connections/
хранится

3

Обычно я редактирую файл /etc/network/interfacesи модифицирую информацию примерно так:

iface eth0 inet static
address 192.168.56.101
netmask 255.255.255.0
gateway 192.168.56.1 (u had 102.168.1.1. So, I guessed it was a mistake)

5
ОП сказал, что он не хочет трогать / etc / network / interfaces
guntbert

Вы правы, я хотел бы сделать это через сетевой менеджер. Но так как в документации этого нет, трогательный файл интерфейсов будет в порядке.
Джош

2

Поскольку вопрос конкретно касается NetworkManager: я никогда не настраивал NM-соединение из cli, и nmcliинструмент, похоже, не имеет возможности создать соединение. Но вы можете посмотреть, что делает GUI, когда вы объявляете соединение системным. Это создает файл, /etc/NetworkManager/system-connectionsно я не знаю, документирован ли формат файла где-нибудь.

Вы должны иметь возможность включить одно из этих соединений через nmcli con up $name.


2

Редактировать:

Чтобы добавить другой интерфейс для доступа к Интернету в Vbox, используйте вкладку «Сеть» в меню настроек. Затем включите дополнительный интерфейс и установите для него NAT (так как это самый простой способ получить доступ к Интернету). И в виртуальной машине добавить еще один интерфейс с dhcp, как это: allow-hotplug eth1и после переноса строкиiface eth1 inet dhcp

(По некоторым причинам мое форматирование пошло плохо.)

И таким образом вы можете получить доступ к сети, используя соединение с операционной системой хоста.


«Клиент» командной строки сетевого менеджера сбивает с толку и в значительной степени бесполезен по сравнению со стандартным способом управления интерфейсами в Linux (и большинстве других Unix-систем). Обычно вы сначала отключаете уже включенный сетевой интерфейс (если он включен) {запустите ifconfig, чтобы выяснить это}:

ifconfig eth0 down #note: I assume you want to configure eth0, replace it if not

После этого отредактируйте файл / etc / network / interfaces (я предпочитаю использовать nano):

sudo nano /etc/network/interfaces

И добавьте раздел в соответствии с:

allow-hotplug eth0
iface eth0 inet static
address 192.168.56.101
netmask 255.255.255.0
gateway 192.168.56.1

Также имейте в виду, что вам нужно удалить любое другое присутствие eth0 из файла, иначе система не сможет правильно проанализировать файл и у вас не будет сетевого подключения. И, наконец, вам нужно снова включить интерфейс:

ifup eth0

И это должно привести к тому, что ваша Ubuntu автоматически настроит интерфейс с желаемыми параметрами, когда обнаружит, что «кабель подключен».

Также, если вы действительно хотите избежать редактирования файла интерфейсов, вы можете использовать:

ifconfig eth0 192.168.56.101 netmask 255.255.255.0 gateway 192.168.56.1 up

Я думаю, что таким образом изменения не будут постоянными (вы потеряете их между перезагрузками и т. Д.), Но я сам не проверял это.


Вы могли бы рассказать о команде ip- ifconfigидет на убыль.
Гантберт

2

В настоящее время в версиях Ubuntu включен Network Manager.

Вы можете получить имя соединения с помощью команды:

nmcli con show

Вы можете изменить свой статический IP-адрес из командной строки:

sudo nmcli con mod "Connection name" ipv4.addresses xxx.xxx.xxx.xxx/24

Примечание: / 24 определяет маску сети для 255.255.255.0

Файл /ect/network/interfacesигнорируется, если у вас есть свойство managed=falseна/etc/NetworkManager/NetworkManager.conf

[ifupdown]
managed=**false**

0

предполагая, что вы имели в виду 192.168.1.1 вместо 102.168.1.1. 192.168.56.101 и 192.168.1.1 находятся в разных сетях и не будут общаться без посторонней помощи. что вам нужно это:

iface eth0 inet static
address 192.168.56.101
netmask 255.255.255.0
gateway 192.168.56.1

при условии, что у вас есть ящик (маршрутизатор / коммутатор layer3 и т. д.) с IP-адресом 192.168.56.1 для ответа.

В / 24 (255.255.255.0) необходимо, чтобы первые три октета совпадали на хосте и шлюзе по умолчанию, 192.168.56.X или 192.168.1.X.


1
ОП сказал, что он не хочет трогать / etc / network / interfaces.
Гантберт

Это верно. Я так сказал. А пока мне нужно решение для нетплана. Работает ли команда nmcli ниже, когда используется netplan
Джош

0

Легко настроить статический IP со шлюзом и DNS:

$ sudo nmcli con mod Your-Network ipv4.addr 172.17.100.118/23 gw4 172.17.100.1 ipv4.dns 1.1.1.1,1.0.0.1

Совместимо ли это с netplan?
Джош
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.