我已经在服务器上设置了一个 Linux 容器。我现在遇到的问题是,我无法从笔记本电脑 ping 通 Linux 容器,但可以 ping 通虚拟机管理程序。
我使用以下方式创建了 LXC:
lxc-create -n tomcat1 -t ubuntu
然后启动它。我没有设置任何 IP 或任何东西,因为它自己启动了 - 使用另一个不属于我的 C 网络。这可能是问题所在吗?
非常感谢您的帮助。
答案1
在默认设置中,将为容器的 DHCP 范围选择一个随机类 C。这还会在主机上设置 NAT/MASQ 防火墙。与任何最小 NAT 防火墙一样,它仅服务于从内部的服务器/容器发起的连接,而不服务于从外部发起的连接。
到达容器的最常用方法之一是设置 PREROUTING/FORWARD 防火墙规则,将特定端口(范围)转发到容器。
例如,如果您的容器中正在运行一个您想要访问的 Web 服务器:
iptables -t nat -A PREROUTING -d [hypervisor_IP]/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination [container_IP]
这会将发往虚拟机管理程序 IP 端口 80(HTTP)的流量转发到容器。因此,在浏览器中,您可以访问http://[虚拟机管理程序 IP]/您将看到由容器的网络服务器提供的网页。