請,我嘗試從 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 –
多謝。
此致。
答案1
當您建立 Linux 容器時,它存在於自己的網路空間中。這就是 IP 位址看起來如此不同的原因。您的虛擬機器具有 192.168.1.x,而您的 Linux 容器則分配 10.0.3.x。
解決此問題的一種方法是在 Linux 容器上建立專用虛擬網路卡,然後從 192.168.1.x 網路中提取位址。
以下是核心說明,但是詳細的步驟和背景來自這篇盆景框架文章。
在主機上建立永久 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
重新啟動系統以使變更生效。mvlan0
使用檢視網路設備時,您會注意到現在ifconfig -a
。
macvlan
透過修改位於 中的設定檔將容器連接到主機/var/lib/lxc/[container]/config
。
為您的新網卡新增的條目,
# 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。
最後,調整容器內的介面檔案以透過靜態綁定,或者如果您喜歡使用動態綁定。
就我而言,我調整了我的家庭路由器,以便 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 容器。