如何在 Ubuntu Server 上的 Virtual Box 中为网络管理器设置静态 IP

如何在 Ubuntu Server 上的 Virtual Box 中为网络管理器设置静态 IP

你好,有谁熟悉非 GUI 版本的 Ubuntu 网络管理器吗?

我想在 virtualbox 中设置一个静态 IP,而不触碰该文件/etc/network/interfaces

  • IP:192.168.56.101
  • 网关:102.168.1.1
  • 网络掩码:255.255.255.0

此外,我想设置一个具有动态 IP 的第二个网络接口,以便使用 Vbox 连接到互联网。

答案1

您需要从命令行使用网络管理器,这是命令行

首先,您可以用下列命令列出网络管理器所知道的可用连接,查找名称很重要,因为未使用设备 ID:

# 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 ...

具有相似的参数。

要使设置生效,请重新启动。(我尝试重新启动网络管理器,但似乎没有激活更改,但重新启动可以。)

答案2

对于那些想要 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(package 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

答案3

目前 Ubuntu 版本已启用网络管理器。

您可以使用以下命令获取连接名称:

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**

答案4

由于问题专门针对 NetworkManager:我从未从 cli 配置过 NM 连接,并且该nmcli工具似乎没有创建连接的选项。但您可能想看看当您将连接声明为系统连接时 GUI 会做什么。它会创建一个文件,/etc/NetworkManager/system-connections但我不知道文件格式是否在任何地方有记录。

您应该能够通过 启用其中一个连接nmcli con up $name

相关内容