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

Debian OpenVZ:根据端口向容器发送请求,debian,containers,port,iptables,openvz,Debian,Containers,Port,Iptables,Openvz,我在服务器上运行Debian7.0,我有一些OpenVZ的容器 我想根据对服务器的请求,将此请求发送到特定的容器。 例如: 如果可能的话,我希望避免使用IPTables,因为我只是有一些问题,从来没有真正理解过它的规则(我也希望避免使用HAProxy)。我使用UFW没有问题 我正在寻找一个非常简单的解决方案。如果使用ufw,请转到/etc/ufw/并编辑before.rules文件。该文件以以下内容开头: # NAT table rules *nat :PREROUTING ACCEPT [0:

我在服务器上运行Debian7.0,我有一些OpenVZ的容器

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

如果可能的话,我希望避免使用IPTables,因为我只是有一些问题,从来没有真正理解过它的规则(我也希望避免使用HAProxy)。我使用UFW没有问题


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

如果使用ufw,请转到/etc/ufw/并编辑before.rules文件。该文件以以下内容开头:

# NAT table rules
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-F
紧接着请添加(这只是一个示例):

您应该用服务器的接口替换eth0(我假设您正在使用桥接)

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

ufw disable
ufw enable
我假设您的容器已经可以访问internet,所以我假设您已经在内核中启用了端口转发支持(您应该在/etc/sysctl.conf中有这行代码):


UFW使用iptables。它只是为iptables提供了更简单的配置,仅此而已。如果您愿意,可以使用ufw进行端口转发。
# 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
ufw disable
ufw enable
net.ipv4.conf.all.forwarding = 1
net.ipv4.ip_forward = 1