2017-02-20 55 views
0

Я запускаю Debian 7.0 на сервере, и у меня есть некоторые контейнеры OpenVZ.OpenVZ: отправить запрос контейнерам по порту

Я хотел бы, в соответствии с запросом на сервер, отправить этот запрос в конкретный контейнер. Пример:

domain.com:500 -> Container1 will handle it 

domain.com:501 -> Container2 will handle it 

Я хотел бы, если это возможно, избежать IPTables, потому что я просто есть проблемы с ним и никогда не понимают правила этого (я хотел бы избежать HAProxy тоже). У меня нет проблем с использованием UFW.

Я ищу действительно простое решение.

+0

UFW его использование iptables. Это просто упрощает настройку iptables, вот и все. Вы можете просто использовать ufw, если хотите, и выполнять переадресацию портов. –

ответ

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