我不知道我做了什么 - 但之前一切都运行正常,现在却不行了,我无论如何也想不出哪里出了问题。
我如何才能彻底重置网络接口?
我要做的就是连接到互联网。我可以看到路由器管理屏幕中列出的服务器,以及通过路由器 DHCP 服务器生成的动态 IP 地址。
我尝试删除 /etc/network/interfaces 文件中的所有内容
我尝试删除 /etc/netplan 中的所有 YAML 文件,但每当我尝试运行该命令时,netplan apply
我仍然收到错误“返回非零退出状态 4” - 无论这意味着什么。
我感觉有些事情在这个过程中出了问题,我只需要重新设置一切,然后从头开始让服务器访问互联网(出站)。
更多细节
以前,当我让它正常工作时,网络上的盒子有一个静态 IP,我可以毫无问题地连接到互联网 - 我不知道我在它工作和不工作之间做了什么改变。但奇怪的是,当它停止工作时,我可以看到该盒子在路由器管理页面上列出了 2 个 MAC 地址,一个是我配置的静态 IP,另一个是服务器有自己的动态 IP 地址的 MAC 地址。我所能假设的只是我已将以太网电缆插入机器背面的不同网络端口之一。
以下是根据要求的文件输出;
lshw-C 网络
*-network:0 DISABLED
description: Ethernet interface
product: I350 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:04:00.0
logical name: enp4s0f0
version: 01
serial: 0c:c4:7a:2a:c8:8a
size: 100Mbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.4.0-k duplex=full firmware=1.63, 0x80000a05 latency=0 link=no multicast=yes port=twisted pair speed=100Mbit/s
resources: irq:43 memory:c7120000-c713ffff ioport:6020(size=32) memory:c7144000-c7147fff memory:90000000-9001ffff memory:90020000-9003ffff
*-network:1 DISABLED
description: Ethernet interface
product: I350 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0.1
bus info: pci@0000:04:00.1
logical name: enp4s0f1
version: 01
serial: 0c:c4:7a:2a:c8:8b
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.4.0-k firmware=1.63, 0x80000a05 latency=0 link=no multicast=yes port=twisted pair
resources: irq:53 memory:c7100000-c711ffff ioport:6000(size=32) memory:c7140000-c7143fff memory:90040000-9005ffff memory:90060000-9007ffff
*-network DISABLED
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:84:00.0
logical name: enp132s0
version: 06
serial: 00:13:3b:11:40:dc
size: 10Mbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half latency=0 link=no multicast=yes port=MII speed=10Mbit/s
resources: irq:37 ioport:e000(size=256) memory:f2204000-f2204fff memory:f2200000-f2203fff
*-network DISABLED
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:85:00.0
logical name: enp133s0
version: 06
serial: 00:13:3b:11:40:dd
size: 10Mbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half latency=0 link=no multicast=yes port=MII speed=10Mbit/s
resources: irq:37 ioport:d000(size=256) memory:f2104000-f2104fff memory:f2100000-f2103fff
猫/etc/netplan/*.yaml
network:
ethernets:
enp4s0f0:
addresses: [192.168.0.04/24]
dhcp4: true
gateway4: 192.168.0.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
version: 2
注意:上面的 IP 地址,我不确定我是否输入了它(并且输入时出现了拼写错误,因为上次我试图让它工作时,服务器在路由器管理员中显示的是 .104 IP,而不是 .04 IP - 并且在撰写本文时,服务器根本没有显示在路由器管理员中。
cat /etc/network/interfaces
# ifupdown has been replaced by netplan(5) on this system. See
# /etc/netplan for current configuration.
# To re-enable ifupdown on this system, you can run:
# sudo apt install ifupdown
当我在路由器的管理屏幕内检查时,以下是网络详细信息;
Router's IP Address: 192.168.0.1
Router's Subnet Mask: 255.255.255.0
更新 2
好的,所以在大约 5 分钟前写完上述更新后,我想我已经让它工作了(有时你所需要的只是一些时间停止某件事然后改天再回来做!)
所以这就是我所做的,我只是改变了以下文件,使它看起来像这样;
猫/etc/netplan/*.yaml
network:
ethernets:
enp4s0f0:
dhcp4: true
version: 2
我只能假设,因为其他位之前都在那里,所以 Netplan 认为路由器配置的是静态 IP 地址而不是动态 IP 地址 - 或者在某个地方感到困惑,因为设置似乎在告诉自己它同时是静态的(使用“地址”设置)和动态的(使用“dhcp4”设置)。
最好能确切地理解为什么我所做的改变确实有效——我上面的假设正确吗?
此外,/etc/netplan/ 中的 .yaml 文件的文件名真的重要吗?我不太确定这是从何而来的,因为我记得现在的文件名与我之前删除/重新创建文件时的文件名称不同。
顺便说一句 - 这只是我正在研究的一个测试系统 - 因此我可以安全地删除一些东西,把它搞砸,然后尝试修复它:-) 尝试更好地理解 Ubuntu/Linux 架构并尝试一下。
答案1
您的/etc/netplan/*.yaml
文件不正确,原因有二:
您混合并匹配了动态和静态定义
你输入了一个包含 .04 的无效静态地址
如果您需要静态寻址,.yaml 文件应该看起来像这样......
network:
version: 2
renderer: networkd
ethernets:
enp4s0f0:
addresses: [192.168.0.4/24]
gateway4: 192.168.0.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
如果您需要动态寻址,.yaml 文件应该看起来像这样......
network:
version: 2
renderer: networkd
ethernets:
enp4s0f0:
dhcp4: true
dhcp4-overrides:
use-dns: false
nameservers:
addresses: [8.8.8.8,8.8.4.4]
sudo netplan generate
# 制作配置文件
sudo netplan apply
# 应用新配置
reboot
# 确认配置