我正在尝试向LXC客户提供服务,但不想将其从主机公开.我也不想为服务提出防火墙规则,因此环回似乎是最直接的解决方案.

有没有办法让一个服务监听与LXC客人共享的lo(loopback),例如类似于绑定安装目录到位?

解决方法:

有不同的方法来实现您的目标.


如果客人共享一个虚拟网络(即不只是桥接到物理接口),这很容易.只需告诉您的服务侦听该接口 – 或者创建一个新的guest虚拟机并让该guest虚拟机托管该服务.

如果guest虚拟机桥接到ethX,您可能仍然需要考虑创建一个虚拟来宾主机接口,因为这种封装对所有类型的服务都有意义(内部邮件服务器,任何数据库服务器,本地DNS等)

(显然,你出于某种原因已经丢弃了这种方式:防火墙规则)

至于lo:每个lxc主机都有自己的,这就是好的imo

我的lxc客户共享一个虚拟接口,对于应该暴露给公共互联网的每个服务,我在主机的iptables上创建端口转发规则.我尝试在主机上运行尽可能少的服务.这样就几乎没有rist意外暴露任何服务.

为了完整起见,这是我的配置:

我的interfaces文件(debian stable):

auto br0
iface br0 inet static
    bridge_maxwait 0
    bridge_fd 0
    bridge_ports dummy0
    address 192.168.x.1
    netmask 255.255.255.0
    # if there are lxc clients that need a public IP, add something like this (a.b.c.d being the public IP) and set the client's `lxc.network.ipv4` config parameter to the same address:
    #post-up route add a.b.c.d dev br0

客户端配置的相关部分:

lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.veth.pair = lxc-apache # each client gets their own .pair name
lxc.network.ipv4 = 192.168.x.y/24 # ... and of course their own address

标签: linux, lxc

相关文章推荐

添加新评论,含*的栏目为必填