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

Jos*_*osh 17 command-line virtualbox network-manager networking

嗨,有人熟悉 ubuntus 网络管理器的非 gui 版本吗?

我想在不接触文件的情况下在 virtualbox 中设置一个静态 IP /etc/network/interfaces

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

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

Joh*_*nds 11

您需要从命令行使用 Network Manger,这是nmcli

首先,您可以使用以下内容列出网络管理器知道的可用连接,这对于找到名称很重要,因为不使用设备 ID:

# nmcli con show
Run Code Online (Sandbox Code Playgroud)

这会给你类似的东西:

NAME                UUID                                  TYPE            DEVICE 
Wired connection 1  7a3b674a-f346-3cfb-8b30-ff70e6db1b60  802-3-ethernet  enp0s3
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用以下内容修改连接:

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"
Run Code Online (Sandbox Code Playgroud)

当您输入上述内容时,请使用一行,我只是将其拆分为单独的行以使其更清楚。

如果要设置连接使用 DHCP,可以使用以下命令:

nmcli con mod "Wired connection 1"
  ipv4.addresses ""
  ipv4.gateway ""
  ipv4.dns ""
  ipv4.dns-search ""
  ipv4.method "auto"
Run Code Online (Sandbox Code Playgroud)

您需要所有空引号,因为它们会删除以前拥有的任何设置。

要添加网络,请使用:

nmcli con add ...
Run Code Online (Sandbox Code Playgroud)

具有相似的参数。

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


小智 6

对于那些想要 NetworkManager 方法的人,我只是通过了这个,采用了 mss 建议的方法。在Debian wiki上有一些信息,在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
Run Code Online (Sandbox Code Playgroud)

使用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
Run Code Online (Sandbox Code Playgroud)

  • 这是文件所在的目录,显示在 `/etc/NetworkManager/system-connections/` 上方 (4认同)