詳情參考:https://wiki.debian.org/LXC/SimpleBridge網絡
1) 使用網橋
假設咱們主機只有eth0的物理網卡,在主機/etc/network/interfaces中,直接加入下面的字段:dom
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_fd 0
bridge_maxwait 0
而後重啓網絡 /etc/init.d/networking restart 以後能夠發現主機網絡出現br0的網橋。ide
若是LXC在編譯時沒有配置路徑,容器的config默認路徑在/usr/local/var/lib/lxc/xxx/config ,咱們須要在這個文件中加入網絡選項測試
lxc.network.type = veth
lxc.network.flags = up.net
# that's the interface defined above in host's interfaces file
lxc.network.link = br0rest
# name of network device inside the container,
# defaults to eth0, you could choose a name freely
# lxc.network.name = lxcnet0server
lxc.network.hwaddr = 00:FF:AA:00:00:01
而後咱們在容器的/etc/network/interfaces中,添加dns
auto eth0
iface eth0 inet dhcp
若是容器中沒有開啓dhclient服務,最好將其加到 /etc/rc.local中便可。接口
2) 直接使用物理網卡
好比物理宿主主機擁有兩張網卡:eth0 與 eth1,我把eth0做爲主機使用,eth1做爲LXC使用。那麼咱們在config中添加ip
lxc.network.type=phys
lxc.network.link=eth1
lxc.network.flags=up
#lxc.network.hwaddr = 00:16:3e:f9:ad:be #註釋掉#
lxc.network.flags 用於指定網絡的狀態,up 表示網絡處於可用狀態。
lxc.network.link 用於指定用於和容器接口通訊的真實接口,好比一個網橋 br0 ,eth0等。
在主機/etc/network/interfaces中加入
auto eth1
iface eth1 inet dhcp
而後從新啓動網絡服務 #/etc/init.d/networking restart
從新啓動 LXC 容器 # lxc-start -n xxx
一旦 LXC 虛擬計算機啓動成功,在宿主計算機上使用〝ifconfig -a〞查看主機網絡接口,用戶會發現此時網絡接口 eth1 消失了,只有 eth0 。這是由於 eth1 已經讓 LXC 虛擬計算機給使用了。而後咱們使用以下命令「 lxc-attach -n xxx」登陸 LXC 虛擬計算機發現此時 LXC 虛擬計算機的網絡接口是 eth1。而後咱們能夠使用 ping 命令測試一下 LXC 虛擬計算機和互聯網是否聯通。
3) 容器配置靜態IP
若是咱們使用靜態IP的話,宿主機能夠使用靜態IP或者是DHCP,咱們假定宿主機是DHCP,容器是靜態IP,注意最後兩個字段:
lxc.network.type = veth
lxc.network.flags = up
# that's the interface defined above in host's interfaces file
lxc.network.link = br0
# name of network device inside the container,
# defaults to eth0, you could choose a name freely
# lxc.network.name = lxcnet0
lxc.network.hwaddr = 00:FF:AA:00:00:01
lxc.network.ipv4 = 192.168.1.110/24#注意設置爲宿主機的網段
lxc.network.ipv4.gateway = 192.168.1.1#注意設置爲宿主機的網段
在容器內的/etc/network/interfaces中加入,記住不加auto eth0!
iface eth0 inet static address <container IP here, e.g. 192.168.1.110> netmask 255.255.255.0 network <network IP here, e.g. 192.168.1.0> broadcast <broadcast IP here, e.g. 192.168.1.255> gateway <gateway IP address here, e.g. 192.168.1.1> # dns-* options are implemented by the resolvconf package, if installed dns-nameservers <name server IP address here, e.g. 192.168.1.1> dns-search your.search.domain.here