Ping到LXC容器

请尝试从VMB ping 10.0.3.8(LXC容器的ip),但它不起作用! 请问你有什么想法吗?

这是我想要做的解释:(红色箭头)

蓝色箭头表示ping正常工作。 红色箭头表示存在问题:我尝试从VMB(192.168.1.7)ping 10.0.3.8我阻止此消息:ping 10.0.3.8 PING 10.0.3.8(10.0.3.8)56(84)字节数据。 — 10.0.3.8 ping统计— 68个包发送,0个接收,100%丢包,时间67214ms –

在此处输入图像描述 非常感谢。

最好的祝福。

创建Linux容器时,它存在于自己的网络空间中。 这就是IP地址看起来如此不同的原因。 您的Linux计算机分配10.0.3.x时,您的虚拟机具有192.168.1.x.

解决此问题的一种方法是在Linux容器上创建专用虚拟网卡,然后从192.168.1.x网络中提取地址。

以下是核心说明,但详细步骤和背景来自此Bonsai Framework文章 。

在主机上创建永久macvlan

添加到主机的/etc/network/interfaces文件的底部,

 # Creates a macvlan interface called macvlan0 without an IP address iface mvlan0 inet manual pre-up ip link add mvlan0 link eth0 address 8a:38:2a:cc:d7:aa type macvlan mode bridge post-down ip link del macvlan0 auto mvlan0 

重新启动系统以使更改生效。 使用ifconfig -a查看网络设备时,您会注意到mvlan0

通过修改位于/var/lib/lxc/[container]/config的配置文件,将Container连接到主机上的macvlan

要为新网卡添加的条目,

 # macvlan for external IP lxc.network.type = macvlan lxc.network.macvlan.mode = bridge lxc.network.flags = up lxc.network.link = mvlan0 lxc.network.hwaddr = 00:16:3e:8d:4f:51 lxc.network.name = eth0 

对于hwaddr,通过像helion.org这样的免费网站生成一个独特的本地管理单播MAC地址。

最后,调整容器中的interfaces文件以通过static绑定,或者如果您更喜欢使用dynamic。

在我的情况下,我调整我的家庭路由器,以便动态分配192.168.0.1到192.168.0.20并在我的LXC中使用静态。

所以我修改我的容器接口文件如下,

 auto eth0 iface eth0 inet static address 192.168.0.12 gateway 192.168.0.1 netmask 255.255.255.0 auto eth1 iface eth1 inet dhcp 

重新启动Linux容器。