nspawn 容器中没有网络

nspawn 容器中没有网络

我在容器中遇到网络问题systemd nspawn

我已在命令中启用了-n/选项。几个小时前,这个命令已经起作用了(我知道这是因为我下载了一些东西)。但是,我在主机和容器上做了一些操作(不幸的是,我记不清大部分操作了,包括重新启动、干扰不应该干扰这里的 Web 服务器和其他一些操作),现在当我回来时,它不再起作用了。--network-vethsystemd-nspawn

主机系统是CentOS 7,容器使用Arch Linux生效。


ip link在主机上

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
link/ether 0c:c4:7a:4b:11:3e brd ff:ff:ff:ff:ff:ff
3: eno2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
link/ether 0c:c4:7a:4b:11:3f brd ff:ff:ff:ff:ff:ff
4: ve-private@if2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
link/ether 76:de:ce:fa:fd:49 brd ff:ff:ff:ff:ff:ff link-netnsid 0

ve-private不应该吗UP


在客户端上:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: host0@if4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether ce:1a:92:1b:95:22 brd ff:ff:ff:ff:ff:ff link-netnsid 0

当我设置时host0,它会变成

1: the same as above...
2: host0@if4: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
link/ether ce:1a:92:1b:95:22 brd ff:ff:ff:ff:ff:ff link-netnsid 0

不幸的是,我对网络不是很有经验。除了输出之外,我还能为您提供什么信息ip link?我不知道从哪里开始,任何想法都非常感谢。

答案1

在容器中验证服务是否systemd-networkd已启用并正在运行。您可以通过在容器内
执行此操作来执行此操作。 如果服务仅启用但未启用,则必须启用它并重新启动容器。systemctl status systemd-networkd
loadedactive (running)systemctl enable systemd-networkd


回复您的评论

显然我必须在不使用 --network-veth 的情况下启动它?它现在可以工作了,但我不再理解它,所以我不会将其标记为已接受。请随意发布一些有用的东西。

当您删除它时--network-veth,它还会删除隐式选项--private-network,从而使主机的每个接口都可用于容器。
此时,ip a主机和容器上应该显示相同的结果。

答案2

显然我必须在没有的情况下启动它--network-veth?它现在可以工作了,但我不再理解它,所以我不会将其标记为已接受。请随意发布一些有用的东西。

相关内容