OpenVZ:根据端口向容器发送请求

时间:2017-02-20 00:22:45

标签: debian containers port iptables openvz

我在服务器上运行Debian 7.0,OpenVZ有一些容器。

我想根据对服务器的请求,将此请求发送到特定容器。 例如:

domain.com:500 -> Container1 will handle it

domain.com:501 -> Container2 will handle it

我想,如果可能的话,避免使用IPTables,因为我只是遇到麻烦而且从来没有真正理解它的规则(我也希望避免使用HAProxy)。我使用UFW没问题。

我正在寻找一个非常简单的解决方案。

1 个答案:

答案 0 :(得分:0)

如果您使用ufw,请转到/ etc / ufw /并编辑before.rules文件。该文件以:

开头
# NAT table rules
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-F

之后请添加(这只是一个例子):

# container 1 rules
-A PREROUTING -i eth0 -p tcp --dport 500 -j DNAT --to-destination container1-ip-address:port
# container 2 rules
-A PREROUTING -i eth0 -p tcp --dport 501 -j DNAT --to-destination container2-ip-address:port

您应该将eth0替换为服务器的界面(我假设您正在使用桥接)。

保存文件。重启ufw防火墙:

ufw disable
ufw enable

我认为你的容器已经具有互联网访问权限,所以我假设你已经在你的内核中启用了端口转发支持(你应该在 /etc/sysctl.conf 中有这一行):

net.ipv4.conf.all.forwarding = 1
net.ipv4.ip_forward = 1