服务器无法识别第二个 VirtualBox 适配器

Ces*_*sar 21 server 10.04 virtualbox networking

我已经在 VirtualBox 3.2.10 下安装了 Ubuntu Server 10.04 作为来宾操作系统。我的主机系统是 Ubuntu 9.04

我已经为猜测配置了两个网络适配器(一个 NAT 一个和一个仅主机一个)

来宾可以毫无问题地识别 NAT,但是为了识别我必须运行的仅主机适配器sudo dhclient,因此无法以无头模式运行来宾。

我确定我忘记了什么。

当我ifconfig在登录后立即运行时,我看到两个接口(eth0lo),然后在运行后sudo dhclient我看到三个接口(eth0eth1lo

所以问题是:如何让 ubuntu 在启动时从第二个适配器获取 IP,以便能够无头运行并通过 ssh 访问它?

小智 20

你有没有配置接口/etc/network/interfaces?如果不添加行

 auto eth1
 iface eth1 inet dhcp
Run Code Online (Sandbox Code Playgroud)

并重新启动

  • 如果您想避免系统重启,您可以改用“sudo service network restart”。 (2认同)

小智 10

要查找可用的接口,请使用:

ip link
Run Code Online (Sandbox Code Playgroud)

这将向您显示您拥有的接口,如下所示:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:1d:bd:93 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:c2:c1:92 brd ff:ff:ff:ff:ff:ff
Run Code Online (Sandbox Code Playgroud)

现在将最后一个接口添加到接口(在本例中enp0s8

vi /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)

输入[i]以进行编辑(并使用箭头键或在 [i] 之前 移动hjkl(向左、向下、向上、向右))

auto enp0s8
iface enp0s8 inet dhcp
Run Code Online (Sandbox Code Playgroud)

用 [esc] 保存并关闭 :wq


小智 9

对于最新版本 (18.04) 的 Ubuntu,网络设置存储在 /etc/netplan/50-cloud-init.yaml.

  1. 获取设备名称dmesg | grep enp(enp 可以替换为您的设备类型)。

  2. 然后插入(对于名为 enp0s8 的设备):

    enp0s8:
      addresses: []
      dhcp4: true
      optional: true
    
    Run Code Online (Sandbox Code Playgroud)
  3. 然后用于sudo netplan apply应用更改。