0

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

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

domain.com:500 -> Container1 will handle it

domain.com:501 -> Container2 will handle it

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

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

4

1 回答 1

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
于 2017-02-20T12:04:20.553 回答