【问题标题】:OpenVZ: Send request to containers according the portOpenVZ:根据端口向容器发送请求
【发布时间】:2017-07-09 03:29:30
【问题描述】:

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

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

domain.com:500 -> Container1 will handle it

domain.com:501 -> Container2 will handle it

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

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

【问题讨论】:

  • UFW 使用 iptables。它只是为 iptables 提供了一个更简单的配置,仅此而已。如果您愿意,可以使用 ufw 并进行端口转发。

标签: debian containers port iptables openvz


【解决方案1】:

如果您使用 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

【讨论】:

    猜你喜欢
    • 2019-12-22
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多