你的LXC是在你的主机上吗?
这个道理和虚拟机是相似的,如果是桥接的话,你的LXC就应该和你的PC的ip设置成同一个网段,比如将LXC设置为172.17.0.22,否则你的LXC只能和主机通讯,因为你的主机不具备路由转发的能力。
如果想在不同网段,就要用路由模式,你的主机这时候才能转发。
你说的网桥是指LXC上的网关吗?LXC上的网关设置成你主机的网关,一般是172.17.0.1,在配上对应的掩码,设置一个未被使用的ip,应该就可以了。
lxc如果设置和主机相同网段的话,lxc的lxc.network.type应该选择什么模式?网桥就是桥接网络的。
@TheHunter大举:
lxc.network.type指定用于容器的网络类型:
empty:新的网络空间会为容器建立,但是没有任何网络接口
veth:新的网络空间会为容器建立,容器将链接到lxc.network.link定义的网桥上,从而与外部通信。网桥必须在预先建立。
macvlan:新的网络空间会为容器建立,一个macvlan的接口会链接到lxc.network.link上。
phys:新的网络空间会被建立,然后lxc.network.link指定的物理接口会被分配给容器
@我还是太年轻: 这个我知道的,但是具体应该用哪一个搞不太明白。只是知道veth用于网桥。但是如果相同网段应该用哪一个?
@TheHunter大举: 就是veth吧。lxc我没用过,但是作为虚拟化功能,道理是相通的。
如何将lxc网关设置成主机的网关?
我试图添加过,但是添加不成功。
我的lxc是192.168.1.2。主机网关为172.17.0.254
如果添加应该是 route add default gw 172.17.0.254
会报错:没有那个进程
@TheHunter大举: route add default gw 172.17.0.254 这种命令是你自己猜的,还是lxc支持这种语句?如果lxc上是个linux内核的话,应该使用linux的语法,貌似不是这样的。要指定网口配置。
再者,网口的地址和网关要对应,192.168.1.2和172.17.0.254就不是对应的,完整的应该是你的ip、掩码、网关。三者是一体的。
@我还是太年轻: 上面的命令是没有问题的我验证过!route add default gw 192.168.1.1
添加这天命令后lxc才能够ping通主机172.17.0.32,只是ping不通局域网的其他机器.
@TheHunter大举: 把你的lxc设置成172.17.0.xx,再route add default gw 172.17.0.254呢?掩码对了吗?172.17.0.xx/yy,设置和你主机一样的掩码位数
@我还是太年轻: 我试过不行的,亲。这样连主机都搞不通了。