我有一台装有Ubuntu 14 Desktop的笔记本电脑。笔记本电脑具有与我的LAN的WLAN连接,并由网络管理器管理。当然,笔记本电脑也有一个nic(eth0),但未连接。我将此笔记本电脑用作LXC主机。我有多个服务于应用程序的容器。使用LXC的基本设置(默认设置,例如使用dnsmasq,桥接网络)。
的输出ifconfig
是表示图4级的接口:eth0
,lo
,wlan
和lxcbr0
。到目前为止,还没有完成特殊的iptables配置。这是一个全新安装的系统
现在,通过在我的LXC主机上配置NAT ...
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 21404 -j DNAT --to 10.0.3.180:3142
...当从局域网中的另一台计算机访问时,我能够访问容器中的服务,例如:
foo@LANMachine2: wget -O - http://lxc-host:21404 #it works
提示:lxc-host
是路由器管理的笔记本电脑的DNS名称。
现在,我要做的就是留在我的机器上,并使用相同的DNS名称从LXC主机本身和其他托管容器访问容器的服务,如下所示:
bar@lxc-host: wget -O - http://lxc-host:21404
#or
bar@lxc-container: wget -O - http://lxc-host:21404
#both not working and leading to output:
Connecting to lxc-host (lxc-host)|The.IP.shown.here|:21404... failed: Connection refused.
如何使它工作?有可能吗?对我而言,最重要的是能够通过LXC主机进行路由,从而将其他容器连接到其他容器的服务。(这将使我能够标准化容器的设置)
来自同一主机的数据包永远不会到达PREROUTING表(或任何其他nat表),因为它们没有从一个接口路由到另一个接口。
对于容器到容器的网络,可以使用共享桥(不必与主机共享),也可以使用路由和PREROUTING iptables表(如果它们位于不同的接口上)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句