我正在使用 Ubuntu Server 设置服务器。我使用一台单独的机器来设置它,因为我的服务器没有任何显示输出。我把硬盘放在另一台电脑上,然后从那里开始工作。起初,一切都正常,但我把它放在服务器上,发现以太网不工作。它在我的笔记本电脑上也不工作,我现在把硬盘挂在笔记本电脑上。
以下是以太网的 ifconfig 输出:
lo: flags-73<UP, LOOPBACK, RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 sinet61 prefixlen 128 scopeid ox10 cost> loop txqueuelen 1000 (Local Loopback) RX packets 180 bytes 11976 (11.9 KB) RX errors 0 dropped o overruns 0 frame o TX packets 180 bytes 11976 (11.9 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions
编辑:/etc/netplan 有一个名为 50-cloud-init.yaml 的文件,这是它的输出:
network:
ethernets:
enp0s31f6:
addresses: []
dhcp4: true
version: 2
以下是 sudo lshw -C network 的输出:
*-network DISABLED
description: Wireless interface
product: AR9485 Wireless Network Adapter
vendor: Qualcomm Atheros
physical id: 0
bus info: pci@0000:02:00.0
logical name: wlp2s0
version: 01
serial: 2c:d0:5a:ad:d9:fb
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list rom ethernet physical wireless
configuration: broadcast=yes driver=ath9k driverversion=4.15.0-38-generic firmware=N/A latency=0 link=no multicast=yes wireless=IEEE 802.11
resources: irq:17 memory:f7d00000-f7d7ffff memory:f7d80000-f7d8ffff
*-network DISABLED
description: Ethernet interface
product: AR8162 Fast Ethernet
vendor: Qualcomm Atheros
physical id: 0
bus info: pci@0000:03:00.0
logical name: enp3s0
version: 10
serial: 60:a4:4c:71:ff:10
capacity: 100Mbit/s
width: 64 bits
clock: 33MHz
capabilities: pm pciexpress msi msix bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=alx latency=0 link=no multicast=yes port=twisted pair
resources: irq:19 memory:f7c00000-f7c3ffff ioport:e000(size=128)
以下是 ifconfig 的输出:
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 3056 bytes 184872 (184.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3056 bytes 184872 (184.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
请注意,这两个输出来自笔记本电脑(我从硬盘启动)上次编辑:老实说,我不知道这台服务器此时是否正在启动,没有视频/串行输出也没用。我想我得从 eBay(HP Mediaserver EX490)买一个 VGA 端口。
答案1
服务器、另一台计算机和笔记本电脑中的以太网硬件无疑是不同的。由于接口命名的持久性,它们也可能有不同的名称。例如,以太网接口在一个计算机中可能被命名为 enp0s25;在另一个计算机中被命名为 enp0s12;在另一个计算机中被命名为 eno1。
因此,正如您所见,在一台计算机上安装 Ubuntu 服务器,然后将硬盘更换到服务器而不对 netplan 进行任何修改,这是不太可能实现的。
故障排除需要找出服务器中的确切接口名称,然后相应地设置 netplan。
我不知道有什么方法可以在没有显示器和键盘的情况下完成此操作。但是,一旦设置完成,服务器就可以在没有它们的情况下重新启动。此后,可以使用 ssh 进行管理。
答案2
在构建机器上,编辑/etc/default/grub
并添加net.ifnames=0
:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="net.ifnames=0"
然后:
sudo update-grub
然后编辑 中的 .yaml 文件/etc/netplan
,并确保指定的以太网设备是eth0
。然后执行:
sudo netplan --debug generate
sudo netplan apply
配置 SSH 以便能够登录。尝试重新启动并在构建机器上尝试此操作。如果您的构建机器的以太网设备是eth0
在 grub 更改之后,这应该可以工作。
关闭并将设备移至您的服务器并祈祷以太网能够启动并正常工作!
更新#1:
我刚刚注意到你的基础/etc/netplan/50-cloud-init.yaml
还不完整。编辑后应该如下所示...
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true
然后:
sudo netplan --debug generate
sudo netplan apply